打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
不常用的注入–利用IP地址进行注入

以前曾经QQ空间发布过关于IP注入攻击的文章,这种注入其实没什么神秘,只是很多时候被忽略了。
        IP伪造有几种途径,一种是通过是修改IP数据包,有兴趣的可以去看看IP数据包的结构,还有一种就是利用修改http头信息来实现IP伪造。涉及到“客户端”IP的通常使用3个环境变量:$_SERVER['HTTP_CLIENT_IP']和$_SERVER['X_FORWARDED_FOR']还有$_SERVER['REMOTE_ADDR']实际上,这3个环境变量都有局限性。前两个是可以随意伪造。只要在发送的http头里设置相应值就可以,任意字符都可以,而第3个环境变量,如果用户使用了匿名代理,那这个变量显示的就是代理IP。
      

 //获取客户端IP
function getIP() {
    $cip = '';
    if($_SERVER('HTTP_CLIENT_IP') && strcasecmp($_SERVER('HTTP_CLIENT_IP'), 'unknown')) {
        $cip = $_SERVER('HTTP_CLIENT_IP');
    } elseif($_SERVER('HTTP_X_FORWARDED_FOR') && strcasecmp($_SERVER('HTTP_X_FORWARDED_FOR'), 'unknown')) {
        $cip = $_SERVER('HTTP_X_FORWARDED_FOR');
    } elseif($_SERVER('REMOTE_ADDR') && strcasecmp($_SERVER('REMOTE_ADDR'), 'unknown')) {
        $cip = $_SERVER('REMOTE_ADDR');
    } elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) {
        $cip = $_SERVER['REMOTE_ADDR'];
    }
    return $cip;
}

   根据前面说的,这段代码 如果我能伪造 HTTP_CLIENT_IP,只要使得它不是 unkown,那就能让$cip毫无保留的接受我们伪造的数据,然后:

1 $db->row_delete("online","userid='$userid' or ip='".getIP()."'");

   这句实际执行的是(假设当前用户id是1了,这是无关紧要的) delete from online where userid=1 or ip='$ip'

   假如我伪造http_client_ip伪造为 ';delete from `user`#,上述sql语句就会变成

   delete from online where userid=1 or ip='';delete from `user` (因为#后的被注释掉了),很危险吧。

  攻击脚本就不发了,很简单,伪造个头就可以了。
 

 

文章作者:荆棘鸟

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
dede下显示别人IP地址的方法 - CMS教程 - 站长网-站长之家 - Powered...
PHP 获取客户端真实IP地址多种方法小结
ECSHOP登录自动退出ession失效无法下单因为动态ip问题导致解决方法
php判断ip黑名单代码
nginx配置详解
PHP 使用CURL库IP欺骗,隐藏真实客户端IP
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服