| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> Pikachu靶场之文件包含漏洞详解 -> 正文阅读 |
|
[网络协议]Pikachu靶场之文件包含漏洞详解 |
Pikachu靶场之文件包含漏洞详解前言本篇文章用于巩固对自己文件包含漏洞的学习总结,其中部分内容借鉴了以下博客。 文件包含漏洞简述1.漏洞描述和SQL注入等攻击方式一样,文件包含漏洞也是一种“注入型漏洞”,其本质就是输入一段用户能够控制的脚本或者代码,并让服务器端执行。 什么叫包含呢?以PHP为例,我们常常把可重复使用的函数写入到单个文件中,在使用该函数时,直接调用此文件,而无需再次编写函数,这一过程就叫做包含。 有时候由于网站功能需求,会让前端用户选择要包含的文件,而开发人员又没有对要包含的文件进行安全考虑,就导致攻击者可以通过修改文件的位置来让后台执行任意文件,从而导致文件包含漏洞。 以PHP为例,常用的文件包含函数有以下四种: include(),require(),include_once(),require_once() 区别如下:
2.漏洞原因include()函数并不在意被包含的文件是什么类型,只要有php代码,都会被解析出来,如果网站有文件包含漏洞,jpg文件就可以被当作php文件进行解析。 3.漏洞危害1.本地文件包含漏洞:仅能够对服务器本地的文件进行包含,由于服务器上的文件并不是攻击者所能够控制的,因此该情况下,攻击着更多的会包含一些 固定的系统配置文件,从而读取系统敏感信息。很多时候本地文件包含漏洞会结合一些特殊的文件上传漏洞,从而形成更大的威力。 4.如何防御1、使用str_replace等方法过滤掉危险字符 2、配置open_basedir,防止目录遍历 3、php版本升级,防止%00截断 4、对上传的文件进行重命名,防止被读取 5、对于动态包含的文件可以设置一个白名单,不读取非白名单的文件 6、做好管理员权限划分,做好文件的权限管理 第一关 File Inclusion(local)进入关卡发现有一个下拉框,可以选NBA球星。
可见其中包含了一个文件file1.php,很可能是文件包含,并且既然是通过URL参数从前端传到后端的,那就是用户可以控制的了,如果再没有严格的过滤,就很可能有文件包含漏洞。 1.尝试读取"隐藏"文件首先,由于观察到上图的filename是file1.php,猜测这里其他文件名可能也是个filex.php(x是数字)的格式。 把5个NBA球星都选一遍,发现文件名确实是file1.php~file5.php。 那有没有可能这套文件里面就有废弃或者隐藏的文件咧? 把burpsuite请出来爆破一下: 把下图这个请求报文send to intruder 爆破位置设置为文件名中的数字,payload设置为Numbers,从6到100,步长为1,点start attack开始爆破
file6.php果然是个包含用户名和密码的隐藏文件 file14.php和file100.php都是一样的报错信息,这里就不贴图了。 2.读取不同文件夹文件由上图可以看出网站根目录是: D:\study\apache-tomcat-8.5.33\xiaopi\phpstudy_pro\WWW\pikachu-master\ 我们在此目录下写入一个shell.txt格式的php代码 结合报错信息中泄露的fi_local.php文件位置,可以算出相对路径为 …/…/…/shell.txt,代入url中组成payload:
php代码被成功解析 3.读取系统文件windows系统肯定有的文件是C:\Windows\win.ini,用这个来尝试有没有文件包含漏洞。 结合报错信息中泄露的fi_local.php文件位置,可以算出相对路径为C:/…/…/…/…/windows/win.ini,代入url中组成payload:
成功读取系统文件 4.结合文件上传getshell在pikachu Unsafe Fileupload 不安全的文件上传(皮卡丘漏洞平台通关系列)的”三、getimagesize“关卡,上传了图片马,该图片马被重命名为7894046247af76131f8422881876.png,其内容包含下图所示的一句话木马。 上传图片马之后网页有回显文件保存位置的相对路径,与本关文件包含的路径对比可得相对路径,完整payload为:
用蚁剑连接:
第二关 File Inclusion(remote)这关的下拉框和local那关还是一样的,随便选一个,观察一下url有什么不同? url中把include()函数的完整参数给出来了。
包含写木马的文件该文件内容如下,其作用是在fi_remote.php文件的同级目录下新建一个文件shell.php,并将一句话木马写入shell.php
payload:
包含文件shell.txt 虽然没有回显 |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 1:54:39- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |