漏洞代码地址:http://i006.blog.163.com/blog/static/20596514720136511728614/

  前段时间看py的时候 ,去这位朋友的博客, 今天去博客的时候看有什么资料更新的时候,看他发了一个获取IP的。  因为我自己就是搞web安全的, 看到过很多getip的漏洞, 并且代码都是网上抄的。果不其然,我去看的时候就发现了这个代码也存在类似的漏洞。

 

<?php
/**
 * 获取用户真实 IP
 */
function getIP()
{
    static $realip;
    if (isset($_SERVER)){
        if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])){
            $realip = $_SERVER["HTTP_X_FORWARDED_FOR"];
        } else if (isset($_SERVER["HTTP_CLIENT_IP"])) {
            $realip = $_SERVER["HTTP_CLIENT_IP"];
        } else {
            $realip = $_SERVER["REMOTE_ADDR"];
        }
    } else {
        if (getenv("HTTP_X_FORWARDED_FOR")){
            $realip = getenv("HTTP_X_FORWARDED_FOR");
        } else if (getenv("HTTP_CLIENT_IP")) {
            $realip = getenv("HTTP_CLIENT_IP");
        } else {
            $realip = getenv("REMOTE_ADDR");
        }
    }
                                                                                                                                                                                                                                                                                        
                                                                                                                                                                                                                                                                                        
    return $realip;
}

天下代码一大抄。。。HTTP_X_FORWARDED_FOR  HTTP_CLIENT_IP可以伪造, 要是后台不显示进行sql注入,要是后台显示进行sql注入跟xss都可以。

为什么文章标题是献给高傲的程序员呢。 因为程序员都是高傲的, 他写的程序出了bug,别人问程序员的时候,程序员心里立马肯定想, 操, 这×××会用我的程序么? 还说我的程序有bug。第二次问程序的时候,程序员心里才会想,是不是真是我自己的问题, 才会去看他的程序。很多人程序员都是这样,各位看管别喷,谢谢。