看雪.纽盾 KCTF 2019 Q3 | 第七题点评及解题思路

发布者:Editor
发布于:2019-09-30 09:53
流言蜚语算得了什么。
从诞生就注定不凡的少年随心所欲,手持火尖枪,脚踏风火轮,身披混天绫,这世间他皆来去自如。
混沌世界总有一些牵挂束缚着他。
海水翻腾,那祸世巨龙被他踩在脚下,抽筋扒皮。
“要本太子的命,我给你就是了。”在狂风和暴雨之中少年割肉还父、剔骨还母,只一人担下所有罪责。
但哪咤怎么会就此湮灭呢?
从最深处的泥地里破土而出,一定有最强大的力量,他日且看少年三头六臂,在这混沌世间大开杀戒。



题目简介



本题共有1920人围观,最终只有55支团队攻破成功。这一题相对较简单,Nu1L战队只用了191秒就攻破了此题,简直神速!


攻破此题的战队排名一览:



就算简单也不能轻视,接下来我们一起来看一下这道题的点评和详细解析吧。



看雪评委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}




声明:该文观点仅代表作者本人,转载请注明来自看雪