pikachu 靶场之XSS(跨站脚本) -上篇(一)

简介: pikachu 靶场之XSS(跨站脚本) -上篇

XSS也是一种代码注入技术,劫持的是用户的浏览器

一、基础概览

Cross-Site Scripting 简称为 "CSS",为避免与前端叠成样式表的缩写"CSS"冲突,故又称XSS。


XSS在OWASP TOP10的排名中一直属于前三,是一种发生在前端浏览器端的漏洞,所以其危害的对象也是前端用户。


XSS漏洞可以用来进行钓鱼攻击、前端js挖矿,用户cookie获取(篡改信息...),网页挂马,DOS攻击(频繁刷新界面),获取客户端信息(用户浏览历史,真实IP,开放端口),传播XSS跨站脚本蠕虫甚至可以结合浏览器自身的漏洞对用户主机进行远程控制等

分类

  • 反射性XSS
  • 存储型XSS
  • DOM型XSS

危害程度

存储型(永久型)   >   反射型   >   DOM型

反射型:一次性(非持久)。一般出现在查询类页面等,访问了恶意的链接(短链接构造)。发送给用户让用户点击(邮件钓鱼等形式)

存储型:交互的数据会被存在数据库中,永久性存储。一般出现在留言板,论坛,信息发布,电子商城,注册等页面。

DOM型:不与后台服务器产生数据交互,是一种通过DOM操作前端代码输出的时候产生的问题,一次性,也属于反射型

基础再巩固:

XSS是通过向 存在XSS漏洞的网站上注入了恶意代码,用户浏览并访问了该网站从而引发的一种漏洞。


反射型XSS:简单的将用户输入的数据 "反射" 给浏览器。引诱用户点击一个恶意链接,才能攻击成功,非持久性XSS。

用户恶意输入数据--->服务器--->用户访问--->用户浏览器解析执行

存储型XSS:用户输入数据永久 "存储" 在服务器端,稳定性强,每次访问都会被执行。

用户恶意输入数据--->服务器存储在数据库--->用户访问--->浏览器解析执行

DOM型XSS:纯前端漏洞,服务器端无法防御,前端通过 JS 操作DOM 中节点(遍历,获取,修改对应的节点,对象,值)实现。即可能是反射型,也可能是存储型。这种利用也需要受害者点击链接来触发,DOM型XSS是前端代码中存在了漏洞,而反射型和存储型是后端代码中存在了漏洞。


二、实验认知

反射型 XSS(get)

1 首先随便输入点内容,看回显吧!

e6b40c21735deb9f00966e74204cab56_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

54c17ab9c72d23f6b6ca7b50ab6bc34f_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


2 什么也不输入,直接submit

c386433f87938af56e8feb792a0cddbc_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


3 输入kobe ,submit

832ea3f5d87163f7b69b3633422a1539_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

通过以上现象我们发现,输入的内容,以get方式进行发送的。


4 构造链接(弹窗)

payload



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


6dc65afb8aff9cbfd1639f7950f51e8f_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

2098b4c1570bb36e431d5c5586f51820_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

成功弹窗,存在XSS漏洞

5 总结

反射型 XSS 执行流程:用户输入--->后端服务器响应--->用户浏览器解析执行。利用用户对网站的信赖。

利用:构造恶意JS链接(带有跨站脚本URL伪装)--->诱导受害者点击--->攻击完成,一次性攻击。

场景:一般出现在查询类页面中



存储型 XSS

1 直接上payload


attack<script>alert("attack")</script>



8cea1592542f49b439970ce492318138_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

820471256020975c042438ae072112a0_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

成功弹窗,存在XSS漏洞

2 总结

存储型XSS漏洞和反射型形成原因一样,不同的是存储型XSS下攻击者可以将脚本注入到后台存储起来,构成更加持久的危害。

利用:每当有用户访问该站点就会中招,持久型攻击

场景:一般出现在留言板界面中



DOM型 XSS

1 根据要求点一下

2291fb1cc5d0ff372ae1bb1aaf8a5979_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

2 看起来是个超链接,再点一下。根据浏览器的反应,应该是个跳转链接

3 输入内容,再点一下,提示404 not found,ok初步判断,跳转链接为我们输入的内容

430b82f9728bc8549b5caaf867f0e2e0_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

097ac45102b0bd023a81d095eb16b8cf_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


4 查看网页源码,验证猜想

58791e99bb168a3a4b6df3ada1bcf7ee_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

5 通过分析源代码,确认无疑( 用JS 操作 DOM元素),URL跳转终点就是我们输入的内容

6 构造闭合,实现弹窗,payload如下


#' onclick="alert('attack')">
#' onmouseover="alert('DOM XSS')">
#'><img src="#" onmouseover="alert('attack')">
#'><img src="1.png" onerror="alert('waring')">

