html sql注入_智能化扫描场景分析—精细化扫描SQL注入漏洞

57a00fe1ab73617b4731b02d2b70b944.png

SQL注入漏洞,是攻击者对数据库进行攻击的常用手段之一,其本质是攻击者输入的数据可以被当做代码来执行,进而获取到数据库的控制权限。由于危险等级和出现频次常常较高,SQL注入漏洞正无时无刻不受到企业安全人员的重视。

先来看以下几组数据。

OWASP在2013年和2017年先后发布了两个版本的《Top 10 Web应用程序安全风险报告》,随着Web应用架构和技术的不断发展,应用程序的基础技术和结构发生了重大变化,安全风险也不断更迭,新的安全风险涌现,逐渐取代旧的。值得注意的是,注入漏洞始终蝉联TOP 1的安全风险事件

294d31b37b7f4a73391b6ec6b008ee50.png

2019年第一季度,长亭科技监测并发布了季度漏洞观察报告,报告显示,全球范围内约发生12.43亿次Web攻击,日均1.38千万次。在进行Web攻击时,SQL注入依然是最常被采用的手段,且该攻击手法的使用频率是排名第二的跨站脚本攻击的数十倍

0da00f52d698ac7fff35881cbae861c0.png
高频攻击方法分布

依据行业通用评级标准,细分高危、中危与低危漏洞, SQL注入漏洞占比也显著多于大部分漏洞类型。

e2452141bf65dc4d38b72a4e9eab2756.png
高危Web漏洞类型分布

由于SQL注入的本质一样,所以它的攻击流程也是大同小异,一般的攻击流程是这样的:

  • 寻找Web系统参数
  • 判断参数是否会对数据库查询造成影响,从而定位注入点
  • 判断注入点在SQL语法中的位置
  • 补全SQL语句,构造Payload
  • 尝试读取数据库中的数据、尝试执行系统命令、尝试读写文件
  • 根据现有漏洞提权,进行下一步攻击

对于攻击者而言,使用SQLMAP之类的工具就可以快速定位SQL注入漏洞,并进行利用,或者使用SQLMAP API进行自动化发现和利用。

而企业安全建设者或白帽子在进行SQL注入漏洞检测时,却不能简单粗暴的参照攻击流程进行检测。企业在实际漏洞检测过程中不得不考虑以下几个因素

  • 企业资产安全性问题。由于SQL注入漏洞检测是直接操作数据库和服务器,操作不当无疑会对企业资产产生不安全风险。比如当某个更新或者删除接口存在SQL注入漏洞时,全站数据很可能会因为传入一个1 or 1=1的Payload而丢失;
  • 绕 WAF检测问题。企业通常会配备WAF来防御SQL注入攻击,对于漏洞扫描器来说,如果不能做到模拟攻击者行为绕过WAF防御,在扫描过程中就会被拦截,也就不能检测到企业资产中可能存在的SQL注入漏洞;
  • 企业场景下SQL注入检测速度慢、准确率低的问题。判定SQL注入漏洞的规则很多,若想保证检测准确率,必须进行足够精细化规则的判断,与此同时,规则精细化必然会影响整体的扫描速度,延长一个SQL注入漏洞的检测时间。如何快速发现从资产中精准发现SQL注入漏洞成了一个难题。

针对以上问题,洞鉴(X-Ray)安全评估系统在对企业资产进行SQL注入漏洞的检测时,从Payload验证、WAF绕过、SQL注入智能识别等方面,结合多年攻防的经验,针对性的做了以下处理:

使用无害Payload 验证保证企业资产安全性

上文提到过,SQL注入漏洞检测过程中,如果使用不当的Payload很有可能会造成内存爆炸、删库等风险操作。

比如针对Payload“where id=1 or 1=1”,

1)执行select操作时,可能会引起内存爆炸;

2)执行update/delete操作时,则会导致整个数据库被更改或者被删除。

洞鉴(X-Ray)在进行检测时会大量使用报错注入的Payload,确保 Payload 能进入SQL查询,但是又不会直接影响数据库内容;在报错注入无效的情况下使用基于时间的盲注,通过侧信道的方式判断 Payload对于请求的影响,坚决不使用会导致全局条件恒真的布尔条件,可以从根本上解决Payload对业务造成的副作用问题。

