【web渗透】XSS跨站请求攻击

article/2025/9/23 8:59:04

💕💕💕 博主昵称:摆烂阳💕💕💕

🥰博主主页跳转链接
👩‍💻博主研究方向:web渗透测试 、python编程
📃 博主寄语:希望本篇文章能给大家带来帮助,有不足的地方,希望友友们给予指导

————————————————

在这里插入图片描述

目录

  • 一、原理
  • 二、出现的原因
  • 三、xss的分类
    • 1、反射性
    • 2、存储型XSS 或持久型 XSS(高危)
    • 3、DOM XSS
  • 四、xss的检测方法
    • 1、工具扫描
    • 2、手工测试
  • 五、xss的危害
  • 六、xss的防范手法
  • 七、JavaScript的使用
    • 1、语法格式
    • 1、xss常用的js标签
  • 八、靶场演示
    • 1、dedecms系统
    • 2、xss订单系统
  • 九、xss的修复建议
  • 本章小结

一、原理

恶意攻击者在web页面中会插入一些恶意的javascript代码。当用户浏览该页面的时候,那么嵌入到web页面中script代码会执行,因此会达到恶意攻击用户的目的。那么XSS攻击最主要有如下分类:反射型、存储型、及DOM-based型。 反射性和DOM-baseed型可以归类为非持久性XSS攻击。存储型可以归类为持久性XSS攻击。

在这里插入图片描述

二、出现的原因

程序对输入和输出的控制不够严格,导致"精心构造“的脚本输入后,在输到前端时被浏览器当作有效代码解析执行从而产生危害,和sql注入类似,但是sql注入是在后端运行,而XSS是在前端运行

在这里插入图片描述

三、xss的分类

1、反射性

简介:

反射型xss攻击( Reflected XSS)又称为非持久性跨站点脚本攻击,它是最常见的类型的XSS。漏洞产生的原因是攻击者注入的数据反映在响应中。一个典型的非持久性XSS包含一个带XSS攻击向量的链接(即每次攻击需要用户的点击)。

插入代码 -> 执行到后端 - > 后端发送到前端 -> 浏览器解析

2、存储型XSS 或持久型 XSS(高危)

特征:

存储型XSS是指应用程序直接将攻击者提交的恶意代码存储到服务端保存,然后永久显示在其他用户的页面上。

插入代码 - > 执行到后端 -> 存储到数据库 - > 调用数据 -> 后端发送到前端 -> 浏览器解析

在这里插入图片描述可能出现的位置

1、用户注册
2、留言板
3、上传文件的文件名处
4、管理员可见的报错信息
5、在线聊天框
6、客服
7、问题反馈区
8、邮件信箱

理论上见框就插

3、DOM XSS

简介:

通过JavaScript,可以重构整个HTML文档,就是说可以添加,移除等等,对页面的某个东西进行操作时,JavaScript就需要获得对HTML文档中所有元素进行访问的入口。这个入口就是DOM,所以在DOM型的xss漏洞利用中,DOM可以看成是一个访问HTML的标准程序接口。

特征:整个过程都是在前端完成的,没有后端的参与(纯前端的操作!)

插入代码 - > 也可能会发送后端 -> 返回响应 -> js代码处理 -> 浏览器解析

四、xss的检测方法

1、工具扫描

可以使用APPscan、AWVS等工具进行扫描

2、手工测试

Burpsuite、firefox(hackbar)、XSSER XSSF

使用手工检测Web应用程序是否存在XSS漏洞时,最重要的是考虑那里有输入,输入的数据在什么地方输出。在进行手工检测XSS时,人毕竟不像软件那样不知疲惫,所以一定要选择有特殊意义的字符,这样可以快速测试是否存在XSS。

(1)在目标站点上找到输入点,比如查询接口,留言板等;

(2)输入一组"特殊字符+唯一识别字符",点击提交后,查看返回的源码,是否有做对应的处理;

(3)通过搜索定位到唯一字符,结合唯一字符前后语法确认是否可以构造执行js的条件(构造闭合);提交构造的脚本代码,看是否可以成功执行,如果成功执行则说明存在XSS漏洞;

五、xss的危害

1、首先对于那些半年没有更新的小企业网站来说,发生XSS漏洞几乎没有什么用。一般在各类的社交平台,邮件系统,开源流行的Web应用,BBS,微博等场景中,造成的杀伤力却十分强大。

