天气越来越凉,在对客户网站代码进行渗透测试和漏洞测试的同时,我们的SINE安全渗透技术应该对客户网站的源代码进行全面的安全检测和审计。只有真正了解网站,才能更好的进行渗透测试,发现网站的漏洞,尽最大努力让客户网站的安全防护达到极致再上线。在网站和平台快速发展的后期,可以避免重大漏洞造成的经济损失。
首先,我们分享一下前段时间我们的SINE Security在客户的金融平台上的渗透测试过程,审计代码时发现的问题。首先,我们看到客户网站使用的php语言mysql数据库,前端也使用了VUE JS框架。在进行渗透测试之前,我们应该检查客户网站的源代码是否加密和混淆,然后检查php文件对应的URL地址是否被调用。或者单独的PHP函数页,入口文件和index.php主页的访问页的代码是否一致。接下来,我们需要知道整个金融平台网站的目录中包含哪些功能目录。这次我们发现的是,客户网站具有会员注册、头像上传、银行卡添加、充值、提现、投资记录、意见反馈、个人资料修改等功能。
我们的SINE security正在进行网站代码的安全审计,采用的审计方法是跟踪调试敏感函数和传输值,看代码是否包含恶意代码和潜在漏洞,是否会导致网站漏洞,包括一些逻辑漏洞和纵横越权漏洞。
经过一次一般的代码审计,发现部分PHP文件存在SQL注入漏洞,没有关闭引号的开关,导致将恶意参数值引入前端,然后进入数据库执行,特别是在新闻公告栏,newxinxi.php?Id=18,打开后直接调用数据库中的新闻内容,但是Id的值不限制中文和特殊字符的输入,导致在后端数据库中直接执行。我们的正弦安全技术立即修复了客户网站的漏洞,将ID=的值限制为数字,不允许输入中文和其他特殊字符。在充值和提现功能中,我们发现客户的网站代码没有限制数字的符号,这导致了输入负号充值和提现的可能性。在实际渗透测试中,发现在取款中输入负数可能会导致个人账户中的金额增加。后台没有检查取款的功能,直接执行了取款功能。
在网站上编写远程执行代码也存在漏洞。它会导致网站被上传到webshell,进而导致网站和服务器的权限被取下来。用户数据可能会被篡改和泄露。我们来看看这段代码,如下图:所示。
让我们看看这个变量值是如何写和赋值的。$ page,$ dir=dirname (_ _ file _ _)。/./backup/'此备份是自定义备份目录。Dirname是输出文件名。当我们使用helper定义这个类时,我们会调用代码中的IF语句来判断是否满足条件。如果满足,可以远程插入恶意代码,或者构造恶意代码执行,将恶意文件输出到网站目录,如webshell。这是我们的SINE Security在客户网站渗透测试服务中发现的一些漏洞,以及如何做代码安全审计和共享漏洞测试过程。如果网站在运行过程中受到攻击,数据被篡改,可以找专业的网站安全公司提供渗透测试服务。国内SINESAFE,NSFOCUS,金星星都挺不错的。安全可以防患于未然,发现漏洞,修补漏洞,促使网站在上线前达到终极的安全保护。网站安全了,用户才能安心使用。