渗透学习小结

思考一

通信流量是否可以被中间人解密,如果不能,为什么?

不可以。通信流量(尤其加密的,如HTTPS)没法无条件直接抓包解密,

  1. 加密流量(TLS/HTTPS):必须让客户端信任中间人(比如装中间人CA证书),且没证书固定等防护,才能解密,否则只能看到乱码;

  2. 非加密流量(HTTP/明文):不用解密(本身是明文),但得先能抓到包(比如在同一局域网),也不是无条件。

思考二

wireshark如何自动解密tls流量?

Wireshark自动解密TLS流量通常可通过设置SSLKEYLOGFILE环境变量配合浏览器来实现,具体操作步骤如下:

  • 配置环境变量与浏览器 :设置名为"SSLKEYLOGFILE"的环境变量,指定其值为用于存放密钥信息的日志文件路径。不同系统设置方法略有差异,Windows系统可在环境变量设置页面添加该变量;Linux或MAC OS X系统可通过命令export SSLKEYLOGFILE=~/path/to/sslkeylog.log设置,如需每次启动系统时都指定该路径,可在.bashrc(Linux)或.MacOSX/environment(MAC OS X)文件中添加相关配置。此外,部分浏览器还需进行额外设置,如Firefox需在地址栏输入"about:config?filter=sslkeylog",将"security.ssl.enable_tls_key_logging"选项设为true并重启浏览器。

  • 配置Wireshark:打开Wireshark,点击"Edit"→"Preferences",在左侧导航栏选择"Protocols"→"TLS",将右侧的"(Pre)-Master-Secret log filename"设置为前面配置的SSLKEYLOGFILE对应的文件路径,点击"OK"保存设置。

  • 捕获并查看解密后的TLS流量:开始抓包,可通过"File"→"Capture"→"Start"操作。然后在浏览器或其他客户端发起HTTPS请求,完成后停止抓包,此时Wireshark会自动使用日志文件中的密钥信息解密TLS流量,可直接查看解密后的HTTP数据包明文内容。 此外,若TLS连接使用RSA密钥交换,可通过在Wireshark中配置RSA私钥来解密;若为PSK模式,则直接在Wireshark中指定PSK值即可解密。但这两种方式应用场景相对较少,前者不适用于ECDHE等前向保密协议,后者仅适用于特定的使用PSK密钥交换的TLS流量。

思考三

burpsuite作为中间人可以解密,满足什么条件才可以看到抓取的铭文数据?

证书信任 客户端(浏览器 / App / 设备)安装并信任 Burp 的 CA 根证书
网络拦截 Burp 开启 Proxy 监听,客户端将 HTTP/HTTPS 代理指向 Burp 的 IP + 端口
协议兼容 目标无证书固定(Certificate Pinning),TLS 版本 / 加密套件与 Burp 兼容
Burp 配置 启用 "SSL/TLS decryption",必要时配置域名解密规则

PHP伪协议简单介绍

PHP伪协议是PHP内置的"虚拟文件访问协议",无需真实的文件路径,可以直接操作各类资源(文件、网络、内存等等),核心用于文件操作、数据流处理,常用于开发或者渗透(比如文件包含漏洞利用)。

常见核心伪协议及用途:

  1. file://:访问本地文件(默认协议),例:file:///etc/passwd(读Linux系统文件)

  2. http:///https://:访问网络资源(类似浏览器),例:http://xxx.com/test.php(获取远程文件)

  3. php://:核心内置协议,常用2个:

    • php://input:读取POST请求原始数据(无需表单字段)

    • php://filter:过滤/转换文件内容(如base64编码读取敏感文件),例:php://filter/read=convert.base64-encode/resource=config.php

  4. data://:直接传递数据(类似"字符串伪装成文件"),例:data:text/plain;base64,SGVsbG8=(解码为"Hello")

  5. zip:///phar://:读取压缩包内文件(无需解压),例:zip://test.zip#file.txt(读压缩包内file.txt)

