中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Wireshark分析出攻擊者sql注入時查詢了哪些數據

發布時間:2021-07-16 10:10:33 來源:億速云 閱讀:1273 作者:chen 欄目:網絡管理

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

0x001 題目

Wireshark分析出攻擊者sql注入時查詢了哪些數據

0x002 查看注入語句

將流量包導入Wireshark

Wireshark分析出攻擊者sql注入時查詢了哪些數據

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

過濾出http請求的數據包

Wireshark分析出攻擊者sql注入時查詢了哪些數據

注入語句如下:

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

由此可見攻擊者采用布爾盲注進行sql注入。

0x003 觀察響應包

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

觀察sql注入響應包。

注入失敗響應內容:
Wireshark分析出攻擊者sql注入時查詢了哪些數據

注入成功響應內容:
Wireshark分析出攻擊者sql注入時查詢了哪些數據

由此我們可以想到是不是可以先將注入成功響應包過濾出來???那么我們應該以什么規則進行過濾呢,或者說以響應包哪個特征進行過濾呢???

我想到的過濾條件:

過濾出響應內容中有文章內容的所有響應包

根據響應包的長度進行過濾

注入失敗的響應包長度:
Wireshark分析出攻擊者sql注入時查詢了哪些數據

注入成功的響應包長度:
Wireshark分析出攻擊者sql注入時查詢了哪些數據

對于Wireshark的語法不是很熟悉,沒有找到怎么以內容過濾的語法,所以我這里以響應包的長度進行過濾。

Wireshark http過濾規則:

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

http.response.code==302
//過濾http響應狀態碼為302的數據包

http.response==1
//過濾所有的http響應包

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

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

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

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

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

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

http.content_type == “text/html”
//過濾content_type是text/html的http響應、post包,即根據文件類型過濾http數據包

http.content_encoding == “gzip”
//過濾content_encoding是gzip的http包

http.transfer_encoding == “chunked”
//根據transfer_encoding過濾

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

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

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

http.response.phrase == “OK”
//過濾http響應中的phrase

content-Length長度進行過濾,過濾語法為http.content_length == 366

Wireshark分析出攻擊者sql注入時查詢了哪些數據

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

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

這條sql語句的含義:第一個字符的ASCII碼為102

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

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

Wireshark分析出攻擊者sql注入時查詢了哪些數據

0x004 腳本編寫

將上面過濾后的結果導出

Wireshark分析出攻擊者sql注入時查詢了哪些數據

使用正則過濾出注入語句和字符對應的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])

Wireshark分析出攻擊者sql注入時查詢了哪些數據

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

知道了字符對應的ASCII碼,反過來通過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)

Wireshark分析出攻擊者sql注入時查詢了哪些數據

到此,關于“Wireshark分析出攻擊者sql注入時查詢了哪些數據”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

阳信县| 海林市| 怀安县| 石泉县| 湟源县| 比如县| 枝江市| 新干县| 扶风县| 沂源县| 澄城县| 交城县| 青海省| 龙游县| 惠州市| 昔阳县| 淮南市| 谷城县| 安多县| 吉木萨尔县| 额济纳旗| 随州市| 洪雅县| 新竹县| 行唐县| 安新县| 新闻| 祥云县| 德令哈市| 西乡县| 南郑县| 那坡县| 浦县| 抚松县| 博客| 灌阳县| 东丰县| 大姚县| 胶南市| 桑日县| 杭锦旗|