渗透测试之sql注入延伸手法的攻与防

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

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

图怪兽_2f2b271e17499649e71a2b579ae6fef7_17705.png

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

图怪兽_9966c206583cd8eb3253d571ce7abf3c_52849.png

注入遇到的一个常见情况是注入得到的加密密文无法求解。为了解决这个问题,这里解释几种可行的方法。(1)使用国外的搜索引擎,往往会有意想不到的收获,最常见的是Google。(2)用Whois查出管理员邮箱,然后发邮件通知管理员更改密码。邮件内容无非是“我们是XXX检测中心,你的网站有风险。请立即更改管理员密码……”。(3)分析Cookie。有时加密的密文会出现在cookies中。这种情况下,cookies中的密文可以直接被管理员的密文替换。(4)在特定的注入环境中,原始密文有时可以被新密文替换。当然这种方法的执行条件比较苛刻,实践中很少遇到。(5)使用密码检索功能。使用秘密安全问题来检索密码是很常见的。在这种情况下,可以注入秘密安全问题的答案,然后使用密码检索功能成功登录目标帐户。(6)逻辑缺陷。比如一些登录功能、修改功能、密码检索功能等都是以密文的形式直接在数据包中传输的。这时可以用密文代替,这样就可以登录并更改密码了。

图怪兽_2021be56f4a05a9b5607eaea9a7a69af_71728.png

如何防护SQL注入攻击呢?

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

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

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

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

相关文章
|
5天前
|
SQL 安全 关系型数据库
使用SQLMap进行SQL注入测试
使用SQLMap进行SQL注入测试
|
9天前
|
SQL 安全 Java
java的SQL注入与XSS攻击
java的SQL注入与XSS攻击
24 2
|
11天前
|
SQL 安全 前端开发
SQL注入基础
SQL注入基础
16 2
|
4天前
|
SQL 安全 Oracle
SQLMap工具详解与SQL注入防范
SQLMap工具详解与SQL注入防范
|
5天前
|
SQL 安全 Oracle
SQLMap工具详解与SQL注入防范
SQLMap工具详解与SQL注入防范
|
7天前
|
SQL 存储 关系型数据库
【SQL注入】 数据库基础
SQL注入 MYSQL数据库结构 数据库操作
9 0
|
8天前
|
SQL 数据库
【SQL注入】 sqli-labs靶场 sqlmap注入
SQL注入 sqli-labs靶场 sqlmap注入
23 0
|
9天前
|
SQL 安全 关系型数据库
使用SQLMap进行SQL注入测试
使用SQLMap进行SQL注入测试
|
6天前
|
JSON JavaScript 测试技术
Postman接口测试工具详解
Postman接口测试工具详解
14 1
|
3天前
|
数据采集 测试技术
常见测试测量接口的比较:PXI、PXIe、PCI、VXI、GPIB、USB
常见测试测量接口的比较:PXI、PXIe、PCI、VXI、GPIB、USB