本文主要是介绍sqllab第二十六关通关笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
知识点:
- 空格替换
- %09 %0a %0b %0c %0d %a0 +(%2b)
- or替换:||
- ||是不需要空格区分的
- and替换:&&
- &&同样不需要空格区分的
- 双写绕过,但是绕过后需要和内容进行空格区分的,要不然不发挥作用;这关显然不能用这种方法
- 错误注入可以实现无空格执行
- 这一关过滤了url解码后的空格,和一些特殊字符,如\ / /* # \\ --
进入界面提示了所有的空格和注释都不能用
尝试使用替换空格的字符+
构造payload:id=1'+oorr+1='1
发现不行,报错了,换成其他的也不行(%0a %09 %0b %0c %0d %a0)
而且注释符号也被过滤了,# --+
想了半天没结果,不用空格的话没办法执行语句;看了别人的wp发现可以用||进行绕过
构造payload:id='||1='1
页面成功得到了相关的信息
好了,既然能够绕过入门规则了,下面就要开始获取数据了
由于联合注入之间需要用到空格,所以这里无法使用联合注入
尝试进行报错注入
构造payload:id=’||exp(710)='1
成功出现了报错信息
好,利用报错注入获取数据库名
构造payload:id='||extractvalue(1,concat(0x7e,database(),0x7e))='1
成功获取了数据库名;好了,收工
10
这篇关于sqllab第二十六关通关笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!