Fracker PHP函式呼叫追蹤與分析工具

2021-09-23 16:58:11 字數 2599 閱讀 5008

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;

將zend_extension=xdebug.so放在由php解析的ini檔案中,以及任何其他自定義設定中。

使用以下方法clean源目錄:

$ 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 其操作物件為檔案控制代碼...