|
Dedecms算是使用比较广泛的PHP整站系统了,在被使用的同时系统的安全性也被人们关注。在以前dedecms也爆过不少漏洞,官方都很快出了补丁,前几天公布了注射漏洞,其实这个系统也受最近很流行的多字节编码漏洞影响。不过今天说的这个漏洞与多字节编码无关,倒跟URL编解码有关系,
呵呵。仅测试了DedeCms2007(DedeCms V5.1 [sp1])。
目录下的tag.php文件对变量$tag处理不当,导致注入漏洞的形成,话不多说,贴代码:
| 以下是引用片段: if(isset($_SERVER["QUERY_STRING"])){ $tag = trim($_SERVER["QUERY_STRING"]); //得到GET的参数 $tags = explode(’/’,$tag); //以“/”分隔为数组$tags $tag = $tags[1]; //取数组$tags的第二个元素 if(count($tags)>3) $PageNo = intval($tags[2]); }else{ $tag = ""; } $tag = urldecode($tag); //对变量$tag做URL解码处理,%27解码后就成了“’” //如果没有Tag或Tag不合法,显示所有Tag if($tag=="" || $tag!=addslashes($tag) ){ //如果$tag为空或有’、"、\等字符则执行 $dlist = new TagList($tag,’tag.htm’); //创建类TagList的实例,$tag传给其构造函数,此时$tag可能包含“’” } //如果有Tag,显示文档列表 else{ $dlist = new TagList($tag,’taglist.htm’); } 类TagList相关代码:(./include/inc_taglist_view.php) class TagList { .. var $Tag; .. //php5构造函数 function __construct($keyword,$templet) //$keyword=$tag { .. $this->Tag = $keyword; //$this->Tag=$tag .. if($this->Tag!=’’) { $this->TagInfos = $this->dsql->GetOne("Select * From `#@__tag_index` where tagname like ’{$this->Tag}’ "); //查询执行,漏洞产生! } |

如果这样得不到的话,还可利用重新安装漏洞,提交./install/index.php?step=2可以重新安装系统,当然也可以得到物理路径。
因为不能union查询,所以运气差的只有自己Get the hash再破解进后台拿SHELL了。
| 新云CMS Online.asp页面过滤不严 | 02-26 |
| 对网软网上购物系统的漏洞分析 | 01-09 |
| 测试SQL防注入脚本 | 12-21 |
| Google Xss又出跨站新漏洞 | 11-06 |
| 一次简单的html injection导致的 | 11-06 |
| 风讯、科讯漏洞利用 | 11-01 |
| Adobe pdf reader URI利用方式浅 | 10-23 |
| 超星阅览器的最新0DAY | 10-19 |
| 运用SQL Injection做数据库渗透的 | 09-22 |
| sa-blog 0day | 09-22 |
| HTML注入的一些简单想法 | 09-10 |
| 网站登陆接口的攻与防 | 09-04 |