[360 春秋杯/429] where is my cat(web), mail(web) writeups
[CTF]
where is my cat
进站未fuzz到敏感信息,Cookie中有个输入点HOST=0
。
后来发现IP地址用了https,查看证书。
讲该域名写入HOST
获得flag。
获取源码
- http://106.75.106.156/web.tar.gz
审计之后发现并没有SQL注入,唯一的可控点在putenv("TZ=$timezone");
这里。
变量$timezone
由getConfig()
从数据库中获取,我们可以利用saveConfig()
将payload输入到数据库中。
saveConfig()
不做判断直接更新数据库:
function saveConfig($config){
global $conn;
foreach ($config as $key => $value) {
$key = addslashes_deep($key);//cdxy-vuln
$strsql="select db_value from config where db_name='$key' limit 1";
$result=mysql_query($strsql,$conn);
$row = mysql_fetch_array($result);
if(empty($row))
{
$strsql="insert into config(db_name,db_value) values('$key','$value')";
$result=mysql_query($strsql,$conn);
}else{
$strsql="update config set db_value='$value' where db_name='$key'";
$result=mysql_query($strsql,$conn);
}
}
}
最终用Shellshock Exploit获取flag,构造时注意中间经过了addslashes
,然后随意发送一个邮件即可触发。
(参考 https://www.exploit-db.com/exploits/35146/)