2019年CTF3月比赛记录(三):ConfidenceCTF与Securinets CTF 部分题目writeup与重解

写在前面的话:
1.对于ConfidenceCTF,一开始没注意有这个比赛,后来17号下午登了一下ctftime,看见有这个比赛,也没注册用户就进来看了看,趁着最后几分钟,只看了一道Web(warmup)题目。
2.TCTF算是期盼了许久了,这也算是2019年第一次参加国内比较正式的比赛,但是遗憾的是自身能力有限并未对web题目做出解答,还是需要等待官方给出writeup后再进行重解复现。
3.至于Securinets CTF(SCTF),是在TCTF解答不出的前提下顺便注册了个账号逛了逛,现在趁着题目环境还在,结合自己之前的思路和师傅们给出的writeup进行部分题目复现总结。
4.本次wp与重解分两部分整理,下一篇是余下的SCTF和TCTF。
可能时间有点久了。◔‸◔。
比赛时间:ConfidenceCTF:2019年3月17日
TCTF:2019年3月23日至2019年3月25日
Securinets CTF:2019年3月24日
一、ConfidenceCTF—My admin panel(warmup):
这道题吧,546支队伍解题,151个解出。这道题实际上就是php代码审计,难度的话其实看过后也还好,主要还是一些知识点以及一些思路的问题。由于环境的关闭没办法复现,只剩下了一些文件截图。
题目如下:
在这里插入图片描述
在这里插入图片描述
很直接的点击第二个bak备份文件,一般情况下备份文件里都有源码或其他有用的东西。
在这里插入图片描述
(o゚v゚)ノ,应该是构造题目没错了,首先很明显,第一步要改Cookie成otadmin;第二部应该是要给Cookie赋值,用到了php正则匹配,要使otadmin={“hash”: [0-9A-Z"]+},然后经过一个json_decode,再往下走就会碰到一个获得提示的重要的条件,对于"!=" ,在php中我们知道这里可以利用弱类型比较的漏洞,这个是在后面需要用到的。
通过看一些writeup,通常情况下都是提交了 Cookie:otadmin={“hash”:0 }或者是其他的一些"hash"值来获取hint,最后返回一个提示:
I CAN EVEN GIVE YOU A HINT XD
0006464640640064000646464640006400640640646400
一开始看到这个的话,我还是比较懵逼的。因为之前真的没遇到过这东西,后来查了一些相关的函数,这是python里的ord()函数造成的,结合一些writeup给出的内容以及我自己调试,ord()返回ascii码值,结合源码中的表述,当输入’ord(“a”) & 0xC0’时,返回64;当输入’ord(“1”) & 0xC0’时,返回0;结合这一点我们不难发现,MD5的前三位必定是数字,那么再结合之前所说的php弱类型比较的问题,只要使得hash的值是个三位数,那么就可以得到flag。
当然,不是任意的三位数都可以,下一步还是需要爆破的,有些师傅们已经给出了python爆破脚本,当然对于我个人而言,(由于没有做)我个人的想法是能不能通过Burpsuite用Intruder给Cookie加上载荷在100至999的范围之间进行爆破,这样的话应该也还是挺快的,最后的payload是Cookie:otadmin={“hash”:389 }。
这道题的话总的来说并不是很难,作为热身题也确实有它的道理,因为熟悉代码和函数的人应该是不用费太大功夫找到得到flag的条件的,对于我这种新手来说,还是得需要查手册,一步步来。{{{(>_<)}}}
二、Securinets CTF—Feedback(重解):
首先打开链接如下:
在这里插入图片描述
先试着输入一些内容看看网页可以返回什么:
在这里插入图片描述
看着没什么特别的,抓个包试试:
在这里插入图片描述
然后我就不知道下一步该干什么了,后来看了别人的wp后我才知道是XXE漏洞,之前确实没遇到过,这次看见了,也就当学习了。
XXE即外部实体注入攻击,由于程序在解析输入的XML数据时,解析了攻击者伪造的外部实体而产生的。从网上的资源中搜索到,XXE利用一般分为两种情况,有回显和无回显,这道题显然是有回显。那么初步构造的DTD部分payload及网页回显如下:
在这里插入图片描述
到了这一步,通过回显,远程代码无法执行。再往下我没明白为什么直接找到了Ngnix,然后找到默认配置文件的/etc/nginx/sites-available/default路径,在回显中找到root:
在这里插入图片描述
然后直接"file:///var/www/html/epreuve/flag"得到flag:
在这里插入图片描述
当然还有一种payload:file:///proc/self/cwd/flag,直接找当前工作目录,打开的话也可以得到flag。
一些XXE资料:https://www.freebuf.com/column/156863.html
https://www.freebuf.com/column/181064.html
三、Securinets CTF—Custom Location(writeup):
打开链接:
在这里插入图片描述
没什么特别的,但是当输入flag.txt后,返回的页面就不一样了:
在这里插入图片描述
打开展示的public/index.php:
在这里插入图片描述
唔,虽然看不懂这具体是啥,但是"config/bootstrap.php"应该有点用,改了一下,果然有回显:
在这里插入图片描述
同理,打开"/vendor/autoload.php":
在这里插入图片描述
但是再往下,就回到最初的起点,我尼玛。好像有点不对劲,往回查一查,在"/config/bootstrap.php"下,找到了一个"/secret_ctf_location/env",打开看看,这次有了:
在这里插入图片描述
四、Securinets CTF—MISC-HIDDEN(writeup):
这题蛮简单的*.。(๑・∀・๑)*.。 ,打开网页后如下界面:
在这里插入图片描述
检查元素,查看源码没啥反应,那就查看证书好了,flag直接拿:

在这里插入图片描述

五、总结:

1.还是,日常感谢大哥们的writeup(github or ctftime )感激不尽,又涨姿势了。
2.通过这几天的比赛做题,依旧可以发现自己存在的许多问题,知识与技术同时欠缺,有些知识点有待梳理。
3.以赛促练,以赛促学,学以致用,继续加油。余下的SCTF和TCTF的wp与重解稍作整理,先缓缓,一两天后再搞一搞。( ̄▽ ̄")

猜你喜欢

转载自blog.csdn.net/qq_43214809/article/details/88626660
ctf