当前位置:首页 > 技术 > 正文内容

Web安全挑战与漏洞利用分析

访客 技术 2026年5月22日 4

Java Web应用中的JWT绕过与目录遍历漏洞利用

在一次CTF竞赛中,我们遇到了一个基于Java的Web应用。通过注册用户并登录,发现Cookie中存在JWT编码。

尝试将用户名从"Admin"改为"admin"后重新编码,但后台提示未经授权。进一步检查错误信息,发现服务器使用的是Apache Tomcat 9.0.108版本。

根据已知的CVE-2025-55752漏洞,可以通过构造特定请求来读取web.xml文件:

/download?path=%2fWEB-INF%2fweb.xml

获取到的配置文件显示了多个Servlet定义,其中BackUpServlet类暴露了逻辑漏洞。反编译后发现validateAdmin方法存在严重问题:

public static boolean validateUser(HttpServletRequest request, HttpServletResponse response) {
    Cookie[] cookies = request.getCookies();
    if (cookies == null) {
        return true;
    }
    // ...省略其他代码...
}

如果未携带任何Cookie,则直接返回true,从而可以访问/admin路径下的接口。

接下来上传包含JspServlet配置的恶意web.xml文件覆盖原文件,并通过rename接口完成替换:

// 关键代码片段
boolean success = setResourceDir(".");
if (success) {
    uploadFile("malicious_web.xml", MALICIOUS_WEB_CONTENT);
    renameFile("malicious_web.xml", "WEB-INF/web.xml");
}

等待Tomcat重载配置后,部署JSP Webshell执行命令获取Flag。

PHP应用中的序列化绕过与文件读取限制突破

另一个题目提供了简单的登录界面,尝试弱口令和SQL注入均无效。通过枚举目录找到flag.php等资源。

查看Cookie内容,Base64解码得到序列化字符串。伪造管理员身份后成功进入后台管理页面。

尝试读取文件时遇到限制,不能直接访问.php文件。通过在目标路径后添加斜杠绕过限制:

http://example.com/flag.php/

最终获得Flag。

文件上传竞争条件漏洞利用

此题允许注册用户,但只有"admin"角色可上传文件。通过修改Cookie中is_admin字段为1后以管理员身份登录。

系统对上传文件进行内容安全检测,违规文件会被删除。推测需要利用文件上传的竞争条件漏洞。

首先上传.htaccess文件禁用PHP限制,然后通过多线程并发上传test.php文件同时请求/tmp/test.php路径:

def exploit():
    with ThreadPoolExecutor() as executor:
        executor.submit(upload_htaccess)
        for _ in range(30):
            executor.submit(upload_payload)
        for _ in range(20):
            executor.submit(trigger_payload)

    if check_shell_availability():
        interact_with_shell()

成功写入交互式Shell后,执行命令读取Flag。

相关文章

Linux crontab 详解

1) crontab 是什么cron 是 Linux 的定时任务守护进程;crontab 是用来编辑/查看“按时间周期执行命令”的表(cron table)。常见两类:用户 crontab:每个用户一份(crontab -e 编辑)系统级 crontab / cron.d:可指定执行用户(/etc/crontab、/etc/cron.d/*)2) crontab 时间...

富文本里可以允许的 HTML 属性

一、所有标签默认允许的安全属性(极少)class        (可选)id           (通常建议禁用)title️ 注意:id 容易被滥用做锚点注入,很多系统直接禁用class 允许的话最好只允许固定前缀(如 editor-*)二、a 标签允许属性<a href="" t...

Mac 安装 Node.js 指南

方法一:通过官网安装包(最简单,适合初学者)如果你只是想快速安装并开始使用,这是最直接的方法。访问 Node.js 官网。页面会显示两个版本:LTS (Recommended For Most Users):长期支持版,最稳定。建议选这个。Current:最新特性版,包含最新功能但可能不够稳定。下载 .pkg 安装包并运行。按照安装向导点击“下一步”即可完成。方法二:使用 Homebrew 安装(...

Dom\HTML_NO_DEFAULT_NS 的副作用:自动加闭合标签

在使用Dom\HTMLDocument时,Dom\HTML_NO_DEFAULT_NS 将禁止在解析过程中设置元素的命名空间, 此设置是为了与DOMDocument向后兼容而存在的。当使用它时,已知的一个副作用就是:自动加闭合标签例如 </img> 为什么会这样?当你使用:Dom\HTML_NO_DEFAULT_NS文档会变成 无命名空间模式,此时内部更接近 XML...

Laravel 事件和监听器创建

在 Laravel 中,使用 Artisan 命令创建 Events(事件) 和 Listeners(监听器) 是非常高效的。你可以通过以下几种方式来实现:1. 手动创建单个 Event如果你只想创建一个事件类,可以使用 make:event 命令:Bashphp artisan make:event UserRegistered执行后,文件将生成在 app/Even...

自定义域名解析神器 dnsmasq

什么是 dnsmasq?dnsmasq 是一个轻量级、功能强大的网络服务工具,专为小型和中等规模网络设计。它是一个综合的网络基础设施解决方案[1]。dnsmasq 能做什么?功能说明应用场景DNS 转发与缓存将 DNS 查询转发到上游服务器(ISP、Google DNS 等),并在本地缓存结果加快 DNS 查询速度,减少外部 DNS 流量本地 DNS解析本地网络设备的主机名,无需编辑&n...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。