您的位置:首页 > 运维架构 > Nginx

Log POST Data in Nginx

2016-06-22 13:26 525 查看
先编译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设置成这个,那么当恶意攻击者扫描我们网站的时候,其扫描器未做正确超时处理的话,可能就会线程崩溃。

利用此方法,若掌握扫描器漏洞,甚至可以反向溢出攻击者。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: