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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

SQL注入(SQL注入(SQLi)攻击)攻击-布尔盲注

發布時間:2024/8/26 数据库 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SQL注入(SQL注入(SQLi)攻击)攻击-布尔盲注 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

頁面沒有顯示位 , 沒有報錯信息 , 只有成功和不成功兩種情況時 , 可以使用布爾盲注

本次以 SQLi LABS 第9關為案例進行講解

?

布爾盲注常用的兩個函數(我覺得)

length('abc')? -- 判斷字符串長度

substr('abc',1,1) -- 截取字符串,從第1個字符開始截取,截取1個

?

第一步,判斷注入類型

先正常輸入一個?id=1 , 正常登錄 you are in

我們再給一個不存在的id , ?id=-1 , id肯定不能為負數,數據庫查不到,肯定是登錄不成功

?

只有登錄成功和失敗兩種情況 ,??頁面沒有顯示位也沒有報錯 , 滿足布爾盲注的條件

接下來測試注入點 , 已知id=1時可以正常登錄 , 我們給它加個單引號' , 看會不會對結果造成影響

?

登錄失敗 , id=1正常登錄 , 但加了個單引號' 就登錄失敗 , 說明單引號' 會影響SQL的執行,即?存在注入

我們再加一個true , 使SQL恒成立 , 又登錄成功了

?

改成false , 使SQL恒不成立 , 又登錄失敗了

?

至此 , 我們可以確定 , 后端的SQL使用單引號' 來包裹參數 , 固 單引號字符串型注入

第二步,脫庫

我們使用 length() 判斷當前使用的數據庫的名字的長度

?id=1' and length(database())>1 -- a

?如果數據庫名字的長度大于1 , 那上面的 length(database())>1 的結果就是 true , 也就是這樣

?id=1' and true -- a

使SQL恒成立 , 從而登錄成功

?長度從1開始測試 , 每次加一個長度 , 當長度不滿足條件時 , 比如

?id=1' and length(database())>8 -- a

如果長度不大于8 , 那 length(database())>8 的結果就是 false , 也就是這樣

?id=1' and false -- a

使SQL恒不成立 , 從而登錄不成功 , 由此我們可知 , 數據庫名字的長度為 8

判斷完長度以后 , 我們再猜數據庫的名字?

?id=1' and substr(database(),1,1)='s' -- a

使用substr() 截取數據庫名字的第1個字符,猜是不是 's' 這個字符 , 如果是 , 那 substr(database(),1,1)='s' 的返回結果就是 true , 變成下面這樣

?id=1' and true -- a

使SQL恒成立 , 從而登錄成功

如果不是 's' 這個字符 , 則會登錄失敗

猜中第1個字符以后 , 再猜第2,3...個字符 , 直到猜出整個名字

而后根據此方法 , 可猜出整個數據庫的完整信息(可能時間會比較長...)。

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的SQL注入(SQL注入(SQLi)攻击)攻击-布尔盲注的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。