这道题是郁离歌学姐出的,基本操作。一进去就是一个PHPMyAdmin的页面。直接右击查看网页源代码。
这道题本身也好像是在想方设法的告诉我们这个MYSQL的版本是4.8.1。
一个一个尝试账号密码==猜了半天最后还是某位大佬告诉我这个账号密码都是guest。。。
然后就开始尝试PHPMyadmin的本地文件包含漏洞,希望能够找到flag文件。
首先要知道在URL编码中%3f是用于分割实际URL和参数的。
先通过/etc/passwd来判断根目录的位置。这里最终得到的url是:
http://ctfgame.acdxvfsvd.net:20006/index.php?target=db_sql.php%3f/…/…/…/…/etc/passwd
这时就大概确定了url的位置了。然后我们知道在PHPMyadmin中有一个文件叫info.php,里面存储了PHP的基本信息。
我们可以看到有一栏叫做“session_save_path”,这一项时专门用来保存session的路径的。而我们这道题就是通过本地文件包含session来读取sql执行语句中插入php代码,让本地文件包含的时候执行php语句。
做到这一步建议各位清空一下session。然后方便我们进行下一步实验。
值得注意的是,session日志的保存路径是/tmp/sess_你的sessionid。
这里的session取得值就是你在浏览器中cookie的phpmyadmin的值。(即$_COOKIE[‘phpmyadmin’])
这是我的cookie。phpMyAdmin=p7q2o61h9pmpdj94tt4g7jap5if7lsh6;
那么我即将生成的文件的位置就是/tmp/p7q2o61h9pmpdj94tt4g7jap5if7lsh6
现在我们访问url:
http://ctfgame.acdxvfsvd.net:20006/index.php?target=db_sql.php%3f/…/…/…/…/tmp/sess_p7q2o61h9pmpdj94tt4g7jap5if7lsh6
可以拿到执行结果。
同理,我们可以通过执行系统命令来拿到flag.
观察根目录下文件内容。
很容易发现这个nctfffffffff有问题了。
发现flag路径后,直接就可以通过命令
select “;”
就看到flag了。。
最后的flag值为:nctf{Y0u_4r3_A_G00d_Hacker}