分析

flag被盗

将流量包下载下来用wireshark打开之后,过滤器:

1
http contains flag

直接得到flag

中国菜刀

既然是菜刀,估计就有eval了,所以我们先试试过滤

1
http contains eval

找到一个数据包,追踪http流后发现一段base64

base64解码之后:

1
2
3
4
5
6
7
8
9
10
11
12
@ini_set("display_errors","0");
@set_time_limit(0);
if(PHP_VERSION<'5.3.0'){
@set_magic_quotes_runtime(0);
};
echo("X@Y");
$F='C:\\wwwroot\\3.php';
$P=@fopen($F,'r');
echo(@fread($P,filesize($F)));
@fclose($P);;
echo("X@Y");
die();

虽然代码有点怪异,但是可以知道这一步是在上传文件,并且在执行成功后会回显X@Y,
所以我们将过滤规则改为:

1
http contains "X@Y"

在第一个数据包里可以看到flag.tar.gz

继续往下看到第三个数据包可以看到内容:

这个大概率是一个压缩包,我们导出来看看(看分组字节流时需要从第三位后开始,因为有个X@Y,并且解码为压缩)

得到flag

这么多数据包

提示了先找到getshell的流,先将过滤规则设置为tcp

看的出来这是一个192.168.116.138在扫描192.168.116.159的端口,

将过滤规则改为:

1
tcp and ip.src==192.168.116.138

中间有一段数据包可以看出来3389是开着的,然后攻击机好像在爆破3389,但是最后失败了,
现在我们需要的是一个有多次消息连通的端口,继续往下找可以发现445也是开着的,但是好像也失败了,
继续往下,有一段4444端口连到1040的,估计这段已经是找到漏洞并且在利用了,因为连接很稳定,并且也没有失败的情况,继续往下可以看到:

这段有点奇怪,大概率是拿到shell了,追踪一下流:

居然直接就找到了flag,那段base64解码之后就行了。

流量分析

(貌似是做不了了)
网上的wp是说找到b站的up之后进去个人主页可以拿到flag,现在个性签名已经改了。

手机热点

先仔细看看提示:

1
有一天皓宝宝没了流量只好手机来共享,顺便又从手机发了点小秘密到电脑,你能找到它吗?

首先我们需要知道,电脑连手机热点上网不仅仅只有WIFI,还有蓝牙共享。
先打开流量包,冒出来一大堆不懂的协议,找了找资料之后知道了L2CAP是在蓝牙里用的协议,
然后再试试有没有wpa协议,结果是没有,所以现在确定下来是用蓝牙传输的文件了,
所以还是先看看蓝牙的协议吧,原文出处:

从文章中可以知道蓝牙传输协议用的是OBEX,所以我们将过滤规则改为:

1
obex

可以看到发送了一个secret.rar,所以打开这个数据包看看:

已经可以看到flag.gif了,接下来我们需要将这个文件导出来,看分组字节流之后选择原始数据并保存为一secret.rar:

打开压缩包,图片上就是flag

抓到一只苍蝇

这题在做的过程中有点恶心人,
首先打开数据包,题目提示了抓到一只苍蝇,抱着试一试的想法:

1
http contains "苍蝇"

没想到还真有:

仔细分析一下发现是在发qq邮件,并且还发了文件,所以我们现在试试:

1
http.request.method==POST

可以看到第一个数据包是传文件的,然后下面几个可能就是文件内容了:

具体是几个,仔细看看URL,738号数据包有个需要调用函数CheckFile,并且前面的5个数据包url的路径一样,
所以从第一个开始,后5个数据包是文件内容,但是由于TCP包有文件头,我们需要去掉文件头才能将原始数据合成一个文件,
从第一个数据包可以看出来:

文件大小是525701字节,我们需要的这5个数据包的大小是:

1
131436*4+1777=527521

用527521-525701=1820,然后再除以5就是tcp包的文件头了–364
我们将分组字节流中的原始数据分别保存为1、2、3、4、5,方便操作
然后使用linux的一些工具进行操作即可得到flag.rar
这里使用dd

1
dd if=1 bs=1 skip=364 of=1.1

这条命令中if是文件名,bs是多少个字节,skip是多少位,of是保存为哪个文件
然后再用linux的输入流来合并成一个文件:

1
cat 1.1 2.1 3.1 4.1 5.1 > fly.rar

然后fly.rar又被伪加密了,所以需要将这个文件用winhex打开后,用其中的74 84改为74 80就能打开了,

flag.exe打开是乱码,mzp文件头,改为exe可执行文件后。。。一堆苍蝇出现了。
将这个文件扔到kali中foremost一下,得到一个二维码,扫码得到flag。

信息提取

题目提示了sqlmap,先过滤一下http

一开始的几个数据包可以看出来是在找注入点,并且测试注入点能不能用,
一直往后翻看sql语句可以发现这是个盲注,当为真时,回显:

为否则是其它东西,既然要找flag,那就直接看到最后爆列的语句:

这里已经到最后一位了,又因为回显是可以看出来是否成功的,所以我们再加一条过滤规则

1
http and ip.src==10.0.0.201

建议从后往前看,因为前面的数据包还有爆列爆库的语句,为了更简单拿到flag,
我们直接从后往前看:

1
Message #1 AND ORD(MID((SELECT IFNULL(CAST(`value` AS CHAR),0x20) FROM isg.flags ORDER BY `value` LIMIT 0,1),34,1))>1:

懂注入的应该知道,其中34是代表着第34位,>1是代表着这个字符的ascll>1,但是第34位没有回显刚刚成功的语句,就证明了flag是33位的,往上看看

第33位124回显成功,但是125回显的是失败的,所以证明了这一位的ascll码是125,以此往上推,
最终的flag是

1
ISG{BLind_SQl_InJEcTi0N_DeTEcTEd}