7 成功弹窗,存在XSS 漏洞

edbe9cbaf7ab94462004dd86f636fea4_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


DOM型 XSS-X

1 老规矩,先点点再说,这里发现。。如下

5c2d3d0b122219ed88fa3642c7eab33e_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

2 再点击

183f606a9031f33033bdbc474ebe4bf7_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

3 输入内容再来一遍,ok,404 not found

1ef63ce3441eac333858c36eb9ebe16f_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png5e1d2ad221b909ca0fa17db1bd81b969_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

097006fe6b39914dda9ba95778c20b73_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

4 查看源代码,虽然写的挺多,经过分析,跟原来没什么区别。

23e71c874d439f8e550642e4802b1f5b_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


5 构造闭合,payload如下


#' onmouseover="alert('DOM XSS')">


376299477fbe84a1b0ec01ba6ab1236d_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

6 成功弹窗,存在XSS 漏洞

DOM XSS 总结

DOM型XSS:纯前端漏洞,是一种特殊的反射型XSS,不与后台服务器产生数据交互,前端通过 JS 操作DOM 元素(遍历,获取,修改对应的节点,对象,值)实现。

类型:即可能是反射型,也可能是存储型。

利用:也需要受害者点击链接来触发

区别:DOM型XSS是前端代码中存在了漏洞,而反射型和存储型是后端代码中存在了漏洞。


相关文章
|
2月前
|
存储 安全 JavaScript
XSS跨站脚本攻击详解(包括攻击方式和防御方式)
这篇文章详细解释了XSS跨站脚本攻击的概念、原理、特点、类型,并提供了攻击方式和防御方法。
370 1
|
1月前
|
存储 JavaScript 前端开发
Xss跨站脚本攻击(Cross Site Script)
Xss跨站脚本攻击(Cross Site Script)
|
3月前
|
存储 JavaScript API
跨站脚本(XSS)
【8月更文挑战第17天】
25 3
|
3月前
|
监控 安全 JavaScript
对跨站脚本攻击(XSS)的防御策略?
【8月更文挑战第15天】
327 1
|
3月前
|
SQL 监控 安全
在Linux中,如何检测和防止SQL注入和跨站脚本(XSS)攻击?
在Linux中,如何检测和防止SQL注入和跨站脚本(XSS)攻击?
|
15天前
|
JavaScript 安全 前端开发
同源策略如何防止 XSS 攻击?
【10月更文挑战第31天】同源策略通过对 DOM 访问、Cookie 访问、脚本执行环境和跨源网络请求等多方面的严格限制,构建了一道坚实的安全防线,有效地防止了 XSS 攻击,保护了用户在网络浏览过程中的数据安全和隐私。
84 49
|
4月前
|
存储 安全 JavaScript
手摸手带你进行XSS攻击与防御
当谈到网络安全和信息安全时,跨站脚本攻击(XSS)是一个不可忽视的威胁。现在大家使用邮箱进行用户认证比较多,如果黑客利用XSS攻陷了用户的邮箱,拿到了cookie那么就可以冒充你进行收发邮件,那真就太可怕了,通过邮箱验证进行其他各种网站的登录与高危操作。 那么今天,本文将带大家深入了解XSS攻击与对应的防御措施。
|
20天前
|
安全 前端开发 Java
Web安全进阶:XSS与CSRF攻击防御策略深度解析
【10月更文挑战第26天】Web安全是现代软件开发的重要领域,本文深入探讨了XSS和CSRF两种常见攻击的原理及防御策略。针对XSS,介绍了输入验证与转义、使用CSP、WAF、HTTP-only Cookie和代码审查等方法。对于CSRF,提出了启用CSRF保护、设置CSRF Token、使用HTTPS、二次验证和用户教育等措施。通过这些策略,开发者可以构建更安全的Web应用。
58 4
|
19天前
|
安全 Go PHP
Web安全进阶:XSS与CSRF攻击防御策略深度解析
【10月更文挑战第27天】本文深入解析了Web安全中的XSS和CSRF攻击防御策略。针对XSS,介绍了输入验证与净化、内容安全策略(CSP)和HTTP头部安全配置;针对CSRF,提出了使用CSRF令牌、验证HTTP请求头、限制同源策略和双重提交Cookie等方法,帮助开发者有效保护网站和用户数据安全。
47 2
|
22天前
|
存储 安全 Go
Web安全基础:防范XSS与CSRF攻击的方法
【10月更文挑战第25天】Web安全是互联网应用开发中的重要环节。本文通过具体案例分析了跨站脚本攻击(XSS)和跨站请求伪造(CSRF)的原理及防范方法,包括服务器端数据过滤、使用Content Security Policy (CSP)、添加CSRF令牌等措施,帮助开发者构建更安全的Web应用。
52 3