SQL注入由简入深

SQL注入由简入深

1、什么是sql注入?

image-20250812144814964

2、什么是注入点?

注入点就是可以实行注入的地方,通常是一个访问数据库的连接点

如sqllab第一关的注入点就是id

image-20250812145121589

3、如何判断是字符型注入还是数字型注入?

数字型注入的参数为数字,但参数为数字的不一定是数字型注入

使用and 1=1和and 1=2来判断

比如Less-1 ?id=1 and 1=1,这条语句需要满足and前后两个条件,1=1可以满足,所有正常回显,但是and 1=2则无法正常显示。这关能识别这条语句,说明是数字型的注入。如果是字符型,那这条语句会被当做字符串,所有不管是1=1还是1=2,结果都一样

image-20250812145918383

4、如何判断闭合方式?

需要多积累经验

image-20250812150247904

闭合符中间是完整的语句,然后用注释符将后面多余的语句注释掉

image-20250812150445067

5、联合查询注入

?id=1 union select database() --+

union函数将前后两条语句输出在同一行,但前后语句的输出的列数必须相同

可以使用order by 或group by 判断列数

group_concat()函数作用

image-20250812154157096

image-20250812154404469

6、报错注入

image-20250813151550835

当输入正确数据时返回的都是相同的信息,当输入错误信息时,返回报错提示,根据这个特点,构造paylaod使我们需要获取的数据显示在报错回显中

concat()函数作用是拼接:比如concat(1,2)的结果就是12

报错注入主要函数extractvalue()、updatexml()、floor()

extractvalue(1,2)函数的报错注入(只能回显32个字符)

0x7e是符号~,这个符号会产生报错回显

image-20250813154451747

因为extractvalue函数只能回显32个字符,需要用到substring函数控制输出,例如substring(123456,1,3)就表示从第一个开始,选取3个也就是123

image-20250813160210187

updataxml(1,2,3)函数的报错注入(也是回显32位)

image-20250813161814358

floor函数的报错注入

image-20250814145652291

rand()函数和floor()函数作用

image-20250814145742120

concat_ws()函数作用

image-20250814145837090

as和group by

image-20250814150016138

报错原因,想一直报错可以填入零rand(0),如果填入1,rand(1)则不报错

image-20250814152043844

最终语句

image-20250814152902659

7、布尔盲注

当页面无回显也无报错的时候,但能通过页面不同的反映,判断出true或false的状态时

image-20250815152932840

关键函数

ascii():可以把字母转换为对应对应ascii值

image-20250815155342165

实现

image-20250815155423335

8、时间盲注

只有一种页面,但能通过页面响应时间判断是true还是false

image-20250815155530621

关键函数

image-20250815155714337

image-20250815160018270

闭合判断

哪一条能成功sleep2秒,说明哪个是闭合符

image-20250815160356363

实现

image-20250815160243523

image-20250815160310009

9、sql注入文件上传

image-20250817133732677

主要看secure_file_priv的值,没填说明有读写的权利,有路径说明在该路径有读写的权利,值为null说明没有写的权利

知道mysql在任意文件夹都有读写的权利,就可以写入一句话木马

image-20250817133747700

利用outfile

image-20250817134113400

10、DNSlog注入(属于盲注,但效率更高)

image-20250817143243026

image-20250817143304975

手动实现

image-20250817143401553

自动实现

使用http://ceye.io

搭配下列工具使用

image-20250817145839591

使用前需要对工具进行配置

在工具里配置http://ceye.io网站的这两个信息(网站需要登录)

然后按照上面方法进行注入

image-20250817150237078

11、post注入

union注入

image-20250818150341511

image-20250818150409920

报错注入

和get方式的语句一样,只是提交地方不一样

image-20250818150628159

image-20250818151513366

12、http中

user-agent注入

image-20250819140617205

image-20250819140632588

refer注入

image-20250819141431365

image-20250819141737452

cookie注入(临时身份证)

image-20250819143012720

13、过滤注释符绕过

image-20250820135038452

image-20250820134959631

14、过滤and和or绕过

image-20250820135410577

image-20250820140318903

15、空格过滤绕过

image-20250820141009193

或者不用空格

image-20250820141144925

16、逗号过滤

image-20250820142504123

17、宽字节注入绕过

addslashes()函数作用

image-20250821131627666

绕过前提

image-20250821132351723

绕过原理

image-20250821132435038

18、防火墙绕过手法

image-20250821134047327

image-20250821133959710

image-20250821134118055
注意:本文通过b站视频学习整理所得,视频作者为橙子科技工作室

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值