Log POST Data in Nginx
先編譯Nginx的echo module:
./configure --add-module=./echo-nginx-module-0.54 make make install
可以在github上面找到這個module的源代碼
然后添加$request_body,來加上post data:
log_format custom '$remote_addr - $remote_user [$time_local] ' '"$request" $status $body_bytes_sent ' '"$http_referer" "$http_user_agent" "$request_body"';
最后定義一下access日志的路徑,這里是默認:
access_log /var/log/nginx/access.log custom;
到這里基本上就可以了,此時你的access日志大小會蹭蹭蹭的往上漲,在抓一些關鍵數據的時候可以嘗試這么做。
不過要注意密碼等敏感信息的脫敏。
另類姿勢:
上面我們按照了echo module,可以用它做一些好玩的事情。比如:
我們定義:
location /hello { echo -n "hello, "; echo "world!"; }
此時,我們curl /hello這個uri的時候,會出現:
$ curl 'http://localhost/echo' hello, world
那么我們可以這樣來:
location /hello { echo_sleep 100000; echo_sleep 100000; echo_sleep 100000; }
如果把一個網站根本不存在的URL設置成這個,那么當惡意攻擊者掃描我們網站的時候,其掃描器未做正確超時處理的話,可能就會線程崩潰。
利用此方法,若掌握掃描器漏洞,甚至可以反向溢出攻擊者。
本文發于:安全大可文章轉載請注明出處:http://im404.cnblogs.com
相關事宜請聯系:im404@qq.com

浙公網安備 33010602011771號