Task
|
|
Solution
查看robots.txt,可以发现有压缩包,下载下来后得到源码。
文件目录如下;
public/app.php:
server/img.php
server/sql.php
先配置远程数据库可以访问。修改/etc/mysql/mysql.conf.d/mysqld.cnf。将里面的bind-address = 127.0.0.1注释掉。
接下来配置mysql。这里我用root身份登陆:
然后创建wmwcms用户,@后面有个%,表示可以远程登陆:
并为它授权:
这样当我们传入的GET参数为dsn=wmwcms;host=yourvps;port=yourport
,后端的sql.php中的pdo会去连接你远程的数据库。之后执行img.php时,从中取出的portrait为我们数据库中的portrait字段,这里为../server/flag
。继续执行则到了echo file_get_contents($portrait);
,也即执行echo file_get_contents("../server/flag");
为什么数据库中要设置成../server/flag
,注意app.php是在public文件的,而且默认的$portrait = "img/user.png"
,也表明是在public文件夹下。而从源码中可知,flag在server文件夹下,所以需要返回上一层文件夹才能读取。
flag: