wp
web:
1.rce
可以发现这个变量名有下划线也有点。
$code=$_POST['e_v.a.l'];
这时候如果直接按这个变量名来传参,php 是无法接收到这个值的,具体原因是 php 会自动把一些不合法的字符转化为下划线(注:php8以下),比如这个点就会被转换为下划线,另外这种转换只会发生一次。故直接传相当于传的变量名为 e_v_a.l 。具体转换可以参考下图:
看到了 flag 在根目录下。但是黑名单过滤了 flag 关键字,我们没法直接读取,于是可以使用参数逃逸绕过限制:
POST:password=114514&e[v.a.l=var_dump(file_get_contents($_POST['a']));&a=/flag
Misc:
1.shark 过滤流量
.http && http.response.code == 200