注:经测试需register_globals=on
首先我是官网选择的utf-8版本的然后下载的,(ps:应该是最新的吧...)下载之后搭建好之后要进
我下载的是官网的utf-8版本(ps:应该是最新了吧...)
本地搭建好之后要去后台点击生成首页测试...废话不多说了
bug存在文件/phpcms/modules/content/classes/content_tag.class.php 232行
$siteid = $GLOBALS['siteid'] ? $GLOBALS['siteid'] : 1; $catid = (empty($data['catid']) || $data['catid'] == 0) ? '' : intval($data['catid']); if($catid) { $siteids = getcache('category_content','commons'); if(!$siteids[$catid]) return false; $siteid = $siteids[$catid]; $this->category = getcache('category_content_'.$siteid,'commons'); } if($catid && $this->category[$catid]['child']) { $catids_str = $this->category[$catid]['arrchildid']; $pos = strpos($catids_str,',')+1; $catids_str = substr($catids_str, $pos); $sql = "`catid` IN ($catids_str) AND "; } elseif($catid && !$this->category[$catid]['child']) { $sql = "`catid` = '$catid' AND "; } if($thumb) $sql .= "`thumb` = '1' AND "; if(isset($data['where'])) $sql .= $data['where'].' AND '; if(isset($data['expiration']) && $data['expiration']==1) $sql .= '(`expiration` >= /''.SYS_TIME.'/' OR `expiration` = /'0/' ) AND '; $sql .= "`posid` = '$posid' AND `siteid` = '".$siteid."'";
通过全局接受了siteid变量
所以才要开启全局变量才能注射
本地测试
开启mysql监控,然后burp抓包加入'可以看到'被带入查询了。
然后附上本地证明一张,利用显错读取信息。
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论