→ 不让扫目录 → 不存在源码泄漏
→ 不让爆破手机验证码 == 不存在万能验证码 == 逻辑漏洞
→ 上手第一步F12 看Network 看返回包 → 点击获取验证码 → 看到debug验证码
→ 上手第二步开启Burp代理,全站全功能狂点,看Target 的Sitemap(好像很多小萌新不知道burp的这个功能哦)
→ 上手第三步全方位测试,info没用、login没用(怎么确定没用?是真的没用。)重点是like开始报错了。(我是后来写的wp,之前没有截图,现在服务器用不了了,幸亏这几天打比赛我的burp一直没关)
→ 3修改一下,显示json的问题,baidu搜了一下是json.load()的问题,好像跟反序列化没啥关系。
→ 上手第四步,全方位百度,我是先搜gunicorn ,我自己也不信,我是在这篇文章看到的
→ 然后就开始XXE的生涯了。找了几篇文章,其他的师傅也都贴了,我就不贴了,这篇就只记录思路,(其实找了很久,一开始用普通的不行,内部外部dtd都测试一遍,各类dtd我都试了一遍,最后发现一篇文章,我看群里的好多师傅已经放出来了,我就不去找那篇文章了,具体原理,看文章吧。可以直接用)
PAYLOAD
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE message [
<!ENTITY % xxe '
<!ENTITY % file SYSTEM "file:///etc/passwd">
<!ENTITY % eval "<!ENTITY &#x25; error SYSTEM 'file:///nonexist/%file;'>">
%eval;
%error;
'>
%xxe;
]>
→ 找了几个flag的路径都没有,简单思考了一下,xxe不能用于文件执行,所以找文件,好像看到很多师傅在群里说找不到flag,但我好像很行云流水的先看当前文件(/proc/self/cwd/)下的app.py,然后没发现啥,看到from config import * 就看config.py就看到了flag了。终。
这题主要是去搞XXE的payload浪费了一点时间,其他步骤其实也很正常,很多同学们可能会在坚持XXE的时候怀疑自己的方向是否正确,你要坚信自己你就是光!
是哪里的人,整个界面都nightbaron042,加上TIPS 关注微博 (IP归属地广东)
试了好几个(成都 id info里找到的、北京、广东),最后总不能想到腾讯深圳吧。【还真是。想暴打出题人了】
流量包分析题,对于misc的我还算可以
→ 上手第一步,纵览全局,浅浅看流量包的内容 都是TCP
→ 直接发现有两个序列 右键TCP Follow ,看到密码yun202203 ,直接wireshark指定提取方向数据提取,删掉前面多余的几个OKAY
→ 因为之前做过相关的apk备份ab文件,所以可以直接使用abe.jar提取,
java -jar abe.jar unpack xxx. ctf.tar password
但是不会的同学们也可以直接github上有解密ab文件的项目。https://github.com/lclevy/ab_decrypt
→ 先是apk不能安装、GDA/jadx简单逆向,看到flag1是ip+端口号
→ mac很委屈看不到隐藏文件,早知道直接用binwalk解tar包了。迷茫了好一会,我还用tree检查了一下看是否丢了隐藏文件(结果tree是个废物),然后ll -a 看到了,委屈死了。
→ 第一层是privatekey,和enc,这个我因为之前用过openssl,在加上同学们应该都知道rsa吧,直接就解出来了。
payload
openssl rsautl -decrypt -in key.en -inkey private_key.pem
→ 第二层是一堆0和1,这个其实对misc?也是比较简单的,正常应该都会去看一下他一共多少个,是否可分 m * n 这样,猜编码之类的,但是因为这是841,一个离谱的数字不能被 2 4 8 常见的一些编码除,但是发现是 29 x 29 ,misc手应该都做过二维码的题,所以一下就想到二维码了。
提取出来是个网址,然后拼接到flag,下载下来一个门禁系统。
→ 这个由于源码很少,分析起来也很方便,直接C++环境,摸索一下,其实应该很容易就找到key_data的问题,他是怎么赋值的,他如果没赋值,怎么可能能进最后一次判断,以及for循环那么显眼的7次。跳出循环理解,这个门禁是7位数!(这个部分对于C语言薄弱的我还了解什么是位域,学到了)
我其实纠结了一会,再没用C++环境去思考的时候,我一直想着会报错(python用多的思想)但是我实际试验的时候,不仅没报错 还直接把management.password6 作为了management.key_dat 赋值,直接无语。
然后出Flag。md5(5555555)
赛题四是我认为最简单的一题,其实,我先做的就是赛题四,如果我先做了赛题三,我可能不会通关,真的太套了,烦死了。我都想打出题人。
首先是去除二维码背景,用pS修复下载文件,调整绿色通道 然后补一个定位角(百度一搜行云流水结束)
获得地址:http://public.huoxian.cn/ctf/call_me.zip,需要解密
修复压缩包,真的是改了504B就好了很无语。百度一搜,Audition看波形(幸亏我下了全套,群里看好像有师傅听声解码,真可爱),摩斯密码:19910386797,应该不会有人这题做不出来吧。
https://darknet.hacker5t2ohub.com/
一开始是真的没有思路(我换了好几个同学号每个都买了一遍,激情小视频都看了。)。
不像常见的web题,一样Burp Sitemap,各个地方狂试,主要就是在这个地方发现了报错查了是Go的ParseInt
然后发现了一篇shop的文章。还是比较久远的了。https://www.jianshu.com/p/66f8b2bcf2ad
现在就是构造整数溢出的数值。简单思考了一下应该就是,有一个if判断,余额 - 商品数量*商品价格 < 0
具体参照该链接 :https://zhuanlan.zhihu.com/p/400078436** 毕竟这是腾讯的文章。 牛呀
然后我就在不断测试,但是我的理想情况是一个比较大的数值,但是不知道为什么。试了很久就是没溢出,最后烦了,每个临近值都配上余额fuzz一遍,大概就是这么个情况,他竟然出了,具体可能还是要看源码了。
→ 然后在32附近fuzz 成功了,我至今还不是特别理解,因为我拿暴打出题人做测试的时候很大的值也是可以。
→ 终于来到了最后一步Key Hash了,这部分我犯了一个常识性错误?,就是认为这个key会是一个小部分的数值,比如64位之类的,导致我最后没忍住氪金cmd5去翻译了一大部分,结果就是一段话。
→ 气得我心疼我的钱。
somd5,可以先解一部分,https://www.somd5.com/batch.html
其实这个时候,我已经找到这段话了,md,但是我不知道后面是什么,somd5不知道是不是被解崩了,不让我继续解了,靠,无奈氪金。
说是靠推理,但是我害怕。我不确定,希望赶紧把钱还给我。最后就是那一段话。
附上这本书的链接,希望小伙伴们好好品读。
https://ylesanded.targaltinternetis.ee/exercises/file/yl_raamatukrypteering/The_Art_of_Deception.pdf
终于来到激动人心的时刻,要结束啦!
先是给了一个文档→直接全选,清除格式(flag2和一张图片就出来了)。
→ 然后肯定是对这个图片进行分析 →其他能用的steg、binwalk我全试了一遍,无效
→ 给了个提示123456,真的我只能想到是加密,然后就开始一个个一个个解密图片试
最后看到了一个outguess解密,成功了,确实很切合这个文件名,我在试之前,我就确定我成功了!
然后和第四题那个很像,直接放到web上发现是一个web题。然后我就开始想是不是ssrf打内网了,结果啥都没有,就快要自闭的时候,我在想真的不会是flag.php吧。然后我可真是谢了。
终结。通关。总的来说是真的简单,但是题目很多脑洞,真的很佩服,一天做完的大佬们!抽空三天做完。都是简单的misc 。
补充了一些知识的盲区!总体感受很满意!
现在的CTF比赛,也很难见到这样子亲民的MISC了,都是机器学习,各种算法深挖,对待新手小朋友也是很友好的,对待个人赛也是很友好!真的是蛮适合我的一次比赛。只不过这周的比赛是真的多,小伙伴们也要注意自己的身体哇!
建议方面,密室逃脱,分很多种类,有多种结局的版本,就是根据剧情会有多种尝试,这次的比赛感觉剧情之间的联系稍微有一点牵强,不过这样可以单独做题,但是也希望有多种版本的多种思路,走向不同的结局。(我不是甲方,请不要打我)。跑路~这次比赛真的基础,很喜欢!希望可以多来点有趣的web~但是像赛题6那样flag.php还是算了吧。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。