同理和 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端口还存在通信
必应 “蓝牙传输协议”,即obex。
wireshark搜索obex用WireShark分析
传了一个“secret.rar”压缩包
选中
导出为x.rar,解压得到Flag
查看数据包可以得知是发送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的内容
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的主机名。flag格式:flag{}
Tip:主机名为十六进制。
考点
weblogic 攻击流量审计。模拟了爆破weblogic登录密码,通过部署war包getshell,执行命令获取hostname的操作。
解题过程
使用科来分析工具打开流量包,在数据包选项中,Ctrl+F搜索字符串hostname,可以找到编号为658、662的数据包当中存在hostname关键词。
其中编号662数据原地址为服务端,是http的Response包。右键解码数据包,可以很直观的看到服务端返回的内容: