[ciscn2019]web复现(部分)
-
访问
-
随便测试
猜测后端逻辑select * from table where id = $input;
当结果为1时,返回
当结果为0
语法错误
-
尝试bool盲注
- 构造payload
(select 1)/1 - 有waf,直接fuzz
为什么会存在另外一种语法正确,可以返回值,但不是返回1
发现是 ~ ! 和@符号,今后这个trick说不定用的上、最终发现空格可以由 %09 %0a %0b %0c %0d或者()进行bypass
- 构造payload
-
绕的时候,有个忘了替换,一直错,后来一看,发现是空格忘了转换。。
确实可以盲注了,直接写脚本
写脚本的时候,发现一直失败。开始不知道为什么,我就使用代理,转到bp查看
原来是requests库访问时,采用的content-type是url-encode,导致原本的payload中已经进行了url编码字符又编码了一次,而服务器端只解码一次,总而导致目标字符回车,到sql中还是%0a,致使了这次错误。
还有对proxies的使用
python大法好,要想修炼好,必须经常敲
最终也是得到了期望。