前言:最近开始接触bugku,感觉适合新人培养兴趣。自己在学习的时候写个笔记,督促自己多去学习和巩固知识。如果文章和代码有表述不当之处,还请大佬不吝赐教。
知识积累
HTTP的POST请求:向指定的资源提交要被处理的数据。
HTTP的POST请求方式:把提交的数据放在HTTP包的Body中。
解题
查看PHP代码,发现可用POST类型的HTTP来请求参数,构造报文头来传参
$what=$_POSTI'what'];//读取参数what,把值存到变量what里
echo $what; //输出参数what
if($what=='flag')//如果参数what值是flag
echo 'flag{****}';//打印flag
这里用的Firefox插件hackbar,可勾选Post data 提交参数what=flag,结果显示出flag值;
总结
一个get的数据包想改成post型时,为什么数据没用flag返回,但是hackbar提交却可以?
是因为http消息头中没有实体头,把get改post后,再加上Content-type: application/x-www-form-urlencoded加上才可以。