dedecms /include/helpers/archive.helper.php SQL Injection Vul
2024-09-24 05:31:22
catalog
. 漏洞描述
. 漏洞触发条件
. 漏洞影响范围
. 漏洞代码分析
. 防御方法
. 攻防思考
1. 漏洞描述
Dedecms会员中心注入漏洞
Relevant Link:
http://www.wooyun.org/bugs/wooyun-2010-048892
2. 漏洞触发条件
. 打开http://127.0.0.1/dedecms5.7/member/soft_add.php
. 添加软件
. 打开BURP抓包
) 将picnum改成typeid2
) 然后参数写5',1,1,1,@`'`),('-1','',user() , '','', '', ''),(,,'
3. 漏洞影响范围
4. 漏洞代码分析
/include/helpers/archive.helper.php
if ( ! function_exists('GetIndexKey'))
{
function GetIndexKey($arcrank, $typeid, $sortrank=, $channelid=, $senddate=, $mid=)
{
//$typeid2来自外部,结合DEDE的本地变量覆盖漏洞即可修改这个变量值
global $dsql,$senddate,$typeid2; if(empty($typeid2)) $typeid2 = ;
if(empty($senddate)) $senddate = time();
if(empty($sortrank)) $sortrank = $senddate; //$typeid2、$senddate未进行有效过滤就带入SQL查询
$iquery = "
INSERT INTO `#@__arctiny` (`arcrank`,`typeid`,`typeid2`,`channel`,`senddate`, `sortrank`, `mid`)
VALUES ('$arcrank','$typeid','$typeid2' , '$channelid','$senddate', '$sortrank', '$mid') "; echo $iquery; $dsql->ExecuteNoneQuery($iquery);
$aid = $dsql->GetLastID();
return $aid;
}
}
/archive.helper.php是一个辅助函数库,是存在漏洞的源头,真正的漏洞攻击向量由调用这个文件的GetIndexKey函数触发
/member/soft_add.php
else if($dopost=='save')
{
$description = '';
include(DEDEMEMBER.'/inc/archives_check.php'); //生成文档ID
$arcID = GetIndexKey($arcrank,$typeid,$sortrank,$channelid,$senddate,$mid);
..
Relevant Link:
http://www.wooyun.org/bugs/wooyun-2010-048892
5. 防御方法
/include/helpers/archive.helper.php
if ( ! function_exists('GetIndexKey'))
{
function GetIndexKey($arcrank, $typeid, $sortrank=, $channelid=, $senddate=, $mid=)
{
//$typeid2来自外部,结合DEDE的本地变量覆盖漏洞即可修改这个变量值
global $dsql,$senddate,$typeid2;
if(empty($typeid2)) $typeid2 = ;
if(empty($senddate)) $senddate = time();
if(empty($sortrank)) $sortrank = $senddate;
/* 过滤 */
$typeid2 = intval($typeid2);
$senddate = intval($senddate);
/* */
$iquery = "
INSERT INTO `#@__arctiny` (`arcrank`,`typeid`,`typeid2`,`channel`,`senddate`, `sortrank`, `mid`)
VALUES ('$arcrank','$typeid','$typeid2' , '$channelid','$senddate', '$sortrank', '$mid') ";
$dsql->ExecuteNoneQuery($iquery);
$aid = $dsql->GetLastID();
return $aid;
}
}
6. 攻防思考
Copyright (c) 2015 LittleHann All rights reserved
最新文章
- Linux top命令排序
- css3新增属性API
- “非常PHP学习网”(www.veryphp.cn)一期上线
- Linux 内核同步机制
- Oracle database启动过程分析
- shrio初体验(2)Realm
- easyui datagrid属性和方法
- Django 项目搭建(ubuntu系统)
- QT中pro文件编写的详细说明
- Shell脚本中实现自动补全功能
- 浏览器和对象的dom属性
- LogisticRegression in MLLib
- 在 JDK 9 中更简洁使用 try-with-resources 语句
- 学习笔记_J2EE_SSM_01_spring+springMVC+Mybatis整合_XML配置示例
- centos安装epel源后,使用报错(Error: Cannot retrieve repository metadata (repomd.xml) for repository: epel. Please verify its path and try again)
- 09python之运算
- 8.Git撤销修改
- burpsuit常用功能
- 第199天:js---扩充内置对象功能总结
- Replace Pioneer 试用推广
热门文章
- react native中的欢迎页(解决首加载白屏)
- Jboss EAP:native management API学习
- ASP.NET 系列:单元测试之SmtpClient
- 项目分享一:在项目中使用 IScroll 所碰到的那些坑
- fdisk分区硬盘并shell脚本自动化
- 记、基于react-router的单页应用
- Android开发自学笔记(Android Studio1.3.1)—3.Android应用结构解析
- 无法将分支 master 发布到远程 origin,因为远程存储库中已存在具有同一名称的分支
- HDU5892~HDU5901 2016网络赛沈阳
- [BZOJ 1997][HNOI2010]Planar(2-SAT)