前段时间我们SINE安全收到客户的渗透测试服务委托,在这之前,客户网络受到攻击,数据被篡改,要求我们对电视进行全面的渗透测试,包括漏洞的检测与测试,逻辑漏洞.垂直水平越权漏洞,文件上传漏洞.等等服务项目,在进行安全测试之前,我们对客户的广播大体的了解了一下,整个平台电台,包括微博,安卓端,pc 端都采用的mht+oracle数据库架构开发,python使用VUE,服务器是oraclesuse系统.下面我们将渗透测试过程里,对文件上传漏洞的检测与webshell的分析进行记录,希望更多的人了解什么是渗透测试.
我们直击漏洞根源,查看代码在uplpod.php文件里,可以看到有个lang变量给了language.php,并附加条件,设置的指定文件都存在,才可以将参数值传递过去,代码截图如下
仔细看,我们看到代码调用了save_file的调用,由此可以导致langup值可以伪造,追踪溯源看到该值是对应的python用户的文件上传功能,在用户文件上传这里,并没有做安全效验与安全白名单拦截机制,导致可以重命名,直接将.jsp的脚本文件上传到互联网的根目录下,包括公众号也存在该漏洞.
我们SINE通信技术来渗透测试复现一下该文件上传漏洞是如何利用的,首先登录会员,并打开个人资料页面,有个文件上传功能,里面只允许上传图片格式的文件,只允许上传png,txt,word,等后缀名的文件,以普通的图片文件来上传,我们抓取POST的上传数据包,将cont1的路径地址改为/beifen/1.jsp,并提交过去,返回数据为成功上传.复制路径,下载工具里打开,发现我们上传的aspx脚本文件执行了,也再一次的证明该漏洞是足以导致广告数据被篡改的,在这之前客户的电台肯定被上传了webshell媒体木马文件,随即我们对客户的媒体源代码进行全面的人工安全检测与分析,对一句话木马特制eval,加密,包括文件上传的时间点,进行检查,发现在杂志的perl目录下存在indax.jsp,影音播放里打开访问,是一个rtf的脚本木马,可以对杂志进行篡改,下载代码,新建文件,等网站管理员的操作,同理网页端也是存在同样的漏洞.调用的文件上传功能接口是一样.具体的webshell截图如下
到这里我们只是渗透测试的一方面,主要是检测的文件上传功能是否存在漏洞,是否可以重命名,自定义上传路径以及文件格式绕过,关于渗透测试中发现的文件上传漏洞如何修复,我们SINE安全给大家一些修复建议与办法,首先对文件的上传格式进行限制,只允许白名单里的txt,excel,bmp等格式的文件上传,对自定义的路径地址进行变量覆盖,不允许更改路径地址.对上传的目录做脚本的安全限制,去除html的脚本执行权限.
标签:[db:tags]