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是前端代码中存在了漏洞,而反射型和存储型是后端代码中存在了漏洞。


相关文章
|
1月前
|
存储 JavaScript API
跨站脚本(XSS)
【8月更文挑战第17天】
16 3
|
1月前
|
监控 安全 JavaScript
对跨站脚本攻击(XSS)的防御策略?
【8月更文挑战第15天】
87 1
|
1月前
|
存储 JavaScript 安全
Web安全之XSS跨站脚本攻击
XSS(跨站脚本攻击)
61 7
|
30天前
|
SQL 监控 安全
在Linux中,如何检测和防止SQL注入和跨站脚本(XSS)攻击?
在Linux中,如何检测和防止SQL注入和跨站脚本(XSS)攻击?
|
2月前
|
SQL API Python
`bandit`是一个Python静态代码分析工具,专注于查找常见的安全漏洞,如SQL注入、跨站脚本(XSS)等。
`bandit`是一个Python静态代码分析工具,专注于查找常见的安全漏洞,如SQL注入、跨站脚本(XSS)等。
|
4月前
|
存储 JavaScript 前端开发
前端xss攻击——规避innerHtml过滤标签节点及属性
前端xss攻击——规避innerHtml过滤标签节点及属性
301 4
|
4月前
|
缓存 安全 JavaScript
前端安全:Vue应用中防范XSS和CSRF攻击
【4月更文挑战第23天】本文探讨了在Vue应用中防范XSS和CSRF攻击的重要性。XSS攻击通过注入恶意脚本威胁用户数据,而CSRF则利用用户身份发起非授权请求。防范措施包括:对输入内容转义、使用CSP、选择安全的库;采用Anti-CSRF令牌、同源策略和POST请求对抗CSRF;并实施代码审查、更新依赖及教育团队成员。通过这些实践,可提升Vue应用的安全性,抵御潜在攻击。
741 0
|
2月前
|
存储 安全 JavaScript
手摸手带你进行XSS攻击与防御
当谈到网络安全和信息安全时,跨站脚本攻击(XSS)是一个不可忽视的威胁。现在大家使用邮箱进行用户认证比较多,如果黑客利用XSS攻陷了用户的邮箱,拿到了cookie那么就可以冒充你进行收发邮件,那真就太可怕了,通过邮箱验证进行其他各种网站的登录与高危操作。 那么今天,本文将带大家深入了解XSS攻击与对应的防御措施。
|
2月前
|
SQL 安全 数据库
Python Web开发者必学:SQL注入、XSS、CSRF攻击与防御实战演练!
【7月更文挑战第26天】在 Python Web 开发中, 安全性至关重要。本文聚焦 SQL 注入、XSS 和 CSRF 这三大安全威胁,提供实战防御策略。SQL 注入可通过参数化查询和 ORM 框架来防范;XSS 则需 HTML 转义用户输入与实施 CSP;CSRF 防御依赖 CSRF 令牌和双重提交 Cookie。掌握这些技巧,能有效加固 Web 应用的安全防线。安全是持续的过程,需贯穿开发始终。
68 1
Python Web开发者必学:SQL注入、XSS、CSRF攻击与防御实战演练!
|
1月前
|
存储 安全 JavaScript
XSS攻击(Cross-Site Scripting)
【8月更文挑战第11天】
46 2