2、劫持用户cookie是最常见的跨站攻击形式,通过在网页中写入并执行脚本执行文件(多数情况下是JavaScript脚本代码),劫持用户浏览器,将用户当前使用的sessionID信息发送至攻击者控制的网站或服务器中。

3、“框架钓鱼”。利用JS脚本的基本功能之一:操作网页中的DOM树结构和内容,在网页中通过JS脚本,生成虚假的页面,欺骗用户执行操作,而用户所有的输入内容都会被发送到攻击者的服务器上。

4、挂马(水坑攻击)

5、有局限性的键盘记录

别人在你的网站插入一张照片或者一直有弹窗对自己的影响有多大是可想而知的

在这里插入图片描述

六、xss的防范手法

XSS防御的总体思路是:对输入进行过滤,对输出进行编码

过滤

根据业务需求进行过滤,比如输出点要求输入手机号,则只允许输入手机号格式的数字。

转义

所有输出到前端的数据都根据输出点进行转义,比如输出到html中进行html实体转义,输入到JS里面的进行JS转义()

1、用户注册
2、留言板
3、上传文件的文件名处
4、管理员可见的报错信息
5、在线聊天框
6、客服
7、问题反馈区
8、邮件信箱

理论上,见框就插。

七、JavaScript的使用

1、语法格式

<script>
[Javascript代码]
</script>

例如:

<!DOCTYPE html><html><head><meta charset="utf-8"><title></title></head><body><script type="text/javascript">alert('第一个javascript程序');</script></body></html>

1、xss常用的js标签

alert

alert()方法用于显示带有一条指定消息和一个确认按钮的警告框

window.location

window.location对象用于获得当前页面的地址(URL) ,并把浏览器重定向到新的页面

ocation.href

返回当前显示的文档的完整URL

onload

一张页面或一幅图像完成加载

onerror

在加载文档或图像时发生错误

onchange

HTML 元素改变

onclick

用户点击 HTML 元素

onmouseover

鼠标指针移动到指定的元素上时发生

onmouseout

用户从一个 HTML 元素上移开鼠标时发生

onkeydown

用户按下键盘按键

八、靶场演示

1、dedecms系统

首先在存在注入的地方输入payload

在这里插入图片描述

后台管理员查看信息

在这里插入图片描述
xss平台成功获取信息

在这里插入图片描述

2、xss订单系统

首先在订单页面中找到没有限制的输入点(具体要求)设置payload
在这里插入图片描述
后台管理员访问订单信息

在这里插入图片描述
Xss平台成功获取信息
在这里插入图片描述

九、xss的修复建议

1.在cookie中设置了HttpOnly属性,那么通过JavaScript脚本将无法读取到cookie信息,这样能一定程度上防止XSS攻击。

2.假定所有输入都是可疑的,必须对所有输入中的script、iframe等字样进行严格的检查。这里的输入不仅仅是用户可以直接交互的输入接口,也包括HTTP请求中的cookie中的变量,HTTP请求头部中的变量等。

3.不仅验证数据的类型,还要验证其格式、长度、范围和内容

4.过滤“<” 、“>” 将用户输入放入引号间,基本实现数据与代码隔离;过滤双引号防止用户跨越许可的标记,添加自定义标记;过滤TAB和空格,防止关键字被拆分;过滤script关键字;过滤&#,防止HTML属性绕过检查。在客户端和服务器端同时做数据的验证与过滤。

5.对输出的数据也要检查,数据库里的值有可能会在一个大网站的多处都有输出,即使在输入做了编码等操作,在各处的输出点时也要进行安全检查。

本章小结

在这里插入图片描述

XSS攻击最终目的是在网页中嵌入客户端恶意脚本代码,最常用的攻击代码是javascript语言,但也会使用其它的脚本语言,例如:ActionScript、VBscript。而如今的互联网客户端脚本基本是基于Javascript,所以如果想要深入研究XSS,必须要精通Javascript。换句话说,JavaScript能做到什么效果,XSS的胃里就有多大。这完全不是危言耸听。javascript可以用来获取用户的cookie,弹出窗口,那么存在XSS漏洞的网站,XSS就可以用来盗取用户Cookie,废掉页面,导航到恶意网站!更高端的XSS代码完全可以进行监控你的键盘操作,模仿Windows注销界面,诱导你输入开机密码!而攻击者需要做的仅仅是向你的代码中注入Javascript代码!

