Hackit2017-V1rus3pidem1c-writeup
sql注入
php伪协议:php://filter,zip://,phar://
Task
|
|
先看看基本的功能,你可以选择对应的国家,然后上传你的virus,但题目没有返回上传后的保存的文件路径信息。
Solution
sql注入
点一下send,会发现url变为:
对于get参数,首先想的一般是sql注入;
接下去用下面的脚本注出数据:
得到数据库WHATAREYOUDOINGHERE中countries表中的数据:
读取源码
接下来看看还能做啥。初步尝试发现应该是只有1列
|
|
尝试使用php伪协议:
base64解码一下,其中有段code:
include哪一个页面是根据从数据库中取出的脚本的路径决定的。根据我们前面利用脚本注出来的结果,我们看看country/ge.php中的源码:
从country/ge.php源码中,我们知道了文件上传后保存在uploads文件夹下,文件名也没有改变。
getflag
姿势一
直接上传php文件再去访问uploads下的文件是无法解析的。
可以利用zip协议或者phar协议来进行文件包含。
chybeta.php:
打包成chybeta.zip,上传后访问:
或者访问:
接下去我们利用php伪协议读取iulersiueruigfuihseruhgi.php的内容:
解码后得到flag:
姿势二
chybeta.php:
上传后可以直接访问:
|
|