打开题目看到php代码

进行代码审计发现是两个条件绕过
-
传入的password的md5加密的前6 位为c4d038(MD5截断)
- 传入 的e_v.a.l 不能包含flag等字符(黑名单绕过)

这里就需要上脚本暴力破解MD5密码了

得到结果

则password=114514
黑名单绕过
这里需要一点前置知识
CTFshow刷题日记-WEB-命令执行上29-55_"if(!preg_match(\"/flag|system|php|cat|sort|shell|_OceanSec的博客-CSDN博客
在这里参数 e_v.a.l 我们选择下面的这个payload

注意!需要在fl*的前面加上反斜杠,因为我们是打开目录文件,并非直接打开文件

然后我们构造payload

因为在php中参数 e_v.a.l 中“_”会被认为非法字符过滤掉,这个时候我们就得用“[”符号替代
最后构造完整的payload
password=114514& e[v.a.l= echo(`tac%09/fl*`);
得到flag
