参考自:https://blog.csdn.net/weixin_44037296/article/details/112298411
0000、前置知识点:
一、自己做 + 学习 WP:
然后路径 !
结尾,
直接加上就行了。
这里看了一眼WP。。这个
&=&=&
是要进行url编码的,因为get获取参数会从这个开始嘛,
是另一个参数。
需要%00和一个换行符,
这个%00我知道,是chr(0)。但是这个url的是什么我也不知道啊,
%2500
urldecode之后就是 %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'
,。。。吐了,这么长,不弄了,,,烦死了,,,