临近春节,某聚合支付平台被攻击篡改,导致客户提现银行卡信息被修改,支付订单被恶意回调,回调API接口的数据也被篡改,用户管理后台被任意登入,商户以及码商的订单被自动确认导致金额损失超过几十万,平台被攻击的彻底没办法了,通过朋友介绍,找到我们SINE安全公司寻求网站安全防护支持,针对客户支付通道并聚合支付网站目前发生被网站攻击,被篡改的问题,我们立即成立了网站安全应急响应小组,分析问题,找到漏洞根源,防止攻击篡改,将客户的损失降到最低。
我们将这次安全处理的解决过程分享出来,也是希望整个支付平台更加的安全。首先对接到客户这面,我们Sinesafe安排了几位从业十年的安全工程师来负责解决此次聚合支付平台被攻击,篡改的安全问题,了解客户支付网站目前发生的症状以及支付存在哪些漏洞,客户说支付平台运营一个月时出现过这些问题,然后在运营的第二个月陆续出现几次被攻击篡改的情况,客户自己的技术根据网站日志分析进攻路线排查加以封堵后,后续两个月支付均未被攻击,就在最近快过年的这几天,支付订单被篡改,很多未支付的订单竟然被篡改为成功支付,并从通道返回成功数据,导致平台损失较大,随即对支付通道进行了暂停,并联系码商停止支付接口。客户还反映支付链接被劫持,跳转到别人那去了,导致很多支付的订单都被支付到攻击者的账户中去了,损失简直不可言语。
很多商户以及集团使用聚合支付平台,那么损失的就是商户与支付平台这两家,商户有些时候对小金额的订单并没有详细的检查,包括支付平台也未对一些小金额的订单仔细的审计,导致攻击者混淆视线模拟正常的支付过程来篡改订单状态达到获取自己利益的目的。支付通道对接,回调下发都是秒级的,支付订单并发太大,几乎人工根本察觉不到资金被盗走,客户从通道对比聚合支付的总账,发现金额不对等,这才意识到网站被黑,被入侵了。
接下来我们开始对客户的网站代码,以及服务器进行全面的人工安全审计,检测网站目前存在的漏洞以及代码后门,客户网站使用的是thinkphp+mysql数据库架构,服务器系统是linux centos使用宝塔面板作为服务器的管理,我们打包压缩了一份完整的聚合支付源代码,包括网站进1个月的访问日志也进行了压缩,下载到我们SINE安全工程师的本地电脑,通过我们工程师的一系列安全检测与日志的溯源追踪,发现了问题。网站存在木马后门也叫webshell,在文件上传目录里发现的,redmin.php的PHP脚本木马,还有coninc.php数据库管理的木马后门,如下图所示:
这个数据库木马后门的作用是可以对数据库的表段进行修改,通过检查日志发现订单支付状态被修改的原因就是通过这个数据库木马后门进行的,对未支付的订单状态进行了数据库的修改,绕过上游通道的回调接口数据返回,直接将状态改为支付成功,并返回到商户那面将充值金额加到了客户网站上,攻击者直接在客户网站上消费并提现,所有的损失都由支付平台承担了。我们SINE安全技术紧接着对支付提交功能代码进行安全审计的时候发现存在SQL注入漏洞,可以UPDATE 恶意代码到数据库中执行,导致可以修改数据库的内容,并生成远程代码下载到网站根目录下,生成webshell文件,TP架构本身也存在着远程代码执行漏洞,导致此次网站被攻击被篡改的根源就在于此,我们立即对该网站漏洞,也算是TP框架漏洞进行了修复,对网站文件目录做了防篡改安全部署,禁止任何PHP文件的生成。
继续安全检测我们发现客户网站的商户以及码商用到的用户登录功能存在任意登入漏洞,程序员在写代码的过程中未对用户的状态进行判断,导致用户后台被随意登入,攻击者可以登录后台去确认未支付的订单,直接将订单设为支付成功并返回到商户网站中去,来实现资金的盗取。我们对客户的后台登录功能进行了修复,对用户的所属权限进行判断,以及数据库密码的校验。至此我们SINE安全技术清除了所有支付平台里存在的木马后门文件,包括网站漏洞都进行了全面的修复,对网站进行全面的加固与防御,如果您的聚合支付,或者是支付通道系统出现被篡改,被攻击的问题,建议找专业的网站安全公司来解决处理,国内SINESAFE,启明星辰,绿盟,深信服都是国内比较专业的,也希望我们这次的安全问题处理过程分享,能让支付平台的网络安全更上一层,平台越安全,我们的支付越安全,资金也就越安全。