本文是本人以前笔记,博主主页跳转链接如果有哪里不对的话欢迎各位大佬指出问题,本人也是初学python,希望可以和各位朋友一起学习进步。

点击跳转到博主python专栏:
如果有喜欢web安全的朋友,请在web渗透专栏中进行查看,点击跳转到博主web渗透专栏


http://chatgpt.dhexx.cn/article/CFxvp0sH.shtml

相关文章

XSS漏洞

XSS是web安全中最为常见的漏洞&#xff0c;XSS全称是Cross Site Script。XSS攻击通常指黑客通过“HTML注入”篡改了网页&#xff0c;插入了恶意脚本&#xff0c;从而控制用户浏览的一种攻击。 这里的跨站访问&#xff0c;可以是从正常的网站跨到黑客的服务器&#xff0c;也可以…

XSS-Game 通关教程,XSS-Game level1-18,XSS靶场通关教程

​ 「作者主页」&#xff1a;士别三日wyx 「作者简介」&#xff1a;CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「专栏简介」&#xff1a; 此文章已录入专栏 靶场通关教程 XSS-Game XSS-Game level1XSS-Game level2XSS-Game level3XSS-Game level4XSS…

XSS攻击与CSRF攻击

XSS攻击 什么是XSS Cross-Site Scripting(跨站脚本攻击)&#xff0c;简称XSS&#xff0c;是一种代码注入攻击。攻击者通过在目标网站上注入恶意脚本&#xff0c;使之在用户的浏览器上运行。利用这些恶意脚本&#xff0c;攻击者可获取用户的敏感信息如Cookie、SessionID等&…

【XSS攻击介绍(一)】

目录 一、前言 二、攻击条件和漏洞验证方法 三、XSS漏洞分类 四、利用方法 五、XSS payload变形 六、防护总结 一、前言 XSS&#xff1a;跨站脚本攻击&#xff0c;即CSS。利用网页开发时留下的漏洞&#xff08;web应用程序对用户的输入过滤不足&#xff09;&#xff0c…

【XSS漏洞-01】XSS漏洞简介、危害与分类及验证

目录 1 XSS漏洞简介2 XSS漏洞危害3 XSS漏洞分类3.1 反射型XSS3.2 存储型XSS3.3 DOM型XSS3.3.1 节点树模型3.3.2 DOM型XSS 4 漏洞验证4.1 漏洞验证相关概念4.2 漏洞验证相关概念之间的区别4.3 常见POC 5 XSS漏洞验证实例5.1 反射型XSS漏洞验证实例5.2 存储型XSS漏洞验证实例5.3 …

XSS攻击详解

本篇博客主要总结一下什么是XSS攻击&#xff0c;并且如何防范XSS攻击。 一、什么是XSS攻击 XSS攻击中文名称为&#xff1a;跨站脚本攻击&#xff0c;XSS的重点不在于跨站&#xff0c;而在于脚本的攻击。 XSS攻击的工作原理&#xff1a;攻击者会在web页面中插入一些恶意的script…

XSS详解

XSS详解 1. 简介2. 跨站脚本实例3. XSS 的危害4. 分类4.1 反射型XSS&#xff08;非持久型&#xff09;漏洞成因攻击流程 4.2 存储型XSS&#xff08;持久型&#xff09;漏洞成因攻击流程 4.3 DOM型XSS漏洞成因 4.4 通用型XSS漏洞成因漏洞案例 4.5 突变型XSS漏洞成因攻击流程 5. …

XSS是什么?(Xmind配文详解)

一张图带你详解XSS &#xff08;话不多说上图&#xff09; 一、什么是 XSS XSS全称&#xff08;Cross Site Scripting&#xff09;跨站脚本攻击&#xff0c;是最常见的Web应用程序安全漏洞之一&#xff0c;位于OWASP top 10 2013/2017年度分别为第三名和第七名&#xff0c;X…

XSS详细讲解

XSS 1.XSS简介 &#xff08;1&#xff09;XSS简介 XSS作为OWASP TOP 10之一。 XSS中文叫做跨站脚本攻击&#xff08;Cross-site scripting&#xff09;&#xff0c;本名应该缩写为CSS&#xff0c;但是由于CSS&#xff08;Cascading Style Sheets&#xff0c;层叠样式脚本&am…

