error_reporting(0);
function getIp(){
$ip = '';
if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])){
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
}else{
$ip = $_SERVER['REMOTE_ADDR'];
}
$ip_arr = explode(',', $ip);
return $ip_arr[0];
}
$host="localhost";
$user="";
$pass="";
$db="";
$connect = mysql_connect($host, $user, $pass) or die("Unable to connect");
mysql_select_db($db) or die("Unable to select database");
$ip = getIp();
echo 'your ip is :'.$ip;
$sql="insert into client_ip (ip) values ('$ip')";
mysql_query($sql);
题目给了源码,简单分析下知道是读取HTTP头部的X_FORWARDED_FOR作为ip,在将其传给$ip前,用explode()函数以,为分割符分割并取结果数组的第一项。
要进行注入的语句是:
insert into client_ip (ip) values ('$ip')
很明显,这是一道过滤了逗号的xff注入题目,由于返回结果无有效回显,可以进行时间盲注。
后面的就不会了55555
下面是大佬的wp:
我看到网络上有些writeup在猜解flag时直接得知了它在flag表的flag列,也许是一种巧妙的猜测?