日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

sql盲注讲解

發(fā)布時間:2024/8/5 综合教程 36 生活家
生活随笔 收集整理的這篇文章主要介紹了 sql盲注讲解 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

盲注

有時候,開發(fā)人員不會把數(shù)據(jù)庫報錯信息顯示在前端頁面,這樣就使我們想要通過union注入或報錯注入的攻擊方式難以實現(xiàn)。

當(dāng)不顯示報錯信息的時候,我們還可以通過盲注的方式來對數(shù)據(jù)庫進行注入攻擊。

盲注,顧名思義,就是在頁面沒有提供明顯信息的情況執(zhí)行的注入方式。

盲注又分為兩種,布爾型盲注和時間型盲注。

布爾型盲注,以sqli-lab第8關(guān)為例:

1、輸入id=1正常顯示,輸入id=123456顯示與正常不同,顯示為空,輸入id=1'不報錯,但是顯示也是為空

這里輸入id=1' 的時候,可能是兩種情況。一種就是1’被當(dāng)做字符串處理,數(shù)據(jù)庫查詢的就是id="1'",這樣數(shù)據(jù)庫中沒有這個值,所以查詢?yōu)榭眨鷌d=123456相同。

另一種就是單引號被拼接進數(shù)據(jù)庫語句中,形成注入,然后前端沒有報錯信息顯示,所以返回為空。

2、通過構(gòu)造sql注入語法來嘗試,發(fā)現(xiàn)這里就是存在sql注入。

我們已知的是1=1和1=2顯示不同,沒有其他任何信息。這種情況下就稱為布爾型盲注。

3、布爾型盲注會利用到數(shù)據(jù)庫中的一些表達式:

length() :字符串長度

substr():截取字符串

ascii():字符串的ascii編碼

4、布爾型盲注的要點就是通過不停發(fā)送數(shù)據(jù)包,對結(jié)果進行真假判斷,從而得到正確結(jié)果。

a.1' and length(database())=1--+ 對當(dāng)前數(shù)據(jù)庫名的字符串長度進行確認,只有當(dāng)最后的長度為正確長度時候,頁面就會返回id=1時候的正確頁面。類似于1' and 1=1--+

通過burpsuite的fuzz方式得到數(shù)據(jù)庫長度為8

5、知道長度之后,就需要對字符進行確認,實際上原理都一樣

1' and substr(database(),1,1)='a'--+

通過database()這個表達式表現(xiàn)數(shù)據(jù)庫名,然后從左起第1位開始截取1個字符,以此類推,直到得到所有結(jié)果為止。

6、通過burpsuite的手工方式可以讓大家明白盲注的原理。但是盲注一般不推薦手工,但原理必需明白。只有明白了原理才能寫出盲注的自動化利用腳本。除了自己寫腳本外,也可以使用sqlmap之類的工具幫助你盲注。

時間型盲注

當(dāng)不管我們?nèi)绾屋斎耄撁嫘畔⒍紱]有任何變化的時候,不提供給攻擊者任何有用的信息,這時候就只能嘗試時間型盲注。

時間型盲注就是在布爾型盲注的基礎(chǔ)上增加了時間的判斷。

時間盲注的關(guān)鍵函數(shù)是if(),sleep(),通過對布爾型注入的判斷,輔以時間延遲的方法,來最終獲得注入結(jié)果。

以第9關(guān)為例:

1' and if(length(database())=1,sleep(5),1)%23

if(length(database())>1,sleep(5),1) 如果數(shù)據(jù)庫名字符長度大于1為真,則mysql休眠5秒,否則查詢1。

判定的方法就是根據(jù)請求響應(yīng)的時間來判定,其他操作跟布爾型雷同。


總結(jié)

以上是生活随笔為你收集整理的sql盲注讲解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。