参考自:https://blog.csdn.net/weixin_44037296/article/details/112298411
0000、前置知识点:
一、自己做 + 学习 WP:

然后路径 !结尾,
直接加上就行了。



这里看了一眼WP。。这个
&=&=&是要进行url编码的,因为get获取参数会从这个开始嘛,
是另一个参数。
需要%00和一个换行符,
这个%00我知道,是chr(0)。但是这个url的是什么我也不知道啊,
%2500urldecode之后就是 %00
呃。。。不会了,,看WP
这个我在做 一道关于parse_url漏洞的一道题的时候看到了username和password的这个,
https://www.php.net/parse_url
burp上没有提供username和password的位置,然后我想的是在本地抓一个包,然后看看位置在哪里,然后进行伪造,

用burp没抓到。。失败了,,还是学习curl命令吧,,,哎,
二、学到的:
- %00的url加密之后,是
%2500。
三、学习WP:
curl -i -X PUT http://node3.buuoj.cn:28092/hurdles

curl -i -X PUT http://node3.buuoj.cn:28092/hurdles/!
这里带参数了的化,要用引号括起来。
curl -i -X PUT 'http://node3.buuoj.cn:28092/hurdles/!?get=flag'

需要另一个参数:

curl -i -X PUT 'http://node3.buuoj.cn:28092/hurdles/!?get=flag&%26%3d%26%3d%26=%2500%0a'

然后这个username就在网页url中传输了,
curl -i -X PUT 'http://node3.buuoj.cn:28092/hurdles/!?get=flag&%26%3d%26%3d%26=%2500%0a' -u 'player:sss'

16进制的md5值,,,,什么玩意,,md5本来就是最后一步进行hex运算的。
$a = 'open sesame';
$b = md5($a);
print_r($b);
输出:54ef36ec71201fdf9d1423fd26f97f6b。
curl -i -X PUT 'http://node3.buuoj.cn:28092/hurdles/!?get=flag&%26%3d%26%3d%26=%2500%0a' -u 'player:54ef36ec71201fdf9d1423fd26f97f6b'

curl -i -X PUT 'http://node3.buuoj.cn:28092/hurdles/!?get=flag&%26%3d%26%3d%26=%2500%0a' -u 'player:54ef36ec71201fdf9d1423fd26f97f6b' -A '1337 Browser'
浏览器版本,,
curl -X PUT 'http://node3.buuoj.cn:28174/hurdles/!?get=flag&%26%3D%26%3D%26=%2500%0a' -u 'player:54ef36ec71201fdf9d1423fd26f97f6b' -A '1337 Browser v.9000'

,。。。吐了,这么长,不弄了,,,烦死了,,,
本文介绍了如何使用curl命令进行HTTP PUT请求,并探讨了URL编码中%00字符的含义及其在URL中的使用。作者通过实例展示了如何在URL中传递参数,包括利用%2500作为%00的编码形式,并提到了在curl命令中使用-u选项指定用户名和密码,以及通过-A选项设置User-Agent。

863

被折叠的 条评论
为什么被折叠?



