DASCTF×CBCTF:web cat flag
escapeshellarg — 把字符串转码为可以在 shell 命令里使用的参数
功能 :escapeshellarg() 将给字符串增加一个单引号并且能引用或者转码任何已经存在的单引号,这样以确保能够直接将一个字符串传入 shell 函数,shell 函数包含 exec(), system() 执行运算符(反引号)sad
hint有提示 管理员曾访问过flag
随便输⼀个url访问一个不存在的页面
报错返回404 Not Found nginx/1.18.0
可以知道服务器是nginx,百度搜索一下nginx的日志在哪存放
nginx 默认日志类型有两个
1、access.log
http 记录访问日志。
2、error.log
server 操作记录日志
分别查看一下
可以看到flag存放的位置在this_is_final_flag_e2a457126032b42d.php
由于有preg_match过滤了flag字符
构造playload:?cmd=this_is_final_fl%aaag_e2a457126032b42d.php
得到flag