newstarctf

wp

web:

1.rce

可以发现这个变量名有下划线也有点。

$code=$_POST['e_v.a.l'];

这时候如果直接按这个变量名来传参,php 是无法接收到这个值的,具体原因是 php 会自动把一些不合法的字符转化为下划线(注:php8以下),比如这个点就会被转换为下划线,另外这种转换只会发生一次。故直接传相当于传的变量名为 e_v_a.l 。具体转换可以参考下图:

newstarctf_第1张图片

看到了 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

你可能感兴趣的:(其他)