漏洞概要
关注数(24)
关注此漏洞
漏洞标题:新东方在线学习网站一处任意文件下载问题导致的任意文件上传
提交时间:2014-07-10 14:30
修复时间:2014-08-24 14:32
公开时间:2014-08-24 14:32
漏洞类型:文件上传导致任意代码执行
危害等级:高
自评Rank:15
漏洞状态:厂商已经确认
Tags标签:
无
漏洞详情
披露状态:
2014-07-10: 细节已通知厂商并且等待厂商处理中
2014-07-11: 厂商已经确认,细节仅向厂商公开
2014-07-21: 细节向核心白帽子及相关领域专家公开
2014-07-31: 细节向普通白帽子公开
2014-08-10: 细节向实习白帽子公开
2014-08-24: 细节向公众公开
简要描述:
新东方在线学习网站http://www.koolearn.com/上面的教程不错,最近正在学雅思,就花了几百大洋买了套教程(很坑爹,教程有效期为1个月),无意间发现了一处任意文件下载,然后就开始xxoo。。
详细说明:
其实这个词汇老师讲的真不错,问题出在下载课件处,
下意识的看了看下载链接发现一处任意文件下载
本来想下载web的配置文件的,谁知始终找不到web的路径,因为要下载的文件不再web目录下,然后就各种下载系统里面能猜到的文件,一共下载了
实际上比这还多点,linux下面我们都知道有个文件叫bash_history,如果管理员没有晴空,里面存的都是执行过的命令,
通过执行过的命令然后找到nginx的配置文件,然后找到web路径,然后去下载了web的一些配置文件,这其中的艰辛不言而喻,最终没有什么收获,又转战到系统上面来,想看看有没有常见的密码,类似密码本等等,猜了下常见的服务配置文件,找到了几个密码,nfs的配置文件没什么蛋用,看了一大片的配置文件,也没有什么收获,就在想这太服务器要做文件共享,一般都需要免密码登录。就下载了/root/authoxx ssh证书登录的文件,结果这些服务器基本上ssh的端口都被iptables给干掉了,此时能利用的只有任意文件下载这处,抽了支烟,记了几个单词之后,又转战的web上来,首先我的目的很明确,先搞个webshell,这网站是java写的,除了struts2好使点其他没什么已知的漏洞,现在的思路就是1.下载点源代码看看能不能找点sql注入之类的漏洞(园长师傅可能会说,去找spring的配置文件啊,找到数据库的配置文件啊,链接啊,很遗憾找了是通过jndi链接的数据库,没最后是找到了一个配置文件,不过内网,链接不上)找到管理员的密码进后台getshell,2.找文件上传漏洞(java中这个漏洞很多)其他的对于拿shell来说作用不大,先从简单的开始吧找文件上传的吧,就开始在koolearn上面找头像之类的上传点,无意之间看到了(找了很久尼,貌似是老版的,不太清楚),发现了
这个上传点比较有意思,flash上传,不过每次上传都失败了,通过抓包发现了提交的地址http://my.koolearn.com/bottom/headPhoto.jsp,不过这个文件之类访问显示404,我就很奇怪,此时想都没想直接http://www.koolearn.com/downloadservlet?type=1&download=../../..//usr/share/tomcat6/webapps/ROOT/bottom/headPhoto.jsp
利用任意文件下载把这个文件源代码下载下来了,我就在想www能直接下载到my.koolearn.com下面的文件,是不是改版之后主站也有这个文件,访问了下果然存在,看了下上传的代码
重点在这句String saveFile = FileUploadUtil.getNewName( fileNameWithType );
运气好这个文件可以下载,没有打成jar文件,就直接下载了
getNewName方法就按照时间戳生成了个文件名,文件后缀没有处理,到这里就造成了任意文件上传了。
poc
拿到shell后,查看了下ssh,/root/.ssh/known_hosts文件,大致知道了内网的机器台数,
内容在这就不贴了,内网不擅长,就不浪费时间了,不然废话太多,拿到shell之后下载了几个雅思的培训视频看了下,视频下载已经删除。本人对数据不感兴趣,所以数据库丝毫未动。
shell地址:http://www.koolearn.com/uploadimage/studyplan/1/-1/portraint/2014070920523540.jsp,自行删除吧!
漏洞证明:
其实这个词汇老师讲的真不错,问题出在下载课件处,
下意识的看了看下载链接发现一处任意文件下载
本来想下载web的配置文件的,谁知始终找不到web的路径,因为要下载的文件不再web目录下,然后就各种下载系统里面能猜到的文件,一共下载了
实际上比这还多点,linux下面我们都知道有个文件叫bash_history,如果管理员没有晴空,里面存的都是执行过的命令,
通过执行过的命令然后找到nginx的配置文件,然后找到web路径,然后去下载了web的一些配置文件,这其中的艰辛不言而喻,最终没有什么收获,又转战到系统上面来,想看看有没有常见的密码,类似密码本等等,猜了下常见的服务配置文件,找到了几个密码,nfs的配置文件没什么蛋用,看了一大片的配置文件,也没有什么收获,就在想这太服务器要做文件共享,一般都需要免密码登录。就下载了/root/authoxx ssh证书登录的文件,结果这些服务器基本上ssh的端口都被iptables给干掉了,此时能利用的只有任意文件下载这处,抽了支烟,记了几个单词之后,又转战的web上来,首先我的目的很明确,先搞个webshell,这网站是java写的,除了struts2好使点其他没什么已知的漏洞,现在的思路就是1.下载点源代码看看能不能找点sql注入之类的漏洞(园长师傅可能会说,去找spring的配置文件啊,找到数据库的配置文件啊,链接啊,很遗憾找了是通过jndi链接的数据库,没最后是找到了一个配置文件,不过内网,链接不上)找到管理员的密码进后台getshell,2.找文件上传漏洞(java中这个漏洞很多)其他的对于拿shell来说作用不大,先从简单的开始吧找文件上传的吧,就开始在koolearn上面找头像之类的上传点,无意之间看到了(找了很久尼,貌似是老版的,不太清楚),发现了
这个上传点比较有意思,flash上传,不过每次上传都失败了,通过抓包发现了提交的地址http://my.koolearn.com/bottom/headPhoto.jsp,不过这个文件之类访问显示404,我就很奇怪,此时想都没想直接http://www.koolearn.com/downloadservlet?type=1&download=../../..//usr/share/tomcat6/webapps/ROOT/bottom/headPhoto.jsp
利用任意文件下载把这个文件源代码下载下来了,我就在想www能直接下载到my.koolearn.com下面的文件,是不是改版之后主站也有这个文件,访问了下果然存在,看了下上传的代码
重点在这句String saveFile = FileUploadUtil.getNewName( fileNameWithType );
运气好这个文件可以下载,没有打成jar文件,就直接下载了
getNewName方法就按照时间戳生成了个文件名,文件后缀没有处理,到这里就造成了任意文件上传了。
poc
拿到shell后,查看了下ssh,/root/.ssh/known_hosts文件,大致知道了内网的机器台数,
内容在这就不贴了,内网不擅长,就不浪费时间了,不然废话太多,拿到shell之后下载了几个雅思的培训视频看了下,视频下载已经删除。本人对数据不感兴趣,所以数据库丝毫未动。
shell地址:http://www.koolearn.com/uploadimage/studyplan/1/-1/portraint/2014070920523540.jsp,自行删除吧!
修复方案:
漏洞回应
厂商回应:
危害等级:高
漏洞Rank:10
确认时间:2014-07-11 09:36
厂商回复:
谢谢提供消息,我们会尽快确认并修复。
最新状态:
暂无