当前位置: 首页 > news >正文

小迪web自动笔记50

文件包含:

 

 如果想要调用数据库查询,直接用include,这个文件中的代码就会被调用。

无论你是什么格式,都会被当成脚本执行。

有本地包含与远程包含,但是远程包含限制很多,比如直接给你开关限制或者给你过滤关键字。

 可以直接执行其他网站的的文件(但是不能包含自己电脑上的文件,所以叫做远程包含。

本地文件

你只能执行本地有的功能,

无文件利用:只能用本地里面的功能。

有文件利用:可以上传一个后门。

 1,伪协议

 

第1个要绝对路径,第2个用相对路径读取。

可以进行跳级操作。

 

 直接读d盘。

*这个伪协议相对路径的机制。

在文件系统和Web应用程序中,绝对路径和相对路径的产生是为了管理和定位文件资源。即使有两个内容一模一样的文件,它们也可能存储在不同的位置,路径就是用来唯一标识这些文件的方法。下面我会详细解释为什么需要绝对路径和相对路径,以及它们在文件包含漏洞中的重要性。

 

1. 绝对路径和相对路径的基本概念

 

· 绝对路径:从文件系统的根目录(如Linux的/或Windows的C:\)开始,指定文件的完整路径。它唯一确定一个文件,无论当前工作目录是什么。

  · 示例:/var/www/html/index.php(Linux)或C:\xampp\htdocs\index.php(Windows)。

· 相对路径:从当前工作目录开始,指定文件的相对位置。它依赖于当前上下文,因此可能指向不同的文件,如果工作目录改变。

  · 示例:如果当前目录是/var/www/html,那么./config.php指的是/var/www/html/config.php;而../uploads/file.txt则指向/var/www/uploads/file.txt。

 

2. 为什么需要绝对路径和相对路径?

 

· 绝对路径提供了文件的精确位置,确保无论当前目录如何,都能找到正确的文件。这在系统级操作或需要明确指定文件时非常有用。

· 相对路径提供了灵活性,使代码或命令更容易移植。例如,如果一个Web应用程序从开发环境(如/home/dev/project/)迁移到生产环境(如/var/www/),使用相对路径可以避免修改所有文件引用。

 

3. 如果有两个一模一样的文件,路径如何区分?

 

即使两个文件内容完全相同,如果它们存储在不同的目录下,它们就是不同的文件实例。路径是区分它们的唯一标识符。例如:

 

· 文件A位于:/var/www/uploads/log.txt

· 文件B位于:/tmp/log.txt

· 虽然内容相同,但通过绝对路径/var/www/uploads/log.txt和/tmp/log.txt,系统可以明确区分它们。

 

在文件包含漏洞中,攻击者可以利用路径来包含特定文件:

 

· 如果应用程序使用相对路径包含文件,攻击者可能通过路径遍历(如../../etc/passwd)访问敏感文件。

· 如果应用程序使用绝对路径,攻击者可能直接指定系统文件路径(如/etc/passwd)来读取数据。

 

4. 在文件包含漏洞中的实际影响

 

在远程文件包含(RFI)或本地文件包含(LFI)漏洞中,路径的选择至关重要:

 

· 绝对路径:允许攻击者直接指向系统关键文件(如/etc/passwd),但可能被应用程序限制或过滤。

· 相对路径:攻击者常使用路径遍历技术(如../)来“跳出”当前目录,访问其他目录下的文件。例如,如果应用程序包含include($_GET['file']),且当前目录是/var/www/html,那么file=../../etc/passwd可能成功包含系统文件。

 

如果有两个一模一样的文件(比如一个正常文件和一个恶意文件),攻击者可以通过指定不同的路径来选择包含哪一个:

 

· 例如,如果应用程序有上传功能,攻击者上传一个恶意文件到/var/www/uploads/shell.php,然后通过LFI包含它:file=uploads/shell.php。

· 同时,系统可能有一个正常文件/usr/lib/legit.php,但通过路径,攻击者可以避免包含它。

 

5. 为什么会产生路径问题?

 

路径问题的根源在于应用程序如何处理用户输入的文件路径。如果应用程序未正确验证或 sanitize 用户输入,攻击者可以操纵路径来包含未授权的文件。常见问题包括:

 

· 缺乏输入验证:允许用户输入绝对路径或包含../的相对路径。

· 错误的路径拼接:将用户输入直接与基础路径拼接, without checking for path traversal.

· 服务器配置不当:如allow_url_include开启,允许远程包含。

 

总结

 

绝对路径和相对路径是文件系统的基本组织方式,用于唯一标识文件。在文件包含漏洞中,路径是攻击者的关键工具,用于访问敏感文件或执行恶意代码。即使有两个一模一样的文件,路径也能确保它们被正确区分。因此,在开发Web应用程序时,必须严格验证用户输入的路径,避免使用用户输入直接包含文件,或使用白名单机制限制可包含的文件。

*是以存在文件包含的目录为起点

 

文件写入:上面有有两种方式。

代码执行:上面也有。

例子

 先观察特征,怀疑是文件包含,用file协议构造一下包含一下网站里的php执行,结果真的是。

 这道题没有上传点(不能自己构造PHP代码上传),只能通过伪协议读取文件。

 这张截图里的 Post data 指的是 HTTP POST 请求的请求体数据,和 URL 中的 GET 参数(直接在地址栏里写  ?key=value )是两种不同的请求数据提交方式。

 

 

 

1. Post data 是什么?

 

- HTTP 请求分为两种常见的提交数据方式:

- GET:参数直接放在 URL 里(如  ?file=xxx ),会显示在浏览器地址栏。

- POST:参数放在请求体(Request Body)里,不会显示在地址栏,更适合传递敏感或大量数据。

- Post data 就是 POST 请求体里的内容。

 

 

 

2. 为什么这里不能直接在 URL 构造?

 

因为截图里用的是  php://input  伪协议,它的作用是 读取 POST 请求体的数据。

 

- 如果直接在 URL 里构造(比如  ?file=xxx ),这是 GET 请求, php://input  是读不到的。

- 必须用 POST 请求,把数据放在请求体里, php://input  才能读取到内容。

 

 

 

3. 结合截图里的场景

 

截图里的 URL 是:

 

plaintext

http://xxx/?file=php://input

 

 

这表示:

 

- PHP 代码里的  include($_GET['file'])  会去包含  php://input 。

-  php://input  会去读取 POST 请求体里的内容(也就是截图中 Post data 里的  <?php system('ls');?> )。

- 这样 PHP 就会执行 POST 数据里的代码(比如  system('ls') )。

 

 

 

4. 总结

 

- Post data 是 POST 请求体里的数据,和 URL 里的 GET 参数是两回事。

- 这里用  php://input  必须配合 POST 请求体,不能直接在 URL 构造,因为  php://input  是专门读取 POST 数据的。

 

Get里面的f ILE,并把这里面的东西包含 ,如果里面的内容有PHP直接给你改成三个问号。

文件写入↑ 

直接写入

 可以访问日志(日志包含)

绝对路径执行↓

 然后把代码写入再执行日志。

先构造一个读取目录的代码,然后读到文件之后再打开文件。

改包USER AGENT

 

seSSion包含

这玩意儿是会话会产生在服务器上,一般保存在Tmp目录下。

 

 

 

工具↑ 

固定会话文件的产生。

在它清空之前马上创建一个新的文件。

 Session在包含的那一刹那就会清空所有的东西,我让他触发之前的时候赶紧连接访问创建一个新的文件。

不断发包,不断链接,怎么感觉跟之前的那个有点像?就那个逻辑顺序漏洞?

 *SESSION,cookie那个啥开发有点忘了,SESSION好像确实访问了之后创建会话,在另一个文件下保存这个东西(会话允许通过的人的信息,用户登录状态。),然后定期的清理(中小型网站)

有空去看看复习一下前面。

两次编码

主要得看有没有urldecode这个玩意儿,他提前给你解密一次了。

正常浏览器会给你解码一次,你正常两次加密它是解不出东西的,但是有这个东西,它先给你解了一次。

凯撒加密↓

 上面这个是关键字符过滤,不让你搞。

然后的话你在编码的时候就得多加几字符让关键字不见

 最后一关好像是另一种加密万变不离其本不搞。直接禁你的加密↓

http://www.dtcms.com/a/439263.html

相关文章:

  • 网站模板交易seo 优化公司
  • 江西那家做网站公司好德州市住房和城乡建设局网站
  • 如何制作网站首页二维码生成短链接
  • GoFrame框架学习笔记
  • 东莞 网站建设淄博网站建设公司哪家好
  • 未备案运行网站2022年最新国际军事新闻
  • 门户网站集群建设域名注册服务商
  • MSF后渗透(提权)
  • 优秀的摄影作品网站企业管理课程视频
  • SNP亮相2025德莱维数字技术行业峰会
  • 中文人名生成器中文姓名姓氏名字称呼日本人名翻译人名英文人名可用于中文分词人名实体识别
  • 【Svelte】加载数据实现响应式的正确方式
  • 出售自己的网站Add-ons wordpress
  • 网络安全相关的专业术语
  • 帝国cms影视网站模板宁波网站制作哪家强
  • (一)算法
  • 23ICPC济南站补题
  • 商务网站建设ppt模板培训网站排名
  • 南阳市宛城区建设局网站设计本质
  • nacos使用指南
  • 中山AI搜索哪家好?GEO优化与传统SEO深度解析
  • MySQL优化----非查询SQL优化
  • 影视网站代理徐州市经济技术开发区建设局网站
  • 基于单片机的三相逆变电源设计
  • Python基础入门例程92-NP92 公式计算器
  • MyCat实现分库分表
  • 宿迁网站建设公司宣传海报制作
  • 中铁中基建设集团网站品牌形象网站源码
  • 中医院网站源码传智黑马培训机构
  • python全栈(基础篇)——day01:环境准备(python解释器安装+pycharm专业版的下载+vscode编辑器+汉化设置)