智能识别绕过一般的WAF 拦截规则提高资产检测的全面性

1、洞鉴(X-Ray)的SQL注入以检测为主,而非进行拖库操作,所以针对一些防御边界的场景,可以弱化攻击特征,从而降低被 WAF拦截的几率;

2、如果在扫描过程中检测到被WAF拦截了,会自动对 Payload 进行变换,尝试去绕过WAF。比如将1 and 1=1替换为 1/**/and/**/1=1等等。

采用多种智能识别算法 提高SQL注入识别的速度和精准度

1、优先使用自启发式扫描,在存在SQL漏洞的情况下可以确保使用最少的请求完成检测,准确率达到 99% 以上;

2、对于时间盲注,加入了魔力超时算法,并进行交叉验证,解决了服务器响应时间抖动产生的误报;

3、对于布尔盲注,加入了高精度字符串、DOM 、JSON相似度对比算法,可自动识别拟态,解决了服务器响应页面随机抖动产生的误报;

4、采用通用Payload,在不需要对数据库进行识别的场景下,自动忽略数据库差异化,直接进行SQL注入漏洞的检测验证。避免了对不同数据库反复进行Payload验证的环节,从而节省扫描时间;

5、根据页面返回的动态数据特征,智能排除干扰因素,然后再进行页面对比。根据HTML、JSON等页面返回的内容,查询全部动态数据,智能排除一些动态的干扰数据,再对不同类型数据进行对比,来判断是否存在SQL注入;

6、基于参数的智能语义分析算法,实现模拟攻击者进行精细化SQL注入探测的目的。从参数位置、参数类型和response报错信息等多个维度,对语义进行智能化分析、对识别规则进行自动化替换。

从参数存在的位置和参数类型上,进行智能化分析和替换

  • 比如:针对Query:/a?id=1 和json: {“id”: 1} 这个Payload,

1)自动识别参数位置:将“1’ or ‘1’=’1”插入参数的位置;

2)分析参数类型:

对于Query类型的参数,“/a?id=1’ or‘1’=’1 ”是合法的;

对于json类型的参数,{“id”: 1’ or‘1’=’1} 错误的;

  • 再比如: “?page=1&sort=date ”,其中sort参数虽然看起来是字符串,但是可能不适用于布尔注入,因为sql可能是order by$sort;
  • 针对response报错信息,智能识别替换注入Payload。在检测到数据的validation存在时,将会对报错信息进行智能的语义识别,然后根据识别的信息变换注入的Payload,尝试去绕过validation。

比如:

1)填写一个参数(“a’ or ‘a’=’1”),进行提交

2)返回报错信息:“data : this field must be an integer”

3)自动替换输入的参数(“1+2-1”),再次进行验证,因为后端的验证可能是有bug的,比如写了个正则表达式d+等。

SQL注入的漏洞详情部分截图如下所示:

b1e91c17033099d33bc72b1d9718942a.png

随着 B/S(浏览器/服务器) 模式的发展和普及,企业应用结构不断优化,逐渐呈现出方便、易扩展、易开发维护和共享性强的特点。然而,与此同时,由于研发人员的水平参差不齐,在Web应用编写时,有很大几率无法全面考虑对用户输入的数据进行合法判断的情况,从而无可避免的为企业资产管理埋下安全隐患。

长亭洞鉴(X-Ray)在对SQL注入漏洞进行检测时,加入了无害的Payload验证、绕 WAF识别机制以及智能的语义分析算法,结合企业业务场景,对企业资产进行全面、精细化的安全性检查,为客户解除企业资产是否存在SQL注入漏洞的后顾之忧,帮助企业全面提高资产管理的效果和效率,从而为提升企业市场竞争能力、提升企业经济效益提供了有力支撑。

长亭科技 - 下一代应用安全领导者​www.chaitin.cn
9fa03ebb69b14aea8ff933ff2f41e603.png

【点击小卡片免费试用洞鉴(X-Ray)小程序】

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值