渗透测试SQL注入延伸攻击与防御措施

简介: 几年前,SQL注入在世界范围内很流行,但现在,SQL注入仍然是最流行的攻击方法之一,开发人员为此头疼。当然主要是因为注入攻击的灵活性,一个目的,多条语句,多种编写方法。SQL注入可以分为工具和手工两种。由于自动化,工具通常比手动注入效率高得多,但与手动注入相比,它们受到限制,因为它们没有针对性。

几年前,SQL注入在世界范围内很流行,但现在,SQL注入仍然是最流行的攻击方法之一,开发人员为此头疼。当然主要是因为注入攻击的灵活性,一个目的,多条语句,多种编写方法。SQL注入可以分为工具和手工两种。由于自动化,工具通常比手动注入效率高得多,但与手动注入相比,它们受到限制,因为它们没有针对性。

b17eca8065380cd7937913639e68093358828188.jpeg

所有的输入都可能是有害的,有参数的地方都可能存在SQL注入。但是由于浏览器的限制,网站协议中的一些隐藏链接、API调用和参数往往被忽略。那么如何进行全面的SQL注入挖掘呢?在渗透测试中,无论注入工具多么强大,都会有局限性,手动注入可以解决这个弱点。当然,手动注入需要渗透者对数据库的语法有一定的了解。但是由于SQL注入的灵活性和多样性,如果详细讨论的话,恐怕可以写成单本书了。在这里,作者将选择最具代表性的例子进行论证。


1c950a7b02087bf43bc16cb2b2fff32b11dfcf6b.jpeg


注入遇到的一个常见情况是注入得到的加密密文无法求解。为了解决这个问题,这里解释几种可行的方法。(1)使用国外的搜索引擎,往往会有意想不到的收获,最常见的是Google。(2)用Whois查出管理员邮箱,然后发邮件通知管理员更改密码。邮件内容无非是“我们是XXX检测中心,你的网站有风险。请立即更改管理员密码……”。(3)分析Cookie。有时加密的密文会出现在cookies中。这种情况下,cookies中的密文可以直接被管理员的密文替换。(4)在特定的注入环境中,原始密文有时可以被新密文替换。当然这种方法的执行条件比较苛刻,实践中很少遇到。


(5)使用密码检索功能。使用秘密安全问题来检索密码是很常见的。在这种情况下,可以注入秘密安全问题的答案,然后使用密码检索功能成功登陆目标帐户。(6)逻辑缺陷。比如一些登录功能、修改功能、密码检索功能等都是以密文的形式直接在数据包中传输的。这时可以用密文代替,这样就可以登录并更改密码了。


a2cc7cd98d1001e97b21794c8522dfeb54e79703.jpeg


如何防护SQL注入攻击呢?


1.对代码进行过滤非法符号如</?&>之类的,对一些脚本标签scrpt以及img或frame都进行过滤和替换。


2.对一些函数变量直接进行强制定义,比如金额函数这里直接限定只能写入正整数类型的数值,那么其他的参数像姓名的话可以直接限定到只允许写入中文和英文的数值,其他的以此类推。


3.对一些带入数据库查询和更新的语句,一定要看看get或post过来的数据参数是否是直接把参数类型锁定好了的,防止被注入恶意语句导致被攻击。


4.如果对着代码方面的问题不懂得话可以到网站安全公司去寻求帮助,国内如SINESAFE,鹰盾安全,绿盟,启明星辰等等。


相关文章
|
2月前
|
SQL 存储 数据库
Python 的安全性和测试:什么是 SQL 注入攻击?如何防范 SQL 注入?
Python 的安全性和测试:什么是 SQL 注入攻击?如何防范 SQL 注入?
|
2月前
|
SQL 安全 关系型数据库
接上篇文章,在测试宝塔 WAF 的未授权访问漏洞时无意间还发现了一个 SQL 注入漏洞
接上篇文章,在测试宝塔 WAF 的未授权访问漏洞时无意间还发现了一个 SQL 注入漏洞,品相还不错,可执行任意 SQL 语句。 总之,吃了一惊,一个防 SQL 注入的工具居然也有 SQL 注入漏洞。 请看这段代码
488 2
|
2月前
|
SQL 安全 网络安全
确保你的数据库安全:如何防止SQL注入攻击
确保你的数据库安全:如何防止SQL注入攻击
|
2月前
|
SQL 存储 Java
如何避免SQL注入攻击?
如何避免SQL注入攻击?
|
1天前
|
SQL 安全 关系型数据库
使用SQLMap进行SQL注入测试
使用SQLMap进行SQL注入测试
|
5天前
|
SQL 安全 Java
java的SQL注入与XSS攻击
java的SQL注入与XSS攻击
21 2
|
5天前
|
SQL 安全 关系型数据库
使用SQLMap进行SQL注入测试
使用SQLMap进行SQL注入测试
|
2月前
|
人工智能 自然语言处理 安全
构建未来:AI驱动的自适应网络安全防御系统提升软件测试效率:自动化与持续集成的实践之路
【5月更文挑战第30天】 在数字化时代,网络安全已成为维护信息完整性、保障用户隐私和企业持续运营的关键。传统的安全防御手段,如防火墙和入侵检测系统,面对日益复杂的网络攻击已显得力不从心。本文提出了一种基于人工智能(AI)技术的自适应网络安全防御系统,该系统能够实时分析网络流量,自动识别潜在威胁,并动态调整防御策略以应对未知攻击。通过深度学习算法和自然语言处理技术的结合,系统不仅能够提高检测速度和准确性,还能自主学习和适应新型攻击模式,从而显著提升网络安全防御的效率和智能化水平。 【5月更文挑战第30天】 在快速迭代的软件开发周期中,传统的手动测试方法已不再适应现代高效交付的要求。本文探讨了如
|
2月前
|
机器学习/深度学习 敏捷开发 测试技术
深入探索软件测试中的持续集成与持续部署(CI/CD)实践利用机器学习提升网络安全防御效能
【5月更文挑战第27天】 在现代软件开发的快节奏环境中,持续集成(Continuous Integration, CI)和持续部署(Continuous Deployment, CD)已成为确保产品质量和加快交付速度的关键策略。本文将深入探讨CI/CD在软件测试中的应用,分析其对提高自动化测试效率、缩短反馈周期以及优化发布流程的重要性。通过实际案例研究,我们揭示了成功实施CI/CD的最佳实践,并讨论了面临的挑战及其解决方案。
|
18天前
|
SQL 安全 Java
Spring Boot中的跨站点脚本攻击(XSS)与SQL注入防护
【6月更文挑战第15天】在现代Web应用程序开发中,安全性是一个至关重要的课题。跨站点脚本攻击(XSS)和SQL注入是最常见的两种攻击类型,它们可以严重威胁到应用程序的安全。
80 0