渗透测试学习笔记|2021年云南省职工职业技能大赛CTF流量分析题(wireshark)WriteUp


2021年云南省职工职业技能大赛CTF流量分析题(wireshark)WriteUp

.0x00 前言
本人作为业余爱好者参加了2021年云南省职工职业技能大赛的网络安全比赛,比赛形式以CTF+理论考核+模拟渗透的形式,今天分享一题流量分析题的解题过程。
0x01 题目分析
题目名很直接,就叫wireshark,将压缩文件解压之后是一张名为“target.jpeg”的图片。
渗透测试学习笔记|2021年云南省职工职业技能大赛CTF流量分析题(wireshark)WriteUp
文章图片

0x02 解析图片
目标明确,直接上binwalk。
渗透测试学习笔记|2021年云南省职工职业技能大赛CTF流量分析题(wireshark)WriteUp
文章图片
通过binwalk分析,图片内还藏有一个zip压缩文件,使用命令

binwalk -e target.jpeg

将图片内的其他文件分离出来并解压文件获得pcap流量包。
0x03 分析流量包
使用wireshark打开流量包
渗透测试学习笔记|2021年云南省职工职业技能大赛CTF流量分析题(wireshark)WriteUp
文章图片
大概浏览一下流量包信息,涉及到的网络通信协议有TCP、HTTP、MySQL。
TCP一般都是建立连接的流量包,所以我选择优先分析HTTP协议的流量,追踪一下HTTP流看看有没有突破口。
渗透测试学习笔记|2021年云南省职工职业技能大赛CTF流量分析题(wireshark)WriteUp
文章图片
通过对HTTP流的分析,发现GET请求是明显的SQL注入请求,详细分析一下请求中的注入语句。
id=0' or ascii(substr((select flag from answer),0,1))=32--+

通过对注入语句的分析得出结论,这是对请求参数id进行的一次布尔盲注,对从answer表中查询的flag的值进行了猜解,同时转换成ascii码进行校验。
0x04 CTF
已经搞清楚流量包中的流量做了什么事,下一步的方向就很清晰了,只要分析得出布尔盲注中的正确ascii码就可以获得flag。
布尔盲注的特点就是通过返显对猜解的值进行校验从而获得数据库中的数据,那么现在的目标就是找到流量包中校验正确的响应包,再找到对应请求即可得到正确的ascii码,那么先对响应包的长度进行排序看看有没有规律可循。
渗透测试学习笔记|2021年云南省职工职业技能大赛CTF流量分析题(wireshark)WriteUp
文章图片
在对流量包长度排序后分析发现,长度730的包有很多,而长度727的数量更符合flag的长度,且长度为727的响应中,每一位字符的猜解响应未出现重复,那么目标明确记录下每一次响应包长度为727的请求中的ascii码即可得到正确的ascii。
最终的ascii码值为下
102 108 97 103 123 87 49 114 101 95 83 104 97 52 107 95 97 110 100 95 83 81 76 105 125

将ascii码转换为字符
渗透测试学习笔记|2021年云南省职工职业技能大赛CTF流量分析题(wireshark)WriteUp
文章图片
Capture The Flag!
flag{ W1re_Sha4k_and_SQLi}

【渗透测试学习笔记|2021年云南省职工职业技能大赛CTF流量分析题(wireshark)WriteUp】0x05 小结
这一题实际上对于打过比赛的大师傅来说,应该是像喝水一样简单,但个人认为这一题很有代表性,所以最后想说一下自己对流量分析题的两点心得,第一要知道流量包中的各累通信协议是如何工作的,第二要弄明白整个流量做了什么事,能做到以上两点基本就可以完成所有的流量分析题。
最后的最后,也想说一下这一次的比赛题目其实并不难,但自己也没有拿到很好的名次,综合排名23,这个成绩我是可以接受并稍有些许满意的,因为也算是自己给自己一个半年多网络安全学习的一个反馈。
最后的最后的最后,给大家灌一口鸡汤,学习永远不晚,只要在路上,就一定会有所收获,别想太多只管努力就好了,剩下的交给时间就行了,祝大家都能心有所想且学有所成!

    推荐阅读