Bugku -分析-合集

文章目录

    • 一、flag被盗
    • 二、中国菜刀
    • 三、这么多数据包
    • 四、手机热点
    • 五、抓到一只苍蝇
    • 五、日志审计
    • 六、weblogic

一、flag被盗

http筛选
Bugku -分析-合集_第1张图片

选中一个post包,追踪tcp数据流
Bugku -分析-合集_第2张图片
得到flag
Bugku -分析-合集_第3张图片

二、中国菜刀

同理和 flag被盗一样的流程
追踪tcp得到php一句话,菜刀连接即可
Bugku -分析-合集_第4张图片

三、这么多数据包

按照 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

Bugku -分析-合集_第5张图片

发现两个主机上的1234、35880端口还存在通信

追踪tcp
Bugku -分析-合集_第6张图片

base64解码
Bugku -分析-合集_第7张图片

四、手机热点

必应 “蓝牙传输协议”,即obex。
wireshark搜索obex用WireShark分析

Bugku -分析-合集_第8张图片

传了一个“secret.rar”压缩包
选中
Bugku -分析-合集_第9张图片
导出为x.rar,解压得到Flag
在这里插入图片描述

五、抓到一只苍蝇

Step1:http过滤
Bugku -分析-合集_第10张图片

查看数据包可以得知是发送QQ邮件
http过滤 可以看到第一个数据包有fly.rar
第一个压缩包内涵的信息如下

{
    "path":"fly.rar",
    "appid":"",
    "size":525701,
    "md5":"e023afa4f6579db5becda8fe7861c2d3",
    "sha":"ecccba7aea1d482684374b22e2e7abad2ba86749",
    "sha3":""
}

继续增加过滤条件

http && http.request.method==POST

Bugku -分析-合集_第11张图片

我们需要做的就是将这个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
Bugku -分析-合集_第12张图片

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命令详解
Bugku -分析-合集_第13张图片
but,,,如图,出现了部分文件无法跳至偏移量,导致接下来的操作失败。。。所以借鉴了其他人的图。。。

使用cat命令将碎片拼成完整的fly.rar:

cat  1.1  2.1  3.1  4.1  5.1  >  fly.rar

使用md5sum命令检查文件完整性:

md5sum fly.rar

Bugku -分析-合集_第14张图片

获得e023afa4f6579db5becda8fe7861c2d3,文件完整!

Step4:破译伪加密,获得flag.txt

伪加密,即这是一个未加密过的rar文件,但是却将加密位置为了1。只需将文件开头处0x74位后面的0x84位置改为0x80即可。

解压失败,需要密码,压缩包伪加密
将文件头0x1674后面的84改为80。(84为加密,80/20不加密)

Bugku -分析-合集_第15张图片

现在就可以正常解压,解压结果是一个 flag.txt,打开看一下发现是乱码,并不是真正的txt文件,看一下文件类型,发现是原来是一个 windows 下的小程序,改文件后缀名在windows下跑一遍,着实是苍蝇满屏幕乱跑,可怕。。。

Step5:分析flag.txt文件,获得二维码,获取flag

binwalk 看一下里面还有什么东西,发现一堆的图片,弄出来看看。

binwalk flag.txt
foremost -v -i flag.txt
Bugku -分析-合集_第16张图片
导出来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

Bugku -分析-合集_第17张图片

六、weblogic

(广告且开挂。。。)

题目描述
黑客攻击了Weblogic应用,请分析攻击过程,找出Weblogic的主机名。flag格式:flag{}

Tip:主机名为十六进制。

考点
weblogic 攻击流量审计。模拟了爆破weblogic登录密码,通过部署war包getshell,执行命令获取hostname的操作。

解题过程
使用科来分析工具打开流量包,在数据包选项中,Ctrl+F搜索字符串hostname,可以找到编号为658、662的数据包当中存在hostname关键词。

Bugku -分析-合集_第18张图片

其中编号662数据原地址为服务端,是http的Response包。右键解码数据包,可以很直观的看到服务端返回的内容:

你可能感兴趣的:(Bugku)