国产成人精品18p,天天干成人网,无码专区狠狠躁天天躁,美女脱精光隐私扒开免费观看

Wireshark分析出攻擊者sql注入時(shí)查詢(xún)了哪些數據

發(fā)布時(shí)間:2021-08-23 15:12 來(lái)源:億速云 閱讀:0 作者:chen 欄目: 網(wǎng)絡(luò )安全

這篇文章主要介紹“Wireshark分析出攻擊者sql注入時(shí)查詢(xún)了哪些數據”,在日常操作中,相信很多人在Wireshark分析出攻擊者sql注入時(shí)查詢(xún)了哪些數據問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對大家解答”Wireshark分析出攻擊者sql注入時(shí)查詢(xún)了哪些數據”的疑惑有所幫助!接下來(lái),請跟著(zhù)小編一起來(lái)學(xué)習吧!

0x001 題目

0x002 查看注入語(yǔ)句

將流量包導入Wireshark

看著(zhù)很亂,輸入url通過(guò)瀏覽器請求使用的協(xié)議為http/https,該流量包中只有http,所以我們直接過(guò)濾出http協(xié)議的數據包。

過(guò)濾出http請求的數據包

注入語(yǔ)句如下:

http://localhost:81/?id=1' and ascii(substring((select keyid from flag limit 0,1),1,1))=32#

由此可見(jiàn)攻擊者采用布爾盲注進(jìn)行sql注入。

0x003 觀(guān)察響應包

這里我們想到注入語(yǔ)句成功和失敗所返回的數據包一定是不同的。

觀(guān)察sql注入響應包。

注入失敗響應內容:

注入成功響應內容:

由此我們可以想到是不是可以先將注入成功響應包過(guò)濾出來(lái)???那么我們應該以什么規則進(jìn)行過(guò)濾呢,或者說(shuō)以響應包哪個(gè)特征進(jìn)行過(guò)濾呢???

我想到的過(guò)濾條件:

過(guò)濾出響應內容中有文章內容的所有響應包

根據響應包的長(cháng)度進(jìn)行過(guò)濾

注入失敗的響應包長(cháng)度:

注入成功的響應包長(cháng)度:

對于Wireshark的語(yǔ)法不是很熟悉,沒(méi)有找到怎么以?xún)热葸^(guò)濾的語(yǔ)法,所以我這里以響應包的長(cháng)度進(jìn)行過(guò)濾。

Wireshark http過(guò)濾規則:

http.host==magentonotes.com
http.host contains magentonotes.com
//過(guò)濾經(jīng)過(guò)指定域名的http數據包,這里的host值不一定是請求中的域名

http.response.code==302
//過(guò)濾http響應狀態(tài)碼為302的數據包

http.response==1
//過(guò)濾所有的http響應包

http.request==1
//過(guò)濾所有的http請求,貌似也可以使用http.request

http.request.method==POST
//wireshark過(guò)濾所有請求方式為POST的http請求包,注意POST為大寫(xiě)

http.cookie contains guid
//過(guò)濾含有指定cookie的http數據包

http.request.uri==”/online/setpoint”
//過(guò)濾請求的uri,取值是域名后的部分

http.request.full_uri==” http://task.browser.#/online/setpoint”
//過(guò)濾含域名的整個(gè)url則需要使用http.request.full_uri

http.server contains “nginx”
//過(guò)濾http頭中server字段含有nginx字符的數據包

http.content_type == “text/html”
//過(guò)濾content_type是text/html的http響應、post包,即根據文件類(lèi)型過(guò)濾http數據包

http.content_encoding == “gzip”
//過(guò)濾content_encoding是gzip的http包

http.transfer_encoding == “chunked”
//根據transfer_encoding過(guò)濾

http.content_length == 279
http.content_length_header == “279″
//根據content_length的數值過(guò)濾

http.server
//過(guò)濾所有含有http頭中含有server字段的數據包

http.request.version == “HTTP/1.1″
//過(guò)濾HTTP/1.1版本的http包,包括請求和響應

http.response.phrase == “OK”
//過(guò)濾http響應中的phrase

content-Length長(cháng)度進(jìn)行過(guò)濾,過(guò)濾語(yǔ)法為http.content_length == 366

所有注入成功的語(yǔ)句也可以從響應包查看到。

http://localhost:81/?id=1' and ascii(substring((select keyid from flag limit 0,1),1,1))=102#

這條sql語(yǔ)句的含義:第一個(gè)字符的ASCII碼為102

>>> print(chr(102))  # 將ASCII碼轉換為字符
>>> f

我怎么可能一個(gè)一個(gè)查看注入成功時(shí)字符對應的ASCII值是多少呢。

0x004 腳本編寫(xiě)

將上面過(guò)濾后的結果導出

使用正則過(guò)濾出注入語(yǔ)句和字符對應的ASCII碼

import re

number = []
with open("aa.txt","r",encoding="utf-8") as f:
    for i in f.readlines():
        flag_number = re.findall(r"\[Request URI: .*?=(\d+)%23\]",i,re.S) # 字符對應的ASCII碼
        url_list = re.findall(r"\[Request URI: (.*?)\]",i,re.S)  # 注入的url
        if flag_number:
            print(url_list)
            number.append(flag_number[0])

這里注意注入語(yǔ)句成功的先后順序,也就是上圖圈出來(lái)的地方按順序排序(從第1個(gè)字符開(kāi)始判斷,一直到38個(gè)字符),就是注入成功的執行流程。

知道了字符對應的ASCII碼,反過(guò)來(lái)通過(guò)ASCII碼得出對應的字符即可。

最后跑出flag

import re

number = []
with open("aa.txt","r",encoding="utf-8") as f:
    for i in f.readlines():
        flag_number = re.findall(r"\[Request URI: .*?=(\d+)%23\]",i,re.S)
        url_list = re.findall(r"\[Request URI: (.*?)\]",i,re.S)
        if flag_number:
            print(url_list)
            number.append(flag_number[0])

print(number)
flag = ''
for i in number:
    flag +=chr(int(i))
print(flag)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自互聯(lián)網(wǎng)轉載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權請聯(lián)系QQ:712375056 進(jìn)行舉報,并提供相關(guān)證據,一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容。

亚洲AV无码潮喷在线观看蜜桃| 色欲AV无码无在线观看| 最好看的日本电影免费| AV无码电影一区二区三区| 中国国语毛片免费观看视频| 激情五月开心婷婷深爱|