MySQL mysqldump数据导出详解

MySQL mysqldump数据导出详解 2016-04-07 11:14 pursuer.chen 阅读(357122) 评论(2) 编辑 收藏 举报 介绍 在日常维护工作当中经常会需要对数据进行导出操作&#xff0c;而mysqldump是导出数据过程中使用非常频繁的一个工具&#xff1b;它自带的功能参数非常多&#xff…

linux mysqldump 备份所有数据库,mysqldump导出所有数据库

Mysqldump工具的详细介绍 说明:mysqldump是数据库用来备份和数据转移的一个工具,一般在数据量很小的时候(几个G)可以用于备份。当数据量比较大的情况下,就不建议用mysqldump工具进行备份了;mysqldump是一个很好用的mysql数据转移工具,具有兼容强强、跨版本等特点; 一、数…

mysqldump实战-问题1

使用mysqldump导出数据时&#xff0c;遇到了一个权限问题(之前没报过这个提示) mysqldump: Error: Access denied; you need (at least one of) the PROCESS privilege(s) for this operation when trying to dump tablespaces 查看当前用户的权限&#xff1a; 解决方法&…

mysqldump 备份还原

Mysqldump Mysqldump客户端程序执行逻辑备份&#xff0c;可以生产一组SQL语句&#xff0c;这些语句可以执行重现原始数据库对象定义和表数据&#xff1b;它可以转存一个或多个数据库进行备份或者转移到其他数据库。Mysqldump命令也能生成csv文件或其他分隔符的文本&#xff0c…

mysqldump实战-问题2

在使用mysqldump 按条件导出数据的时候&#xff0c;发现导出的数据比直接在数据库查询数据变少了。 在数据库使用select count(*) from tablename where DATE_FORMAT(Inserted,%Y-%m-%d) 2022-12-13; 查到的数据是662条&#xff1b;然后使用mysqldump -uusr_name -pusr_pwd -…

MySQL 8.0 mysqldump 详解

作者公众号&#xff0c;欢迎一起交流。 mysqldump命令是MySQL自带的客户端程序&#xff0c;可用于对数据库进行备份&#xff0c;由于是逻辑备份&#xff0c;故可以看到备份的内容是有一系列的SQL语句组成&#xff0c;并可根据实际情况对备份内容进行修改。当然&#xff0c;使用…

mysqldump的使用简介

有时候要对线上数据进行操作&#xff0c; 需要提前备份下数据。 有时候需要将线上数据dump下来进行分析和验证。 来看下mysqldump的使用。 导出数据&#xff1a;mysqldump -h localhost -u root -p -P 17538 --single-transaction --databases taoge --tables x > x1.sql …

MySQL——使用mysqldump命令备份

使用mysqldump命令备份 mysqldump命令可以将数据库中的数据备份成一个文本文件。表的结构和表中的数据将存储在生成的文本文件中。本节将介绍mysqldump命令的工作原理和使用方法。 mysqldump命令的工作原理很简单。它先查出需要备份的表的结构&#xff0c;再在文本文件中生成…

网络安全——终端安全

背景 大中型企业桌面计算机数量众多,管理难度大,桌面安全问题突出。人们提起信息安全,往往把注意力集中在防火墙、防病毒、IDS、IPS、网络互连设备(Router、Switch)等的管理上,却忽略了对网络环境中的计算单元——桌面安全管理。 桌面安全,是传统网络安全防范体系的补…

网络安全防护体系建设

网络安全基本概念 网络安全&#xff08;Cyber Security&#xff09;是指网络系统的硬件、软件及其系统中的数据受到保护&#xff0c;不因偶然的或者恶意的原因而遭受到破坏、更改、泄露&#xff0c;系统连续可靠正常地运行&#xff0c;网络服务不中断&#xff0c;使网络处于稳…

网络安全体系

文章目录 1、安全体系2、安全服务3、安全机制4、安全标准5、安全目标 1、安全体系 ISo(国际标准化组织&#xff09;1989年制定的ISO/IEC 7489-2&#xff0c;给出了ISO/oSI参考模型的安全体系结构 在OSI参考模型中增设了安全服务、安全机制和安全管理&#xff0c;并给出了OSI网…