原定六月前学完的内容要延后了,先顾工作,后顾学习~
继上一篇总结:CTF web 题型理论基础篇-第二课 理论基础
之后会有关于CTF-WEB第四课、第五课等内容。
引用亮神的话:
如果你分享的内容过于真实,你就没有发表机会,你要完全假了呢,又没有读者去看,你可以在这个通道里,真一会儿假一会儿地往前走,最重要的还是要往前走。
----Micropoor
侯亮大神说:知识的最高的境界是分享,而在我看来,我们在分享的同时也是对自我认知的一个提升。
以下内容大多是我在学习过程中,借鉴前人经验总结而来,部分来源于网络,我只是在前人的基础上,对CET WEB进行一个总结;
Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。— 百度百科
常用功能按钮 从左到右一次是:
1.过滤IP,例如源IP和目标IP
ip.src eq x.x.x.x or ip.dst == x.x.x.x 或者 ip.addr eq x.x.x.x
2. 过滤端口
tcp.port eq 80 or udp.port eq 80 源端口或者目的端口为80
tcp.dstport == 80 只显tcp协议的目标端口为80
tcp.srcport == 80 只显tcp协议的源端口为80
tcp.port >= 1 and tcp.port <= 80
3. 过滤协议
tcp/udp/arp/icmp/http/ftp/dns/ip…… 常用的协议
4.过滤MAC地址
eth.src eq b4:ae:2b:31:c5:07
eth.dst eq b4:ae:2b:31:c5:07
eth.addr == b4:ae:2b:31:c5:07
5. 过滤包长渡
udp.length == 26 这个长度是指udp本身固定长度8加上udp下面那块数据包之和 。
tcp.len >= 7 指的是ip数据包(tcp下面那块数据),不包括tcp本身
ip.len == 94 除了以太网头固定长度14,其它都算是ip.len,即从ip本身到最后
frame.len == 119 整个数据包长度,从eth开始到最后
6. 过滤HTTP
http
http.request.method== "GET"
http.request.method== "POST"
http.request.uri =="/img/logo-edu.gif"
http contains "PNG"
在统计下选择协议分级(析),可以查看当前数据包中包含那些协议
通常我们只关注HTTP以及TCP和UDP协议内容,可以直接右击选择选中状态,比如选中HTTP。
同样的方法也可以用来选择想要的数据包特征,比如想要筛选HTTP GET 包,右击选择作为过滤器应用->选中
在关注的http数据包或tcp数据包中选择流汇聚,可以将HTTP流或TCP流汇聚或还原成数据,在弹出的框中可以看到数据内容。
选中数据分组后,右击选择追踪流->TCP流|HTTP流
常见的HTTP流关键内容:
1、HTML中直接包含重要信息
2、上传或下载文件内容,通常包含文件名、hash值等关键信息,常用POST请求上传。
3、一句话木马,POST请求,内容包含eval,内容使用base64加密
而TCP流通常是命令行操作
使用wireshark可以自动提取通过http传输的文件内容,方法如下:
文件->导出对象->HTTP
在打开的对象列表中找到有价值的文件,如压缩文件、文本文件、音频文件、图片等,点击save进行保存,或者saveall保存所有对象再进入文件夹进行分析。
有时候自动提取得不到想要的结果时,也可以使用wireshark也可以手动提取文件内容:
点击想要的数据包,选定media type的位置,点击file->export selected Packet Bytes,在弹出的框中将文件保存成二进制文件。
文件->导出分组字节流
参考:https://www.freebuf.com/column/153197.html
这里再次引用我之前公众号的文章
1.awvs:acunetix
2.netsparker:netsparker
3.appscan:Appscan
4.nessus:nessus
5.sqlmap:sqlmap
1.admin
2.manager
3.login
4.system
Disallow
一般情况下,大多数网站创建者或管理员都会在网站的根目录放置一个名为robots.txt的文本文件,用来控制自己的网站哪些目录允许SE搜索引擎 ,爬行并收录,哪些目录禁止搜索引擎收录,Disallow,正是robots.txt文件中设置禁止搜索引擎收录哪些目录的一个词语。
http contains"wvs"
发现存在,则为awvs扫描器
http contains"admin"
发现存在admin/login.php?rec=login
从返回字段长度可知,只有最后两个POST请求返回75x的长度,说明这两个POST登录成功。
查看数据包,可知账号密码
因为是php格式,所以只需查找eval,得到文件名
再查看数据包,得到内容
http contains"Disallow"
找到flag
http contains"dbhost"
找到数据库服务器地址
右键,追踪TCP流
复制post进的action内容,显然是base64加密,进入bp解密
decode url——decode base64
提取出以下主要文本
&z1=10.3.3.101choraheiheiheiwebchoraheiheiheie667jUPvJjXHvEUv&z2=web&z3=c2VsZWN0ICogZnJvbSBkb3Vfc2hvdw==
$ar = explode("choraheiheihei", $conf)
可知以choraheiheihei为分割符号,提取出用户名为web,密码为e667jUPvJjXHvEUv
另一个解法就是搜索dhost,然后会点开以下红框标注的数据包
则可直接得到密码,不过这个方法不太正经…
我真的没找到…
我真的没找到…
web服务器前面提过。
http contains “eth0”
为了快速,则直接搜eth0
ip.addr==“192.168.94.59” && http.request.method=“POST”
因为黑客的IP在web里面已经得知
但其实这串并不是标准的base64,但是因为用户名为admin,所以想起web里面admin的密码。
打开vpnone.pcap,统计—端点,发现大多是外网地址,所以放弃
打开vpntwo.pcap,统计—端点,找到流量大的地址,则为黑客获得的vpn ip
一点小tip
在做题过程中,发现如果数据包里出现中文,就会乱码。这时候打开追踪TCP流,选择原始数据,然后save as 文本文件,即可解决乱码
原文链接:https://blog.csdn.net/qq_37432787/java/article/details/82054488
本文作者:Lemon
本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/135003.html