Bugku -分析-合集
文章目錄
一、flag被盜
http篩選
選中一個post包,追蹤tcp資料流
得到flag
二、中國菜刀
同理和 flag被盜一樣的流程
追蹤tcp得到php一句話,菜刀連線即可
三、這麼多資料包
按照 flag被盜 、中國菜刀 的套路失敗,沒有有用的資訊
看資料包顏色變化,中間一段猩紅色,應該就是攻擊機對被攻擊機的掃描了
4730-5742之間一大段的“平原”,之後沒了什麼聯通
在此期間基本上是4444與1040之間的通訊,追蹤TCP資料流也沒什麼用
過濾4444和1040的通訊
! tcp.port eq 4444 or ! tcp.port eq 1040 and ip.addr eq 192.168.116.138
發現兩個主機上的1234、35880埠還存在通訊
追蹤tcp
base64解碼
四、手機熱點
必應 “藍芽傳輸協議”,即obex。
wireshark搜尋obex用WireShark分析
傳了一個“secret.rar”壓縮包
選中
匯出為x.rar,解壓得到Flag
五、抓到一隻蒼蠅
Step1:http過濾
檢視資料包可以得知是傳送QQ郵件
http過濾 可以看到第一個資料包有fly.rar
第一個壓縮包內涵的資訊如下
{
"path":"fly.rar",
"appid":"",
"size":525701,
"md5":"e023afa4f6579db5becda8fe7861c2d3",
"sha":"ecccba7aea1d482684374b22e2e7abad2ba86749",
"sha3":""
}
繼續增加過濾條件
http && http.request.method==POST
我們需要做的就是將這個wireshark資料包中的檔案提取出來,檢視接下來的幾個post請求,發現 midia type 都是資料流的格式,猜測這幾個資料流裡就是我們需要的檔案。
Step2:匯出資料包
5個數據包中的Media Type域的大小各為131436 、131436 、131436 、131436 、1777,共527521,比fly.rar大小525701大1820,多出來的猜想是包頭類的資訊,平均每個包大364。
先匯出這5個數據包,使用Wireshark自帶的匯出工具匯出Media Type的內容
依次重新命名為 1 2 3 4 5
Step3:整合所獲得的檔案碎片,獲得fly.rar
將五個檔案丟到kali下
使用dd命令分別將其前364個位元組去除:
dd if=1 bs=1 skip=364 of=1.1
dd if=2 bs=1 skip=364 of=2.1
dd if=3 bs=1 skip=364 of=3.1
dd if=4 bs=1 skip=364 of=4.1
dd if=5 bs=1 skip=364 of=5.1
(dd if=檔名 bs=輸入輸出塊的大小 skip=便宜量 of=新的檔名)
dd命令詳解
but,,,如圖,出現了部分檔案無法跳至偏移量,導致接下來的操作失敗。。。所以借鑑了其他人的圖。。。
使用cat命令將碎片拼成完整的fly.rar:
cat 1.1 2.1 3.1 4.1 5.1 > fly.rar
使用md5sum命令檢查檔案完整性:
md5sum fly.rar
獲得e023afa4f6579db5becda8fe7861c2d3,檔案完整!
Step4:破譯偽加密,獲得flag.txt
偽加密,即這是一個未加密過的rar檔案,但是卻將加密位置為了1。只需將檔案開頭處0x74位後面的0x84位置改為0x80即可。
解壓失敗,需要密碼,壓縮包偽加密
將檔案頭0x1674後面的84改為80。(84為加密,80/20不加密)
現在就可以正常解壓,解壓結果是一個 flag.txt,開啟看一下發現是亂碼,並不是真正的txt檔案,看一下檔案型別,發現是原來是一個 windows 下的小程式,改檔案字尾名在windows下跑一遍,著實是蒼蠅滿螢幕亂跑,可怕。。。
Step5:分析flag.txt檔案,獲得二維碼,獲取flag
binwalk 看一下里面還有什麼東西,發現一堆的圖片,弄出來看看。
binwalk flag.txt
foremost -v -i flag.txt
匯出來89個圖片,好傢伙,在圖片裡發現一個二維碼,用手機掃一掃,終於出來了flag,flag{m1Sc_oxO2_Fly}。
解壓後獲得flag.txt。看起來這是個txt檔案,但把字尾改成exe,即可執行。出現了傳說中的大蒼蠅!
五、日誌審計
sqlmap盲注日誌審計。
題目描述
請從流量當中分析出flag。
考點
本題考查根據日誌,還原sqlmap採用二分法注入獲得的資料。
解題過程
題目是sqlmap採用二分法進行注入的日誌,辦法很多,可以手撕,可以根據特徵進行分析。
這裡舉例說一種。如果對Apache日誌熟悉的話,應該知道,access.log裡面會記錄Response的狀態碼和Response包的長度。猜解正確或錯誤,返回的長度是不同的。
urldecode解碼幾條記錄:
id=2' AND ORD(MID((SELECT IFNULL(CAST(flag AS CHAR),0x20) FROM dvwa.flag_is_here ORDER BY flag LIMIT 0,1),24,1))>96 AND 'RCKM'='RCKM&Submit=Submit HTTP/1.1" 200 1765
id=2' AND ORD(MID((SELECT IFNULL(CAST(flag AS CHAR),0x20) FROM dvwa.flag_is_here ORDER BY flag LIMIT 0,1),24,1))>112 AND 'RCKM'='RCKM&Submit=Submit HTTP/1.1" 200 1765
id=2' AND ORD(MID((SELECT IFNULL(CAST(flag AS CHAR),0x20) FROM dvwa.flag_is_here ORDER BY flag LIMIT 0,1),24,1))>120 AND 'RCKM'='RCKM&Submit=Submit HTTP/1.1" 200 1765
id=2' AND ORD(MID((SELECT IFNULL(CAST(flag AS CHAR),0x20) FROM dvwa.flag_is_here ORDER BY flag LIMIT 0,1),24,1))>124 AND 'RCKM'='RCKM&Submit=Submit HTTP/1.1" 200 1765
id=2' AND ORD(MID((SELECT IFNULL(CAST(flag AS CHAR),0x20) FROM dvwa.flag_is_here ORDER BY flag LIMIT 0,1),24,1))>126 AND 'RCKM'='RCKM&Submit=Submit HTTP/1.1" 404 5476
id=2' AND ORD(MID((SELECT IFNULL(CAST(flag AS CHAR),0x20) FROM dvwa.flag_is_here ORDER BY flag LIMIT 0,1),24,1))>125 AND 'RCKM'='RCKM&Submit=Submit HTTP/1.1" 404 5476
以猜解的第24位為例,猜解正確的時候,返回的狀態碼為200,長度為1765;猜解錯誤的狀態碼為404,長度為5476。而且可以得出結論,sqlmap採用二分法進行注入的時候,正確的值為最後一次進行>比較正確的值+1,即為125。
簡單寫個指令碼,匹配一下即可。
# coding:utf-8
import re
import urllib
f = open('C:/Users/Bayernchen Zhouzhong/Desktop/5b0b08e0-31aa-4a8d-ae19-89b843554506/access.log','r')
lines = f.readlines()
datas = []
for line in lines:
t = urllib.unquote(line)
if '1765' in t and 'flag' in t: # 過濾出與flag相關,正確的猜解
datas.append(t)
flag_ascii = {}
for data in datas:
matchObj = re.search( r'LIMIT 0,1\),(.*?),1\)\)>(.*?) AND', data)
if matchObj:
key = int(matchObj.group(1))
value = int(matchObj.group(2))+1
flag_ascii[key] = value # 使用字典,儲存最後一次猜解正確的ascii碼
flag = ''
for value in flag_ascii.values():
flag += chr(value)
print flag
六、weblogic
(廣告且開掛。。。)
題目描述
黑客攻擊了Weblogic應用,請分析攻擊過程,找出Weblogic的主機名。flag格式:flag{}
Tip:主機名為十六進位制。
考點
weblogic 攻擊流量審計。模擬了爆破weblogic登入密碼,通過部署war包getshell,執行命令獲取hostname的操作。
解題過程
使用科來分析工具開啟流量包,在資料包選項中,Ctrl+F搜尋字串hostname,可以找到編號為658、662的資料包當中存在hostname關鍵詞。
其中編號662資料原地址為服務端,是http的Response包。右鍵解碼資料包,可以很直觀的看到服務端返回的內容: