通过APP渗透测试上传文件功能的安全检查和webshell分析
浏览:165 时间:2023-1-17

前段时间,我们的SINE安全收到了客户的渗透测试服务委托。在此之前,客户端的网站遭到攻击,数据被篡改,这就要求我们对网站进行全面的渗透测试,包括漏洞检测与测试、逻辑漏洞、纵横向未授权漏洞、文件上传漏洞等服务项目。在进行安全测试之前,我们对客户的网站有了一个大致的了解。整个平台网站,包括App和安卓,IOS采用JSp oracle数据库架构开发,前端采用VUE,服务器采用linuxcentos系统。下面,我们将记录渗透测试过程中对文件上传漏洞的检测以及对webshell的分析,希望更多的人能够了解什么是渗透测试。

我们直接找到了漏洞的根源,并查看了uplpod.php文件中的代码。我们可以看到,language.php有一个阿郎变量,附加了条件。只有当指定的文件存在时,才能传递参数值。代码截图如下:

仔细看,可以看到代码调用了save_file的调用模式,会导致langup值的伪造。追根溯源,我们可以看到这个值是对应的WEB前端用户的文件上传功能。在用户文件上传的地方,没有安全验证和安全白名单拦截机甲

我们使用SINE安全技术来渗透和测试如何使用这个文件上传漏洞。首先,登录会员,打开个人数据页面。有一个文件上传功能,只允许上传图片格式的文件,只能上传JpG、pNG、GIF等后缀名称的文件。并将其作为普通图片文件上传。我们抓取pOST的上传数据包。将cont1的路径地址改为/beifen/1.jsp,提交过去,返回数据为上传复制成功,在浏览器中打开,发现我们上传的jsp脚本文件已经执行,再次证明漏洞足以导致网站数据被篡改。在此之前,客户端的网站必须已经上传了带有webshell的网站木马文件。然后,我们对客户网站的源代码进行了全面的人工安全检测和分析,并检查了一句话木马的特殊评估和加密,包括文件上传的时间点。我们发现网站的JS目录中有一个indax.jsp,是一个JSp脚本木马,可以篡改网站,下载代码,新建文件,等待网站管理员的操作。同样,App端也有同样的漏洞。被调用的文件上传功能界面是一样的。特殊的

这里我们只是渗透测试的一个方面,主要检测文件上传功能是否有漏洞,是否可以重命名,自定义上传路径,绕过文件格式。关于如何修复渗透测试中发现的文件上传漏洞,我们SINE安全地给你一些修复建议和方法。一是限制文件的上传格式,只允许白名单中jpg、png、gif等格式的文件上传,对自定义的路径地址进行变量覆盖,不允许更改路径地址。对于上传的目录,