前段时间挖了一些注入。发现出数据有些困难,具体困难点在于闭合问题。那个注入点,我发给好几个朋友看了,发现大家都没搞定,大家一致认为是过滤的问题,过滤的太死, 后面还是被搞出来。这边讲下心得体会。
搜索查询的思维误区,不是所有条件查询都是
select x from demo where x={*}
select x from demo where x like {*}
常见的就是这两种
特例情况就是:
select x from demo where x in({1},{2},{3})
这种需要使用逗号分隔。
那么payload的构造就是这样:
这里使用布尔注入,通过if控制返回真还是假。
1,if({},{},{}),'x
出数据也是用if,case when也可以。
吸取到的教训:
注入闭合分隔符很重要。要理解背后查询逻辑