Catalog

. 漏洞描述
. 漏洞触发条件
. 漏洞影响范围
. 漏洞代码分析
. 防御方法
. 攻防思考

1. 漏洞描述

该漏洞存在于/member/special.php文件下,由于未对变量进行正确初始化,并在SQL查询中带入这个变量,导致黑客可以通过POST请求注入特殊构造的HTTP请求,通过为初始化变量进行SQL注入攻击

Relevant Link:

http://www.wooyun.org/bugs/wooyun-2015-0104959

2. 漏洞触发条件

. 登录
. 进入show_BBSiframe
. 发布一个专题
. 进入show_BBSiframe

3. 漏洞影响范围

测试版本:V7.

4. 漏洞代码分析

\member\special.php

...
if($type=='myatc'||$type=='all')
{
$detail=explode(",",$rsdb[tids]);
$show='';
if($page<){
$page=;
}
$rows=;
$min=($page-)*$rows;
if($keywords){//搜索时
$SQL=" BINARY subject LIKE '%$keywords%' ";
}elseif($ismy){
$SQL=" authorid='$lfjuid' ";
}else{
$SQL=' 1 ';
} if($fid>){
$SQL.=" AND fid='$fid' ";
}
//$TB_pre未在全局变量中初始化带入查询导致注入
$showpage=getpage("{$TB_pre}threads","WHERE $SQL","",$rows);
//$TB_pre未在全局变量中初始化带入查询导致注入
$query = $db->query("SELECT * FROM {$TB_pre}threads WHERE $SQL ORDER BY tid DESC LIMIT $min,$rows");
if(ereg("^pwbbs",$webdb[passport_type])){
while($rs = $db->fetch_array($query)){
$add="&nbsp;";
if(!in_array($rs[tid],$detail)){
$add="<A HREF='special.php?job=show_BBSiframe&id=$id&type=list_atc&act=add&aid={$rs[tid]}' target='spiframe' onclick=closedo(this)>添加</A>";
}
$show.="<tr align='center' class='trA' onmouseover=\"this.className='trB'\" onmouseout=\"this.className='trA'\">
<td width='5%'>{$rs[tid]}</td>
<td width='84%' align='left'><a href='$webdb[passport_url]/read.php?tid=$rs[tid]' target=_blank>$rs[subject]</a></td>
<td width='11%'>&nbsp;$add</td>
</tr>";
}
}
...

5. 防御方法

\member\special.php

...
//论坛贴子
elseif($job=="show_BBSiframe")
{
//判断系统是否存在dzbbs或pwbbs系统变量,防御未初始化变量注入
if(!ereg("^dzbbs",$webdb[passport_type])&&!ereg("^pwbbs",$webdb[passport_type])){
showerr('你没有整合对应版本的论坛!');
}
$rsdb=$db->get_one("SELECT * FROM {$pre}special WHERE uid='$lfjuid' AND id='$id'");
if(!$rsdb){
showerr("资料不存在",);
}
...
if($type=='myatc'||$type=='all')
{
...
$showpage=getpage("{$TB_pre}threads","WHERE $SQL","",$rows);
$query = $db->query("SELECT * FROM {$TB_pre}threads WHERE $SQL ORDER BY tid DESC LIMIT $min,$rows");
...

6. 攻防思考

Copyright (c) 2014 LittleHann All rights reserved

QIBO CMS SQL Injection Via Variable Uninitialization In \member\special.php的更多相关文章

  1. Dede(织梦) CMS SQL Injection Vulnerability

    测试方法: @Sebug.net   dis本站提供程序(方法)可能带有攻击性,仅供安全研究与教学之用,风险自负! # Dede Cms All Versions Sql Vulnerability ...

  2. dedecms /plus/search.php SQL Injection && Local Variable Overriding

    catalog . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 这个文件有两处注入漏洞 . $typeid变量覆盖导致ChannelTy ...

  3. ecshop /pick_out.php SQL Injection Vul By Local Variable Overriding

    catalog . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 在进行输入变量本地模拟注册的时候,没有进行有效的GPC模拟过滤处理,导出 ...

  4. Cacti /graphs_new.php SQL Injection Vulnerability

    catalogue . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 other SQL injection vulnerability ...

  5. SQL injection

    SQL injection is a code injection technique, used to attack data-driven applications, in which malic ...

  6. ref:Manual SQL injection discovery tips

    ref:https://gerbenjavado.com/manual-sql-injection-discovery-tips/ Manual SQL injection discovery tip ...

  7. 防sql注入之参数绑定 SQL Injection Attacks and Defense

    http://php.net/manual/zh/pdo.prepared-statements.php 预处理语句与存储过程 很多更成熟的数据库都支持预处理语句的概念.什么是预处理语句?可以把它看作 ...

  8. 防sql注入之参数绑定 SQL Injection Attacks and Defense 预处理语句与存储过程

    http://php.net/manual/zh/pdo.prepared-statements.php 预处理语句与存储过程 很多更成熟的数据库都支持预处理语句的概念.什么是预处理语句?可以把它看作 ...

  9. druid sql黑名单 报异常 sql injection violation, part alway true condition not allow

    最近使用druid,发现阿里这个连接池 真的很好用,可以监控到连接池活跃连接数 开辟到多少个连接数 关闭了多少个,对于我在项目中查看错误 问题,很有帮助, 但是最近发现里面 有条sql语句 被拦截了, ...

随机推荐

  1. JAVA CDI 学习(1) - @Inject基本用法

    CDI(Contexts and Dependency Injection 上下文依赖注入),是JAVA官方提供的依赖注入实现,可用于Dynamic Web Module中,先给3篇老外的文章,写得很 ...

  2. opencv8-GPU之相似性计算

    Opencv支持GPU计算,并且包含成一个gpu类用来方便调用,所以不需要去加上什么__global__什么的很方便,不过同时这个类还是有不足的,待opencv小组的更新和完善. 这里先介绍在之前的& ...

  3. DOM 概况

    DOM(文档对象模型)是针对 HTML 和 XML 文档的一个API(应用程序编程接口).DOM 描绘了一个层次化的节点树,允许开发人员添加.移除和修改页面的某一部分. 层次节点 DOM可以将任何 H ...

  4. 优秀开源代码解读之JS与iOS Native Code互调的优雅实现方案

    简介 本篇为大家介绍一个优秀的开源小项目:WebViewJavascriptBridge. 它优雅地实现了在使用UIWebView时JS与ios 的ObjC nativecode之间的互调,支持消息发 ...

  5. j-link或者swd调试

    两种 一.JTAG调试(5针), 二.SWD调试(2针), 在JTAG/SWD模式设置库函数 (在文件stm32f10x_gpio.c中): void GPIO_PinRemapConfig(uint ...

  6. Stem函数绘图

    stem(n,x,'filled');第三个参数是绘图的样式,filled就是填充,将圆圈填充. Stem函数绘图各种不同的绘图函数分别适用于不同的场合,使用“stem”绘制针状图最简单,从附录中提供 ...

  7. 工作框架各种使用整理---使用Cache

    <service verb="get" noun="Products"> <implements service="sang.pro ...

  8. C++成员变量的初始化顺序问题

    问题来源: 由于面试题中,考官出了一道简单的程序输出结果值的题:如下, class A { private: int n1; int n2; public: A():n2(0),n1(n2+2){} ...

  9. WPS显示无法创建对象,请确认对象已在系统注册表中注册

    第一种方法:在系统的开始--所有程序找到WPS--WPS office工具--配置工具--高级--兼容设置,在这里勾选兼容第三方系统和软件. 第二种方法: xp/win7系统:拷贝packager.e ...

  10. Shell脚本_位置参数和预定义参数

    一.位置参数变量   1.输出两个输入参数之和 l1.sh 1 2 3 4 5 6 7 8 9 #!/bin/bash   num1=$1 num2=$2 sum=$((num1+num2))   # ...