2020春节即未来临,收到新聚合支付平台网站客户的求助电话给咱们Sinesafe,反映支付订单状态被修改由原先未支付修改成已支付,致使商户那边直接发货给此订单会员了,商户和平台的损失较大,不少码商都不敢用此支付平台了,为了防止聚合支付系统继续被攻击,咱们SINE安全大致状况了解后,当即安排从业十年的安全工程师,成立聚合、通道支付平台安全应急响应小组。php
分析并了解支付过程前端
咱们Sinesafe对整个第三方支付平台网站的流程进行了分析以下,平台首先要对接到上游支付通道,而后由上游支付通道返回支付状态回调到平台,而后由平台的状态返回给商户(也就是码商),首先码商注册好平台的商家用户,而后从商家用户后台获取接口对接程序与码商本身的网站进行对接调试,若是商家会员对订单进行了支付,若是支付成功会回从平台获取支付状态,而平台去从上游通道获取状态来回调到自身平台,目前大部分的接口都是一些PDD通道以及我的二维码对接的企业通道,俗称为聚合支付。mysql
支付漏洞安全缘由症状web
1.发如今码商下的会员订单并未成功支付致使在平台这里的支付状态被黑客修改成已支付,从而回调数据给商户说明已经支付了,致使订单是成功的状态,商家不得不发货给会员(也就是上分给会员)从而恶意提现致使商家损失严重。sql
2.发现商户申请提现这里的收款人信息被篡改,致使商户的资金被冒领。不少码商对这一点是很是重视的,几乎都是日结算。并且平台天天放量都是有数量的,几乎都是集团下的在收量,对于资金这一块很是敏感而重视。thinkphp
3.发现有些订单被删除,致使对帐对不起来老是商户结算和上游通道结算的金额不对应,致使盈利少,其实这是由于黑客把订单删除了而商户的成功金额是增长的,但上游通道里的金额是不增长的。shell
网站漏洞安全日志检查分析数据库
了解上述的问题后,知道了具体的问题发生症状以及支付的整个流程,安排Sine安全工程师团队小组快速响应处理找出漏洞问题关键,把客户的损失降到最低,随即登陆了支付平台网站服务器对程序代码作了审计和分析,发现程序用的是TP架构(thinkphp)管理后台和前端都是在一块儿的,对程序代码功能函数作了对比看支付过程当中的函数有无被夸权限调用,发现后台登陆这里被作了手脚能够经过内置的函数去任意登陆不须要任何密码,如图:安全
经过get此函数admin_login_test123能够直接任意登陆后台。发现这只是其中一点,后台登陆后能够设置订单的状态,但黑客的手法不是这样操做的,由于从后台手动改状态的话那么在支付成功的状态这里的数据库表会增长一个data时间戳,而黑客篡改支付的状态是没有这个时间戳的,说明不是经过后台去修改的,是经过直接执行sql语句或直接修改数据库才达到的,知道问题缘由后分析了下程序其余文件看是否有脚本后门,果然发现了phpwebshell后门,其中有好几个后门都是能够直接操做mysql数据库以下:服务器
发现程序里有很多的后门文件以及隐蔽一句话后门木马,经过咱们SINE工程师的渗透测试服务发现商户功能图片上传存在漏洞能够任意上传php格式的后门文件,致使被入侵,发如今订单查询功能中存在SQL注入漏洞能够进行updata更新语句去执行数据库修改。随后咱们当即对这3个网站漏洞进行了修复,清理了木马后门和隐蔽后门。让平台开始运营3天观察看看还有无被篡改,至此没再发生过订单状态被篡改攻击的安全问题。
第三方支付平台网站安全防御建议
对新平台的上线前必需要渗透测试漏洞,对sql注入进行语句严格定义和转换,对上传这里的格式进行白名单控制,对网站支付回调和经过获取状态严格作对比,如对sgin作来回匹配比对,签名效验看是否存在被篡改值若是被篡改直接返回数据报错,若是对程序代码安全问题不熟悉不专业的话建议找专业的网站安全公司来处理解决,国内作的比较不错的如Sinesafe,鹰盾安全,绿盟,启明星辰等等都是比较大的网站安全服务商。