sqli-labs-master通关之LESS20-LESS25

SQL注入之sqli-labs-master

LESS-20

第20关
POST交互方式下的cookie字段注入
第20关正确的回显页面如下图所示

sqli-labs-master通关之LESS20-LESS25_第1张图片

从图中可以看出这一关是与cookie有关,正确的页面进入后,只有一个按钮Delete your cookie!

cookie是客户端记录的会话信息,session记录服务器端的会话信息,此时客户端已经记录了与服务器端交互的会话内容,由此可推断出,注入点在cookie字段

1.交互方式POST

2.注入点在cookie字段处,我们在其输入用户名和密码后,在浏览器保存cookie时,burp suite截取包,如下图所示

sqli-labs-master通关之LESS20-LESS25_第2张图片
3.测其闭合方式为’'闭合显示位为3位

4.之后可用联合查询法,爆出其数据库名,表名,及其列名

sqli-labs-master通关之LESS20-LESS25_第3张图片
sqli-labs-master通关之LESS20-LESS25_第4张图片

LESS-21

第21关
POST交互方式下的cookie加密注入

第21关与第20关类似,注入点在cookie,区别在于其cookie为加密字段(BASE-64加密)
sqli-labs-master通关之LESS20-LESS25_第5张图片
注:BASE-64不同应用场景有不同的变种

此时admin加密后为YWRtaW4=,但是此时cookie表示为YWRtaW4%3D,也是因为特殊字符’='的缘故

但是不影响其输出的结果

sqli-labs-master通关之LESS20-LESS25_第6张图片
1.交互方式为POST

2.注入点cookie字段

3.闭合方式,此时测试闭合方式时必须加密,admin ’ and 1=1 # 加密后得到YWRtaW4nKSBhbmQgMT0xICM=,其闭合方式为’'闭合,

4.之后用联合查询法即可,但是查询语句也需BASE-64加密

LESS-22

第22关
POST交互方式下的的cookie加密注入

1.与第21关类似,都是POST交互方式,都是在cookie字段注入

2.与第21关不同的地方在于闭合方式的不同,第22关为""闭合

3.之后再用联合查询法时,查询语句必须BASE-64加密

admin’ and 1=1 # -> YWRtaW4gJyBhbmQgMT0xICM=

admin’ and 1=2 # -> YWRtaW4gJyBhbmQgMT0yICM=

admin’) and 1=1 # -> YWRtaW4nKSBhbmQgMT0xICM=

admin’) and 1=2 # -> YWRtaW4nKSBhbmQgMT0yICM=

admin" and 1=1 # -> YWRtaW4iIGFuZCAxPTEgIw==

admin" and 1=2 # -> YWRtaW4iIGFuZCAxPTIgIw==

sqli-labs-master通关之LESS20-LESS25_第7张图片

LESS-23

第23关
GET交互方式下,过滤注释符

1.通过页面显示,为GET交互模式
sqli-labs-master通关之LESS20-LESS25_第8张图片
2.测试其闭合方式


select * from users where id=’$id当前位置’ limit 0,1

在当前位置构造闭合

select * from users where id=’$id’ –+’ limit 0,1

但是其回显一致,此时也表明,and 之后的语句并没有执行,查看PHP源码,我们发现LESS-23中,过滤了’–‘与’#'注释符

sqli-labs-master通关之LESS20-LESS25_第9张图片

那么此时,既然注释符不能注释掉后面的闭合,我们可以在之后构造出闭合

select * from users where id=’$id’ and 1=1 --+ '

可变形为

select * from users where id=’$id’ and ‘1’='1’
sqli-labs-master通关之LESS20-LESS25_第10张图片

3.测试显示位

我们在构造闭合后测试显示位,之后就可以使用联合查询法查询其数据库名,表名,以及列名、数据等。
sqli-labs-master通关之LESS20-LESS25_第11张图片

LESS-24

第24关
构造特殊用户名

1.交互方式为POST,其登录页面如下

sqli-labs-master通关之LESS20-LESS25_第12张图片

在web登录页面,我们可以发现有forgot your password?与New user click here?两个选项

(1).forgot your password按钮,点击后,弹到另一个页面,这个页面提示,“当忘记密码时就去攻击它

sqli-labs-master通关之LESS20-LESS25_第13张图片

(2).New user click here按钮创建新用户,弹窗到创建用户页面

sqli-labs-master通关之LESS20-LESS25_第14张图片

分析:

在一般情况下,我们不会知道其用户名和密码,此时我们不妨新创建一个用户先进入该系统,创建用户username:sql password:123
sqli-labs-master通关之LESS20-LESS25_第15张图片
登录进入该系统后,提示需要重新修改密码,我们可以猜测到数据库SQL语句为:

UPDATE set ‘$new password’ where username=‘username’ and password='password’
sqli-labs-master通关之LESS20-LESS25_第16张图片
我们在此可以创建一个名为sql’ #的用户,此时可以注释掉密码部分,由于用户名中的’#被后台识别,构造了闭合同时注释了username后面的部分,此时修改的就为sql用户的密码,而非sql’ #用户的密码。

UPDATE set ‘$new password’ where username=‘username’ '# and password='password’

同理当我们知道管理员用户名时,可以通过此方法来修改管理员密码,进入系统

sqli-labs-master通关之LESS20-LESS25_第17张图片

LESS-25

第25关
GET交互方式下的,双写注入

1.通过WEB页面的回显,我们可以判断出交互方式为GET,如下图所示
sqli-labs-master通关之LESS20-LESS25_第18张图片
页面回显中说明了,SQL语句中or和and两个连接词被过滤掉

过滤连接词,我们一般使用双写的方法

比如:ananddoorr这样在过滤之后剩下的刚好为连接词

2.测试闭合方式

用双写的方式来绕过过滤

/?id=1’ anandd 1=1 --+

/?id=1’ anandd 1=2 --+

测出闭合方式为单引号闭合

3.之后的查询用联合查询法就可以爆出库名,表名,列名以及数据,测试其列名时会用到连接词and,可以使用双写来绕过过滤。

你可能感兴趣的:(web安全-SQL注入)