继上一篇总结:
CTF web题型总结-第五课 CTF WEB实战练习(二)
以下也是我在bugku练习的解题过程。
以下内容大多是我在Bugku自己操作练习,有部分来源于网络,我只是在前人的基础上,对CET WEB进行一个总结;
-----------------------------------------------------------------------
-----------------------------------------------------------------------
下载压缩包,解压打开
(wireshark流量包分析)
我们根据题目提示可以看到提示我们flag可能在这几个协议中我们打开wireshark分析下。
虽然我是直接一开始就搜的icmp....
我们在往下看,
是不是看的有点眼熟接下来我们顺着一个一个看,便可以得到
flag{Icmp_backdoor_can_transfer-some_infomation}
http://123.206.87.240:8001/
根据提示先想到了robots.txt
访问得到flag
第一步,我们先用扫描器扫描该网站有没有什么敏感文件或资源
我们发现扫出了1个admin、1.zip、robots.txt等等敏感文件目录
然后我们访问1.zip把该文件下载过来,然后下载解压后发现这个是该网站的源代码
这个时候,我们在看一下上面的题目提示,flag在根目录,是的,我们发现了这个东西。
在本地打开该文件是没有任何东西的,但是我们在浏览器上访问该文件,就显示出flag了。
flag{NusWJjjsw90-SDADSADAA}
分析:这个是典型的弱口令,猜了一下,KEY是姓名+生日, KEY{zs19970315}
分析:直接百度bugku群号码,
得出 KEY{462713425}
下载压缩包
打开发现压缩包加密了
卡了很久,上网搜索才发现有可能存在伪加密
用winhex打开,然后修改09为00
是个伪加密压缩包
将最后的09改为00(奇数表示加密,偶数表示未加密)
这里扩充一下压缩包伪加密的知识
压缩源文件数据区:
50 4B 03 04:这是头文件标记(0x04034***)
14 00:解压文件所需 pkware版本
00 00:全局方式位标记(有无加密)
08 00:压缩方式
5A 7E:最后修改文件时间
F7 46:最后修改文件日期
16 B5 80 14:CRC-32校验(1480B516)
19 00 00 00:压缩后尺寸(25)
17 00 00 00:未压缩尺寸(23)
07 00:文件名长度
00 00:扩展记录长度
压缩源文件目录区:
50 4B 01 02:目录中文件文件头标记(0x02014***)
3F 00:压缩使用的 pkware 版本
14 00:解压文件所需 pkware版本
00 00:全局方式位标记(有无加密,这个更改这里进行伪加密,改为09 00打开就会提示有密码了)
08 00:压缩方式
5A 7E:最后修改文件时间
F7 46:最后修改文件日期
16 B5 80 14:CRC-32校验(1480B516)
19 00 00 00:压缩后尺寸(25)
17 00 00 00:未压缩尺寸(23)
07 00:文件名长度
24 00:扩展字段长度
00 00:文件注释长度
00 00:磁盘开始号
00 00:内部文件属性
20 00 00 00:外部文件属性
00 00 00 00:局部头部偏移量
压缩源文件目录结束标志:
50 4B 05 06:目录结束标记
00 00:当前磁盘编号
00 00:目录区开始磁盘编号
01 00:本磁盘上纪录总数
01 00:目录区中纪录总数
59 00 00 00:目录区尺寸大小
3E 00 00 00:目录区对第一张磁盘的偏移量
00 00:ZIP 文件注释长度
好了,修改后重新保存压缩包
打开得到
emmmmm
接下来要用社工库来查询了
但是本菜鸡没找到好用的在线查询网站,请好心的大佬赐教..........
遂 查看前辈们写的wp,借大佬的查询结果图一用(侵权删)
flag{15206164164}
由于之前知道有bugku的百度吧 并且这个是一个社工题所以可以试一下这个百度吧
进入百度吧然后会见到
这句话的意思是要我们登录这个账号 但是我们只有账号没有密码 如果爆破的话很有可能爆破不开 所以我们再重新看一下 题目然后 我们看到了一个关键词“弱口令” 然后我们去百度弱口令top100.
然后会发现弱口令
https://blog.51cto.com/10907603/2139653
然后一个个试一下这些弱口令
然后发现第二个 就是密码 然后登录 进入邮箱
应该会发现一个邮件 邮寄那里面就有 flag
访问目标网址,“there is nothing ”,小编心想,没东西是不是可以不做了?
当然是不可能了,年轻人想想就好了,何必当真呢
burp抓包查看响应情况,初看好像没什么,这个时候拼什么呢,拼的是小编的这份细心了,看见小编圈起来的了嘛,很有用哦
伪造一个IP,查看响应,出现了一个“m4nage.php”,进行访问,继续抓包
继续伪造IP,可以看到回显内容“show me you key”
任意构造一个key值,继续伪造IP,发包访问,可以看到回显了找到正确的key的方法
破解key值得python代码如下,破解出来的key值为“ichunqiu618ok”
import hashlib
def md5(data):
m = hashlib.md5()
m.update(data)
a = m.hexdigest()
return a
a = 'ichunqiu'
b = 'abcdefghijklmnopqrstuvwxyz1234567890'
for i in b:
for j in b:
for k in b:
for l in b:
for m in b:
if md5(a+i+j+k+l+m)=='5a2a7d385fdaad3fabbe7b11c28bd48e':
print a+i+j+k+l+m
传入正确的key值后,回显了一个php文件
继续burp抓包,伪造IP访问,得到一个“x0.txt”文件
访问是一段php的源码函数,复制到本地,对代码进行修改,在最后对函数进行echo输出。
本地网页访问代码,即可得到flag信息
访问目标网址,很有趣的界面,“input your answer”,那么到底输入什么呢,小编也不知道,只有继续乱翻翻看了
查看网页源代码,小编发现了一个重要的线索(很重要哦),不过看完之后看来小编还是逃不了代码的命了
破解代码python,如下
import urllib,urllib2,json
import hashlib
import re
import requests
url = 'http://106.75.108.111:1111'
def sha_1(data):
sha_1 = hashlib.sha1()
sha_1.update(data)
sha = sha_1.hexdigest()
return sha
def key(key1,key2):
c='0123456789'
str1 = key1
cipher = key2
for i in c:
for j in c:
for k in c:
if sha_1(i+j+k+str1) == cipher:
# print (i+j+k)
return i+j+k
def get_info():
r = requests.post("http://106.75.108.111:1111")
key2 = r.headers['Ciphertext']
cookies = r.cookies
html = r.text
res = r'\+(.*?)\)'
key1 = re.findall(res,html)[0]
print key1
return key1,key2,cookies
def postx(number,cookies):
cookies = cookies
values={'pass':number}
response = requests.post("http://106.75.108.111:1111",cookies=cookies,data=values)
return response.text
def sum(text):
res = r'<!--.*?([\d\+\-\*]+).*?-->'
key3 = re.findall(res,text)[0]
result = eval(key3)
return result
if __name__ == '__main__':
(key1,key2,cookies)=get_info()
number = key(key1,key2)
result1 = postx(number,cookies)
result2 = sum(result1)
print result2
print postx(result2,cookies)
直接运行,滴滴滴,flag信息瞬间就出来了呢
原文链接:https://blog.csdn.net/qu_iet/java/article/details/79099218
所有需要资料均是我个人学习笔记,根据在bugku平台的练习以及参考了互联网上各位大佬的思路经验进行总结。
互联网上的思路过于零散,很少有资料是系统的从理论到实践的总结。本着共享的经身,这几天关于CTF-WEB的学习笔记进行了整理,可分享。
有需要的可以私聊我公众号,回复“CTF学习资料”获取。
CTF web方面和渗透测试涉及的知识点基本一样,但是思路又完全不一样。渗透测试基本是整个站漏洞挖掘的思路,CTF基本是单个点的思路。相同点即是他们所涉及到的漏洞点、知识点、利用方式是一样的。对于有渗透基础的大佬来说,学习CTF只是学习一个解题思路;
以上仅是我个人见解,整理的笔记中涉及的点并不全,大多漏洞点其实并没有涉及到,后续如进行深度学会CTF web方面的话,我会继续进行整理分享。
本文作者:Lemon
本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/146728.html