【iwebsec靶场文件包含漏洞个人专用结题记录】(记录自己不了解的知识点)

5 篇文章 0 订阅
文章探讨了文件包含漏洞的原因和机制,重点是PHP的文件包含函数,如include()和require()。它解释了如何利用文件包含漏洞执行恶意代码,并提到了session和cookies在身份验证中的作用。此外,还讨论了URL截断问题以及如何解决。最后,文章提到了远程文件包含(RFI)的概念和启用它的配置选项。
摘要由CSDN通过智能技术生成


为什么会有文件包含漏洞?

因为将被包含的文件设置为变量,用来进行动态调用。正是这种灵活性, 从而导致客户端可以调用一个恶意文件,造成文件包含漏洞。文件包含函数的参数没有经过过滤,可以被攻击者控制,包含其他恶意文件,导致了执行恶意的代码。

什么是文件包含漏洞?

PHP的文件包含可以直接执行包含文件的代码,包含的文件格式不受限制(无论是txt、图片文件还是远程URL,全都作为PHP代码执行),只要能正常执行即可。文件包含函数有include()、include_once()、require()、require_once(),它们之间的区别在于include()和include_once()在文件包含时即使遇到错误,下面的代码仍继续会执行;而require()和require_once()则会直接报错退出程序。【摘自《代码审计——企业级Web代码安全架构》】

一:知识大概

1. 伪协议:

php://fiter:convert.base64-encode和convert.base64-decode的使用方法(这两个在CTF web题目中经常出现)
应用方法一般为:
php://filter/read=convert.base64-encode/resource=<数据源>

使用file2=php://input,将执行代码通过在POST data中提交

file2=data://text/plain,hello ctf
或者转换成base64编码
在这里插入图片描述

可以结合一句话木马成功链接网站

2.Session & Cookies

Linux系统下的session文件路径:/var/lib/php/session
session文件名的构造:sess_ + sessionid, sessionid在cookie中可以查看

session : 就是一个文件,文件名是一个ID号,内容就是用户的登录信息
存储在服务端,保存用户名,登录状态等信息

Cookies:session的ID号,浏览器自动存储

由服务器下发给客户端,保存在客户端的一个文件里. 保存的内容主要包括: SessionID
Session & Cookies 流程
当客户端访问服务器时,登录服务器页面,服务器会自动生成一个session文件,文件名是一个id号,内容为用户的登录信息,用户登录成功后服务器会返回一个页面(网页信息)给客户端,同时,也返回了cookie,cookie的值为session的文件名id号,藏在了数据包头里,存在客户端的浏览器里.
当客户端第二次访问网站时,因为客户端浏览器有cookie,所以客户端的浏览器会主动发送cookie到服务器上,证明曾经登录过.这样客户端就不用反复重复登录.

3.截断

问题:get参数中id内容无法完全传递?被截取?

示例:axios.get(http:localhost:300?id=09050#1669867676398#132)

结论:请求连接包含#,后边的参数获取都为空。

解决:1.使用post请求传递 2.编码转译(#=%23)

疑问:为什么会被截取掉?

第三题 session本地文件包含

查询sessionid
在这里插入图片描述
在第一关使用文件包含漏洞成功链接
在这里插入图片描述

第四题 远程文件

远程文件包含(remote file include,RFI)是指包含文件的位置并不在本地服务器,而是通过URL的形式包含到其他服务器上的文件,以及执行文件中的恶意代码

allow_url_fopen = On (允许打开URL文件,预设启用)
allow_url_fopen = Off (禁止打开URL文件)
allow_url_include = Off (禁止引用URL文件,新版增加功能,预设关闭)
allow_url_include = On (允许引用URL文件,新版增加功能)

开启远程文件条件:

allow_url_fopen=On
allow_url_include=On

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值