内容简介:SQL注入漏洞,是攻击者对数据库进行攻击的常用手段之一,其本质是攻击者输入的数据可以被当做代码来执行,进而获取到数据库的控制权限。由于危险等级和出现频次常常较高,SQL注入漏洞正无时无刻不受到企业安全人员的重视。先来看以下几组数据。OWASP在2013年和2017年先后发布了两个版本的《Top 10 Web应用程序安全风险报告》,随着Web应用架构和技术的不断发展,应用程序的基础技术和结构发生了重大变化,安全风险也不断更迭,新的安全风险涌现,逐渐取代旧的。值得注意的是,
SQL注入漏洞,是攻击者对数据库进行攻击的常用手段之一,其本质是攻击者输入的数据可以被当做代码来执行,进而获取到数据库的控制权限。由于危险等级和出现频次常常较高,SQL注入漏洞正无时无刻不受到企业安全人员的重视。
先来看以下几组数据。
OWASP在2013年和2017年先后发布了两个版本的《Top 10 Web应用程序安全风险报告》,随着Web应用架构和技术的不断发展,应用程序的基础技术和结构发生了重大变化,安全风险也不断更迭,新的安全风险涌现,逐渐取代旧的。值得注意的是, 注入漏洞始终蝉联TOP 1的安全风险事件 。
2019年第一季度,长亭科技监测并发布了季度漏洞观察报告,报告显示,全球范围内约发生12.43亿次Web攻击,日均1.38千万次。 在进行Web攻击时,SQL注入依然是最常被采用的手段 ,且该攻击手法的使用频率是排名第二的跨站脚本攻击的 数十倍 。
图 高频攻击方法分布
依据行业通用评级标准,细分高危、中危与低危漏洞, SQL注入漏洞占比也显著多于大部分漏洞类型。
图 高危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报错信息等多个维度,对语义进行智能化分析、对识别规则进行自动化替换。
- 从参数存在的位置和参数类型上,进行智能化分析和替换
对于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注入的漏洞详情部分截图如下所示:
随着 B/S(浏览器/服务器) 模式的发展和普及,企业应用结构不断优化,逐渐呈现出方便、易扩展、易开发维护和共享性强的特点。然而,与此同时,由于研发人员的水平参差不齐,在Web应用编写时,有很大几率无法全面考虑对用户输入的数据进行合法判断的情况,从而无可避免的为企业资产管理埋下安全隐患。
长亭洞鉴(X-Ray)在对SQL注入漏洞进行检测时, 加入了无害的Payload验证、绕 WAF识别机制以及智能的语义分析算法,结合企业业务场景,对企业资产进行全面、精细化的安全性检查,为客户解除企业资产是否存在SQL注入漏洞的后顾之忧 ,帮助企业全面提高资产管理的效果和效率,从而为提升企业市场竞争能力、提升企业经济效益提供了有力支撑。
以上所述就是小编给大家介绍的《智能化扫描场景分析—精细化扫描SQL注入漏洞》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 推荐系统与精细化运营
- 泛终端的精细化智能防御体系建设
- 电商活动复盘:如何高效实现数据精细化运营
- 环境巨变 ,医用耗材如何精细化管理变革?
- 漏洞扫描“全覆盖”法则 | 被动扫描如何在资产发现中发挥作用?
- 开源扫描仪的工具箱:安全行业从业人员自研开源扫描器合集
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
学习JavaScript数据结构与算法(第2版)
[巴西] Loiane Groner / 邓 钢、孙晓博、吴 双、陈 迪、袁 源 / 人民邮电出版社 / 2017-9 / 49.00元
本书首先介绍了JavaScript 语言的基础知识以及ES6 和ES7 中引入的新功能,接下来讨论了数组、栈、队列、链表、集合、字典、散列表、树、图等数据结构,之后探讨了各种排序和搜索算法,包括冒泡排序、选择排序、插入排序、归并排序、快速排序、堆排序、计数排序、桶排序、基数排序、顺序搜索、二分搜索,然后介绍了动态规划和贪心算法等常用的高级算法以及函数式编程,最后还介绍了如何计算算法的复杂度。一起来看看 《学习JavaScript数据结构与算法(第2版)》 这本书的介绍吧!