PHP 伪协议是 PHP 支持的内置 "虚拟文件访问协议" ,并非真实的网络协议,而是用于便捷访问本地文件、内存数据、网络资源等的特殊语法(如 php:// file:// 等)。若开发者未对用户输入的文件路径 / 协议进行严格过滤,攻击者可利用这些伪协议读取敏感文件、执行恶意代码,引发安全漏洞。

一、核心触发条件

  1. 代码中使用 file_get_contents() fopen() include() require()文件操作 / 代码执行函数
  2. 函数的参数(如文件路径)可由用户控制(例如通过 GET/POST 参数传入);
  3. 未对用户输入的 "协议前缀"(如 php:// data://)或路径进行过滤 / 白名单限制。

二、常用危险伪协议及利用场景

  1. file:// 本地文件读取(最基础)
  • 作用:直接访问本地文件系统(默认协议)

  • 漏洞场景:读取服务器敏感文件(配置、密码、源码等等);

  1. php://input 读取 POST 数据
  • 作用:读取 HTTP 请求的 POST 原始数据;

  • 漏洞场景:当代码允许包含 "任意路径",且 POST 数据未被过滤时,可注入恶意代码;

  1. php://filter 读取源码(base64 编码绕过滤)
  • 作用:对文件内容进行过滤 / 转换(如编码、解密);

  • 漏洞场景:直接读取 PHP 文件会被解析执行,无法看到源码,用 base64 编码可绕开;

  1. data:// 直接执行代码
  • 作用:将传入的数据当作 "文件内容" 处理,支持多种编码;

  • 漏洞场景:开启 allow_url_include=On 时,可直接注入恶意代码;

  1. zip:// 压缩包文件包含
  • 作用:直接读取压缩包内的文件,无需解压;

  • 漏洞场景:绕开 "仅允许访问特定后缀文件" 的限制;

文件包含漏洞简介

包含日志的漏洞,核心是"日志内容被恶意篡改后,通过文件包含功能执行恶意代码",本质是**"日志注入+文件包含"的组合漏洞**,常见场景和原理如下:

  1. 日志注入漏洞 日志(如Web服务器日志、应用操作日志)会记录访问者信息(如IP、User-Agent、请求参数),若未过滤恶意输入,攻击者可故意提交含PHP代码的内容,让代码被写入日志文件。

  2. 文件包含漏洞 若应用存在文件包含功能(如用PHP的include()/require()函数),且能指定包含"日志文件路径",攻击者就能让应用包含被注入恶意代码的日志文件,最终执行代码(如获取服务器权限)。

    PHP的include()/require()函数功能是把指定文件的代码 "嵌入" 到当前脚本中,与当前脚本代码合并执行(被包含文件中的 PHP 代码会被解析执行,纯文本 /HTML 会直接输出)。

相关推荐
会算数的⑨1 小时前
K8S 学习笔记——核心概念与工作机制(二)
笔记·学习·kubernetes
Yupureki2 小时前
《算法竞赛从入门到国奖》算法基础:入门篇-贪心算法(下)
c语言·c++·学习·算法·贪心算法
am心2 小时前
学习笔记-添加购物车
笔记·学习
恃宠而骄的佩奇2 小时前
APP客户端安全评估思路及工具分享
测试工具·安全·网络安全·app客户端安全评估
来两个炸鸡腿2 小时前
【Datawhale组队学习202601】Base-NLP task02 预训练语言模型
学习·语言模型·自然语言处理
junziruruo2 小时前
损失函数(以FMTrack频率感知交互与多专家模型的损失为例)
图像处理·深度学习·学习·计算机视觉
li星野2 小时前
OpenCV4X学习-图像边缘检测、图像分割
深度学习·学习·计算机视觉
speop2 小时前
vibe-vibe |基础版
学习
知识分享小能手2 小时前
Oracle 19c入门学习教程,从入门到精通,SQL语言基础详解:语法、使用方法与综合案例(5)
sql·学习·oracle