游乐游手机版
首页/网络安全/文章详情

phpcms adsclass.php 页面SQL注入漏洞过滤不严

时间:2026-08-01 21:46
2010年5月,PHPcms 2008 SP4(UTF-8版,版本号100510)被曝出存在一处严重的SQL注入漏洞,该漏洞影响广告系统(ads)模块。利用条件并不苛刻,普通注册会员即可触发,危害性较大。本文直接进入技术分析,详细探讨问题根源。 漏洞分析 漏洞代码位于 ads include ads

2010年5月,PHPcms 2008 SP4(UTF-8版,版本号100510)被曝出存在一处严重的SQL注入漏洞,该漏洞影响广告系统(ads)模块。利用条件并不苛刻,普通注册会员即可触发,危害性较大。本文直接进入技术分析,详细探讨问题根源。

漏洞分析

漏洞代码位于 ads/include/ads.class.php 中的 edit() 函数,第110行附近。函数定义如下:

function edit($ads, $adsid, $username = '')
{
    if(!$this->check_form($ads)) return FALSE;
    $ads = $this->check_form($ads);
    if(defined('IN_ADMIN'))
    {
        $ads['fromdate'] = strtotime($ads['fromdate']);
        $ads['todate'] = strtotime($ads['todate']);
    }
    $this->adsid = $adsid;
    $where = ' adsid='.$this->adsid;
    if($username) $where .= " AND username='$username'";
    return $this->db->update($this->table, $ads, $where);
}

而调用该函数的入口在 ads/member.php 第47行:

if(!$c_ads->edit($info, $adsid, $_username)) showmessage($c_ads->msg(), 'goback');

问题根源在于:变量 $adsid 在传入 edit() 函数之前未经过任何过滤或类型转换,直接被拼接到SQL语句的WHERE条件中。攻击者能够控制该参数,构造恶意SQL语句实现注入。尽管在 edit() 内部使用了 $this->adsid 再拼接,但传入时已是原始值,缺乏防护。只要 $adsid 包含单引号等特殊字符,即可破坏SQL语句完整性,导致注入发生。

漏洞利用

利用流程非常直白:

  • 注册一个普通会员账号(无需管理员权限)。
  • 在广告模块中预订一个广告位,随后进入编辑状态。
  • 在修改广告的页面中,篡改 adsid 参数——此即注入点。

提交修改后,服务器会返回错误信息,从错误页面可以直观判断注入是否成功。以下两张截图分别展示了修改 adsid 的位置以及提交后的报错回显:

phpcms SQL注入漏洞 adsclass.php 页面过滤不严

phpcms SQL注入漏洞 adsclass.php 页面过滤不严

根据报错信息,攻击者可以进一步判断注入类型,并利用联合查询等方式提取数据库中的敏感数据,例如管理员账号密码。由于PHPcms拥有大量用户,该漏洞在当年影响范围广泛。

解决方案

官方补丁需等待更新,手动修复非常简单——在 ads/include/ads.class.php 的 edit() 函数开头,对 $adsid 进行整形转换即可:

$this->adsid = intval($adsid);

这样传入的非数字字符会被强制转换为0(或整数部分),从根本上杜绝SQL注入。如果需要保留 $adsid 为字符串的场景(如其他非整型ID),建议改用参数化查询或至少做好转义处理。但对于广告ID这种明显应为整数的字段,intval 是最简单有效的修复方案。

来源:https://www.jb51.net/hack/26762.html
上一篇McAfee8.5i安装使用设置完整图文教程 下一篇电脑蠕虫病毒快速清除与解决操作步骤指南
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
DDoS攻击的三大主要形式:原理、特征与防御重点
网络安全 · 2026-08-31

DDoS攻击的三大主要形式:原理、特征与防御重点

DDoS攻击主要分为基于流量(Volume)、基于应用层(Application)和基于协议(Protocol)三种形式。流量型攻击通过海量数据淹没带宽;应用层攻击利用Web漏洞耗尽服务器资源;协议层攻击则利用TCP握手缺陷导致系统挂起。了解这些原理是制定针对性防御策略的基础。

如何有效预防和缓解DDoS攻击:5大核心策略详解
网络安全 · 2026-08-31

如何有效预防和缓解DDoS攻击:5大核心策略详解

面对DDoS攻击,单纯增加带宽已非长久之计。本文详解5大核心防护策略:优化网络硬件配置、建立DNS冗余机制、部署透明缓解技术、引入负载平衡器及专用Anti-DDoS模块。通过合理组合这些技术手段,可有效抵御SYN泛洪、Slowloris等常见攻击,保障业务连续性与网站可用性。

DDoS防护四大误区:CDN、防火墙与黑名单的局限性解析
网络安全 · 2026-08-31

DDoS防护四大误区:CDN、防火墙与黑名单的局限性解析

许多企业误以为CDN、防火墙或黑名单能完全抵御DDoS攻击。本文深入解析四大常见误区:CDN仅提供部分缓解、静态黑名单易失效、防火墙算力有限且可能成为目标、阈值警报仅具滞后性。了解这些局限性,有助于构建更立体的防御体系,避免在攻击发生时措手不及。

常见DDoS攻击类型详解:原理、特征与防御策略
网络安全 · 2026-08-31

常见DDoS攻击类型详解:原理、特征与防御策略

本文详细解析四种常见DDoS攻击类型:SYN Flood利用TCP三次握手缺陷耗尽资源;UDP Flood通过海量数据包造成带宽拥塞;ICMP Flood利用Ping请求消耗系统算力;应用层Flood针对Web脚本进行高频请求。了解其原理是制定有效防御策略的基础。

如何有效抵御DDOS攻击:4种核心防护方案解析
网络安全 · 2026-08-31

如何有效抵御DDOS攻击:4种核心防护方案解析

面对DDOS攻击,企业需构建多层防护体系。本文详解四大核心策略:利用反向路由器查询进行流量清洗,通过GCDN智能分配节点隐藏源站IP,部署负载均衡硬件分担压力,以及接入高防机房抵御数百G恶意流量。掌握这些技术,可最大程度保障业务连续性。