天气越来越凉爽,在对客户网站代码进行渗透测试,漏洞测试的同时我们安全渗透技术要对客户的网站源代码进行全方位的安全检测与审计,只有真正的了解网站,才能更好的去渗透测试,发现网站存在的漏洞,尽可能的让客户的网站在上线之前,安全防护做到最极致.在后期的网站,平台快速发展过程中,避免重大的漏洞导致的经济损失.
首先分享一下我们前段时间对客户的金融平台的渗透测试过程,在审计代码的时候发现了问题,首先看到的是客户网站采用的php语言 mysql数据库,前端还使用了VUE JS框架,在进行渗透测试前,我们要检查客户网站的源代码是否加密以及混淆,再一个查看php文件是否对应的URL地址,是调用的,还是单独的PHP功能页面,还有入口文件和index.php首页访问页面的代码是否一致化.接着要了解的是整个金融平台网站的目录,都包含哪些功能目录,这次我们检查到的,客户网站有会员注册功能,头像上传功能,银行卡添加,充值,提现,投资记录,意见与反馈,个人资料修改等等功能.
我们在进行网站代码的安全审计,采用的审计方法是敏感函数以及传输值的追踪与调试的办法去查看代码是否含有恶意代码以及存在的漏洞隐患,是否可导致产生网站漏洞,包括一些逻辑漏洞,垂直,平行越权漏洞的产生.
在大体的代码审计一遍后发现有些PHP文件存在SQL注入漏洞,没有开关闭合引号,导致可以前端传入恶意的参数值,并传入到数据库中进行执行,尤其新闻公告栏目里newxinxi.php?id=18,打开后是直接调用数据库里的新闻内容,但是ID这个值没有限制输入中文以及特殊字符,导致直接执行到后端的数据库当中去了,我们技术随即对客户的网站漏洞进行了修复,限制ID=的值为数字,不允许输入中文等特殊字符.在充值,以及提现功能里,我们发现客户的网站代码并没有对数字的正负号进行限制,导致可以输入负号进行充值,以及提现,在实际的渗透测试中发现提现中输入负数,可以导致个人账户里的金额增加,后台并没有审核提现的功能.而是直接执行了提现功能.
网站还存在远程执行代码写入漏洞.可导致网站被上传webshell,进而导致网站的权限以及服务器的权限被拿下,用户数据被篡改被泄露都是可以发生的.我们来看下这个代码,如下图:
我们来看下这个变量值是如何写,如何赋值的,$page, $dir = dirname(__FILE__).‘/../backup/’这个backup就是自定义的备份目录.dirname 就是输出的文件名,当我们用helper去定义这个类的时候,就会调用代码里的IF语句,判断条件是否满足,如果满足就可以导致远程插入恶意代码,或构造恶意的代码去执行,并输出恶意文件到网站目录中,像webshell都是可以的.以上是我们在对客户网站进行渗透测试服务中发现的一部分漏洞,以及如何做的代码安全审计,漏洞测试过程的分享,,如果网站在运行中出现了被攻击,数据被篡改等攻击问题,可以找专业的网站安全公司来进行渗透测试服务,安全防患于未然,发现漏洞,修复漏洞,促使网站在上线之前安全防护做到极致,网站安全了,用户才能用的安心,也希望更多的人了解渗透测试服务.
,