在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
SEBUG-ID:3885 复制代码 代码如下: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 `cms_tag_index` where tagname like ’{$this->Tag}’ "); //查询执行,漏洞产生! } 以上就是代码的分析,可能说得不太清楚,这样的漏洞因为可以使用“'”,所以如果条件可以的话可以直接into file得SHELL。 利用方面大家自由发挥。为了方面我自己写了一个利用程序: dedeExp.exe 当File_priv为YES并得到了物理路径的时候就可以直接Get the shell了。其中得到物理路径的方法是利用了./include/htmledit/index.php的一个漏洞,我们提交./include/htmledit/index.php?modetype=basic&height[]=toby57就可能得到路径。 如果这样得不到的话,还可利用重新安装漏洞,提交./install/index.php?step=2可以重新安装系统,当然也可以得到物理路径。 因为不能union查询,所以运气差的只有自己Get the hash再破解进后台拿SHELL了。 |
请发表评论