fracker是一套php函式呼叫追蹤與分析的工具,其目標是在php應用程式的手動安全評估期間協助安全研究人員。
它包括:
需要安裝在目標web應用程式環境中的php擴充套件,它將跟蹤資訊傳送給偵聽器;spin乙個新的使用php支援正在執行apache的docker容器:
$ docker run --rm -d -p 80:80 --name hello-fracker php:apache
建立一些虛擬php指令碼作為索引:
$ docker exec -i hello-fracker tee /var/www/html/index.php <<\eof
<?php
function foo($cmd)
$a = explode(' ', $_get['x']);
var_dump($a);
foreach ($a as $cmd)
eof
測試php檔案是否正確提供:
$ curl 'http://localhost/?x=hello+fracker!'
將fracker部署到容器:
$ scripts/deploy.sh hello-fracker
在本地安裝依賴項(這只需要執行一次):
啟動fracker:
再次執行上面的curl命令(輸出應與上面的截圖類似)。
使用–help再次執行fracker並嘗試其他選項。
停止並移除容器:
$ docker stop hello-fracker
每個php請求或命令列呼叫都會觸發與偵聽器的tcp連線。該協議只是從php擴充套件到偵聽器的以換行方式終止的json物件流,這些物件包含有關當前請求、執行的呼叫和返回值的資訊。中國菜刀
這種分離允許使用者實現自己的工具。可以通過將流內容轉儲到標準輸出來檢查原始json物件,例如:
$ socat tcp-listen:6666,fork,reuseaddr 'exec:jq .,fdout=0'
php擴充套件是從xdebug派生出來的的,因此安裝過程完全相同,故障排除也是如此。
使用fracker最簡便的方式可能就是使用提供的指令碼,將其部署到web伺服器所在的docker容器中。使用手動方法獲得更通用的解決方案。
部署指令碼
這個指令碼應該與類debian發行版開箱即用:
$ scripts/deploy.sh
它將php模組配置為連線到指定埠的指定主機(預設為執行docker和埠6666的主機)。
手動設定
需要在ext目錄中執行以下操作。天空彩
使用以下**構建php擴充套件:
$ phpize
$ ./configure
$ make
(要在重要的**更改之後重建,只需重新執行make。)
要檢查一切是否正常,請啟動偵聽器應用程式,然後像這樣執行php:
$ php -d "zend_extension=$pwd/.libs/xdebug.so" -r 'var_dump("hello fracker!");'
最後,安裝php擴充套件:
make install;使用以下方法clean源目錄:將zend_extension=xdebug.so放在由php解析的ini檔案中,以及任何其他自定義設定中。
$ make distclean
$ phpize --clean
設定
以下為fracker使用的最常用設定的模板:
; trace only those requests with xdebug_trace=fracker in get, post or cookie
xdebug.auto_trace = 0
xdebug.trace_enable_trigger = 1
xdebug.trace_enable_trigger_value = fracker
; do not collect function arguments
xdebug.collect_params = 0
; do not collect return values
xdebug.collect_return = 0
xdebug.trace_fracker_host = 127.0.0.1
xdebug.trace_fracker_port = 6666
提供的偵聽器應用是node.js包。使用以下命令安裝依賴項:
配置
長格式的命令列選項可以寫入yaml檔案(camel case),並作為命令列引數傳遞。可以指定具有更高優先順序的多個檔案,但命令列選項的優先順序最高。
如何在sublime安裝ctags函式追蹤外掛程式
然後解壓到自己喜歡的目錄下,我是安裝到 d sublime data installed packages ctags58 二 在sublime中安裝ctags外掛程式 ctrl shift p 輸入install package後,輸入ctags安裝 三 安裝完成,開啟選單在preferences...
SublimeText3配置PHP函式追蹤定位外掛程式
1 按ctrl shift p,開啟ins程式設計客棧tall package 2 搜尋ctags進行外掛程式安裝 3 搜尋php codebeautifier進行外掛程式安裝。配置在sublime中使用ctrl 左鍵單擊函式跳轉 ctrl 右鍵單擊跳回函式呼叫位置 複製以下 到preference...
系統呼叫 函式呼叫
linux下對檔案操作有兩種方式 提供了庫函式,如open close read write ioctl 等,需包含標頭檔案unistd.h。以write 函式為例 其函式原型為size t write int fd,const void buf,size t nbytes 其操作物件為檔案控制代碼...