就算简单也不能轻视,接下来我们一起来看一下这道题的点评和详细解析吧。
看雪评委crownless点评
这道题用来做签到题再合适不过了,虽然源代码简单,但由于每次都会强制重设cookie,导致破解者必须写脚本来尝试可能的组合,原理也不很难。
设计思路
这道题的设计思路其实很简单,服务器首先会返回5个key,均为0。希望破解者通过穷举找出哪些key变为1时能获取到flag。那么5个key总共就是2^5=32次穷举。
解题思路
本题解题思路由看雪论坛htg提供:
本题是一道Web题,需要采用Burp Suite:cookie欺骗、暴力破解。
工具准备
>>>>burpsuite
推荐下载:Burp Suite Pro2.1破解版-2019.08.27更新、BurpSuitePro
我主要采用的是v1.7.30版本,主要是如下3个文件。
(1)burp-loader-keygen-jas502n.jar
(2)burpsuite_pro_v1.7.30.jar
(3)BurpHelper.jar
>>>>java虚拟机
推荐下载JDK8:Java SE Development Kit 8 Downloads
解题思路
>>>>观察:找“亮点”
文件解压后,就一个地址:http://154.8.174.214:8080/。
浏览器打开后,仅看到:Not Admin。
查看源码,没有什么有用的信息。
借助浏览器的“开发者工具”:切换到“Network”,刷新页面,点击Name栏里的IP地址,在右侧切换到“Header”栏能看到,返回的Response信息。
亮点就在反馈的cookie上,我们发现,服务器返回了6个cookie,其余的没有什么特别的地方。
Set-Cookie:key0=0Set-Cookie:key1=0Set-Cookie:key2=0Set-Cookie:key3=0Set-Cookie:key4=0Set-Cookie:key5=0
经过初步观察,我们发现,仅有两条线索:一是,Not Admin;二是 6个Cookie值。
>>>>查资:补“知识”
之前没有Web经验,没办法,只好去找“ 度娘 ”,在百度里面搜索:“CTF Web”、 “CTF Web Cookie”、 “CTF Web Cookie欺骗”、“CTF Web Not Admin”等等。
恶补了一些Web渗透方面的知识,逐一去验证,发现没有一个办法能用。什么SQL注入、目录文件扫描等等。
但有一点价值信息,Web渗透方面的软件,大多都指向了Burp Suite,其功能挺全,现在就重点放在:BurpSuite软件学习,下载软件,搜索BurpSuite资料:软件CK、安装、配置、Proxy、Intruder等。
搜索并学习如何利用BurpSuite进行Cookie欺骗、暴力破解方面。
>>>>解决:定“方案”
回到第一点,我们根据服务器反馈的消息,重点在于cookie上面,所以获取flag的关键还是在于如何利用cookie。
(1)安装、部署BurpSuite(2)配置代理Proxy、修改浏览器的代理设置(3)Intruder设置,实施暴力attack(4)查询反馈结果,找到返回信息长度异常地方,寻找flag
解题过程
1、 安装、部署BurpSuite
推荐使用burpsuite_pro_v1.7.30,我测试了好几个版本,在运行过程中总是出现失败,诸如无法运行、license总会空等等,基本上网络上遇到的、没遇到的,都碰到了,安装部署个软件还真是费劲。具体可以搜索网上资料进行配置。
2、配置代理Proxy、修改浏览器的代理设置
启动软件后,需进行代理设置,以便于BurpSuite能够劫持浏览器访问信息。Proxy→Options→Add:设置端口号、IP地址,这个要记住。
在下一步,浏览器里面进行代理设置的时候,需要填写对应的端口和IP地址,建议为127.0.0.1:8888。
3、Intruder设置,实施暴力attack
(1)我们采用暴力破解方式,假定key0至key5的取值范围为0-9。这样就有10^6条,逐一进行测试。
(2)Intruder具体设置要点:
Intruder→Target:设定IP地址及端口分别为:154.8.174.214:8080Intruder→Positions:设定Attack Type为Cluster bomb,这个最重要,这个才能保证有所有的位置(key)取值进行交叉排列。Intruder→Payloads:针对每个key,选择Simple list,并在Payload Options里面选择Add from list里的0-9,此步骤的意思是,设定key的取值字符范围为0-9,且只有一个字符。
点击Start Attack:
下面开始漫长的等待,过程中可以查看结果,发现异常后,即可找到flag。
(3)Intruder具体设置步骤:
4、查询反馈结果,找到返回信息长度异常地方,寻找flag
经过测试,在11002条记录里能看到 length长度为329,明显区别于295,点击查看里面的Response信息,终于看到了:
flag{4E0844E2-705A-4374-9050-F56A10BA9E9B}
最终答案为:flag{4E0844E2-705A-4374-9050-F56A10BA9E9B}