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爆破,不用考虑前端过滤的因素。