2.10 [ACTF2020 新生赛]Include&BackupFile&Exec&Upload

Inlcude

点进去tips发现是file=flag.php,想到php伪协议读取

1
php://filter/convert.base64-encode/resource=flag.php



base64解码后得到flag


BackupFile

根据题目提示找到备份文件:index.php.bak
开始审计这段代码


发现用了is_numeric函数,但是php版本是7.3,无法使用数组绕过
接着看发现是弱类型比较(==),并且 $str在==后面 ,所以整个逻辑就很清楚了。
首先传个参数key,检测key是否为数字,然后用intval函数取得key的整数部分,在把str变量和key比较,这里逻辑要清楚是str变量和key比较,所以str在比较前转换成数字’123’。
所以直接让key=123即可


Exec

打开网页发现是命令执行(SSRF)

并且没有过滤||等关键字

直接查看根目录下面的文件

看到有个flag文件,cat出来


Upload

首先上传一个txt发现当点击submit时会返回chekfile页面

将这个js代码删除,再上传。通过试了很多上传方法,发现用大小写绕过,点号绕过,空格绕过但是都不解析。上传.htaccess文件被过滤。但是phtml文件没有被过滤,上传这个文件


成功解析
连接小马,得到flag。

#
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×