“百度杯”CTF比赛 十二月场 notebook
前言
这道题总的来说不难,自己其实对于这题考察所有知识点都了解,甚至关键的点自己可以说算是注意到了,但是唯一的问题是自己没能听出题人的。只能说,还是自己的问题。。
WP
看到题目里的提示,要文件包含phpinfo,虽然还没进环境,但是至少知道了这题存在文件包含。
进入环境,发现url似乎存在文件包含。尝试利用伪协议进行包含,失败了。经过一些尝试,发现还是不行。
这里考虑去扫一下目录,发现robots.txt。访问,得到php1nFo.php。
接下来我就出了问题了。正确的姿势应该是?module=&file=php1nFo.php
,我直接访问php1nFo.php,结果就出了大问题。
phpinfo里面的内容其实我也察觉到了,首先是opendir,注意到/tmp。注意往下看,我当时也注意到了session.save_path,不过坑就在这里。如果直接访问php1nFo.php,这里的sava_path是/var/lib/php5,如果你利用文件包含来打开php1nFo.php,你会发现这里的save_path是/tmp/SESS。我就因为没用文件包含来打开,看到sess路径的时候觉得不能session包含,然后我就GG了。
正确的姿势是随便注册,然后登录。看一下自己的session,然后去访问。我这里访问的是?module=&file=../../../../../../tmp/SESS/sess_gmpvojpve3csrk94cdahdlts55
成功访问到了session文件。这时候发现用户名我们是可控的,因为就可以RCE了。这里我注册用户<?php @eval($_POST['feng']);/*
然后用蚁剑连就可以了,然后找到flag文件,得到flag。
总结
听出题人的话!