squarectf 回顾+复现
一、Be The Admin
1.回顾
这题最开始点进去发现后缀有?id=1第一反应是sql注入,尝试一下手工注入发现报错,其中的报错信息
看到是java环境,就去搜索了相关的赛题,然后巨多巨麻烦,囫囵吞枣的试了半天也没成,但是一看这题只有75分,并且还写的是十分基础的题,给我整不会了,最后也没做出来。之后开了题解才发现原来这么简单。
2.复现
漏洞复现很简单,就是先抓包发现他设置了一个cookie,用base64解码发现是
CTF Participant
所以就把CTF Participant改成admin编码一下发过去就成了…
还有一个坑是需要把等号删去,不然还是成不了,奇怪…
出现flag
二、Just Go Around
芜湖,第一个自己完成的xxe+ssrf,解出来的一刻好激动
这个由于当时卡在了75分的题上面,感觉75分的我都做不出来,这个250的当时看了一眼是xxe就直接没看,现在准备看一下题解看看怎么做,结果打开题解发现说了又好像没说,如说。
让chatgpt翻译一下
翻译完了感觉确实是没说,看题解之前已经可以用xxe了,最主要的后面的部分没有,没办法只能自己试了,但是至少给了思路是es的后端。
先正常思路找到post,然后随便输入一下并且上传,抓包,发现是把上传的数据转成xml进行上传,如下
所以我们就可以简单改造一下就可以实现xxe注入其中SYSTEM后面的部分就可以注入我们自己的代码实现功能。
xxe不止有读取文件,还能访问内网,而访问内网就是这题的关键步骤,而这两种方式的利用方法如下:
- 读取文件,利用file协议,具体用法为 file://你要读取的文件目录
例如,想读取根目录下面的/flag文件,本题情况下就可以使用如下代码
1 |
|
这样就可以读取/flag文件,但是本题不适用
- 访问内网,就是用http协议,如下,就是本题所利用的方式
1 |
|
回到题目,我主要是参考了这篇博客,给了我很大启发并解出题目,如果没有这篇博客我是肯定解不出来的。
XXE漏洞攻击——几道CTF题_xxe ctf-CSDN博客
其中的xxe+ssrf部分。
继续解题,先访问一下/etc/passwd文件,如下,发现没有有用信息
然后我就是先访问了/根目录,如下
发现了justgoaround的题目文件,然后就是挨个访问,过程过于漫长并且无聊就不放了,终于,打开了一个似乎很有用的文件,如下
发现给出了访问es数据库的端口(后面证明这是es的默认端口),但也是一个进步,然后继续找,看一下上面的博客,访问一下/etc/hosts,发现了一个ip地址,疑似内网,直接进去
如果直接进上面的ip地址是错误的,然后只能试了,发现把3改成2有回显!如下
这就说明已经找到了es的地址,所以就直接搜索一下所有文档,flag就出了
flag{tHISiSapRIVATEpOSTdONTlOOK}
注:具体的搜索命令我是用的ChatGPT给出的,效果很不错,所以看样子之后的比赛ChatGPT和Google一样重要了。