- 1、本文档共29页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
几种通用防注入程序绕过方法
0 ×00 前言
目前主流的 CMS 系统当中都会内置一些防注入的程序,例如 Discuz 、dedeCMS 等,本篇主
要介绍绕过方法。
0 ×01 Discuz x2.0 防注入
防注入原理
这里以 Discuz 最近爆出的一个插件的注入漏洞为例,来详细说明绕过方法。
漏洞本身很简单,存在于 /source/plugin/v63shop/config.inc.php 中的第 29 行 getGoods 函
数中,代码如下所示
01 functiongetGoods($id){
$query= DB::query( ‘select * from
02 ‘.DB::table( ‘v63_goods’). ’ where `id` = ’.$id);
03 $goods= DB::fetch($query);
$goods[endtime2]
04 =date( ‘Y-m- d’,$goods[endtime]);
05 $goods[price2] =$goods[price];
06 if($goods[sort] ==2){
$goods[endtime2]=date( ‘Y-m-d
07 H:i:s ’,$goods[endtime]);
$query= DB::query( “select * from
08 “.DB::table( ‘v63_pm’). ” where gid= ’$goods[id] ‘order by id desc
“);
09 $last= DB::fetch($query);
10 if(is_array($last)){
11 $goods[price] =$last[chujia];
12 $goods[uid] =$last[uid];
$goods[username] =$last[usern
1
3 ame];
1 $goods[pm] =$last;
4
15 if(time()+600$goods[endtime]){
$goods[endtime]
16 =$last[time]+600;
$goods[endtime2]=date( ‘
1
7 Y-m-d H:i:s ’,$last[time]+600);
1 }
8
19 }
20 }
21 return$goods;
22 }
触发漏洞的入口点在 /source/plugin/v63shop/goods.inc.php 中的第 6 行和第 8 行,如图所
示:
下面可以构造如下请求触发漏洞了,如图所示:
不过程序内置了一个 _do_query_safe 函数用来防注入,如图所示
这里跟踪一下 _do_query_safe()
文档评论(0)