ctrl+u查看源代码,发现前端有js过滤
<script>function myFunction(){var x=document.getElementById("number").value;var a=document.getElementById("word").value;var b=a.replace(/[\ |\~|\`|\!|\@|\#|\$|\%|\^|\&|\*|\(|\)|\-|\_|\+|\=|\||\\|\[|\]|\{|\}|\;|\:|\"|\'|\,|\<|\.|\>|\/|\?|\·|\!|\(|\)|\¥|\——|\……|\【|\】|\、|\;|\:|\‘|\“|\”|\’|\,|\。|\、|\《|\》|\?|\ ]/g,"");if(a.length!=b.length){alert("请输入正确字符。");document.getElementById("number").value = '';document.getElementById("word").value = '';}else if(isNaN(x)){alert("请输入数字。");document.getElementById("number").value = '';}}</script>
禁用js,尝试命令执行和sql注入,payload为
1'union all select 1,database(),3#
执行结果如下:可以看到数据库名称,简单的联合注入,获取库、表、列、数据内容,都是固定的脚本。不一一罗列了。
最终得到:flag{fabbf4abe040f2fdac8234099facdccb}
当然也可以用sqlmap爆破,不用考虑前端过滤的因素。