XSS跨站脚本攻击

web安全之XSS攻击原理及防范 恶意攻击者在web页面中会插入一些恶意的script代码。当用户浏览该页面的时候,那么嵌入到web页面中script代码会执行,因此会达到恶意攻击用户的目的 阅读详情

一、简介


什么是XSS?


百度百科的解释: XSS又叫CSS  (Cross Site Script) ,跨站脚本攻击。它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意用户的特殊目的。


它与SQL注入攻击类似,SQL注入攻击中以SQL语句作为用户输入,从而达到查询/修改/删除数据的目的,而在xss攻击中,通过插入恶意脚本,实现对用户游览器的控制,获取用户的一些信息。


二、分类


xss攻击可以分成两种类型:

1.非持久型攻击
2.持久型攻击


非持久型xss攻击:顾名思义,非持久型xss攻击是一次性的,仅对当次的页面访问产生影响。非持久型xss攻击要求用户访问一个被攻击者篡改后的链接,用户访问该链接时,被植入的攻击脚本被用户游览器执行,从而达到攻击目的。


持久型xss攻击:持久型xss,会把攻击者的数据存储在服务器端,攻击行为将伴随着攻击数据一直存在。


也可以分成三类:


反射型:经过后端,不经过数据库

存储型:经过后端,经过数据库

DOM:不经过后端,DOM—based XSS漏洞是基于文档对象模型Document Objeet Model,DOM)的一种漏洞,dom - xss是通过url传入参数去控制触发的。


三、原理


1.反射型


新建一个xss.php文件并加入以下代码:


  1. \\XSS反射演示
  2. <form action="" method="get">
  3. <input type="text" name="xss"/>
  4. <input type="submit" value="test"/>
  5. </form>
  6. <?php
  7. $xss = @$_GET[ 'xss'];
  8. if($xss!== null){
  9. echo $xss;
  10. }

这段代码中首先包含一个表单,用于向页面自己发送 GET 请求,带一个名为xss的参数。 然后 PHP 会读取该参数,如果不为空,则直接打印出来,这里不存在任何过滤。也就是说,如果xss中存在 HTML 结构性的内容,打印之后会直接解释为 HTML 元素。


部署好这个文件,访问http://localhost/xss.php,直接输入一个js代码,比如<script>alert('hack')</script>,




之后点击test:




我们输入的HTML代码被执行了。用Firebug查看,我们输出的内容直接插入到了页面中,解释为<script>标签。





反射型 XSS 的数据流向是:浏览器 -> 后端 -> 浏览器。



2.存储型


把xss.php内容改为(同时数据库中需要配置相应的表):


  1. \\存储XSS演示
  2. <form action="" method="post">
  3. <input type="text" name="xss"/>
  4. <input type="submit" value="test"/>
  5. </form>
  6. <?php
  7. $xss=@$_POST[ 'xss'];
  8. mysql_connect( "localhost", "root", "123");
  9. mysql_select_db( "xss");
  10. if($xss!== null){
  11. $sql= "insert into temp(id,payload) values('1','$xss')";
  12. $result=mysql_query($sql);
  13. echo $result;
  14. }


用户输入的内容还是没有过滤,但是不直接显示在页面中,而是插入到了数据库。


新建show.php,内容为:


  1. mysql_connect("localhost","root","root");
  2. mysql_select_db("xss");
  3. $sql="select payload from temp where id=1";
  4. $result=mysql_query($sql);
  5. while($row=mysql_fetch_array($result)){
  6. echo $row['payload'];
  7. }

该代码从数据库读取了之前插入的内容,并将其显示出来。


先创建一个数据库xss,创建temp表




然后访问xss.php,像之前一样输入 HTML 代码




点击test,点击之后却发现没有任何动静,但事实上,我们的数据已经插入到了数据库中。






当我们访问show.php查询这个值的时候,代码就会被执行。




存储型 XSS 的执行位置通常不同于输入位置。我们可以看出,存储行 XSS 的数据流向是:

浏览器 -> 后端 -> 数据库 -> 后端 -> 浏览器。


3.dom-xss


把xss.php内容改为


  1. <?php
  2. error_reporting( 0); //禁用错误报告
  3. $name = $_GET[ "name"];
  4. ?>
  5. <input id="text" type="text" value="<?php echo $name;?>" />
  6. <div id="print"> </div>
  7. <script type="text/javascript">
  8. var text = document.getElementById( "text");
  9. var print = document.getElementById( "print");
  10. print.innerHTML = text.value; // 获取 text的值,并且输出在print内。这里是导致xss的主要原因。
  11. </script>





DOM-XSS 的数据流向是:URL-->浏览器 


总结: 在易用上,存储型XSS > DOM - XSS > 反射型 XSS。


注:反射型xss和dom-xss都需要在url加入js代码才能够触发。


四、利用


通过 XSS 来获得用户 Cookie 或其他有用信息,利用平台负责接收并保存这些信息。XSS利用平台有很多种如XSS Shell, BeEF, Anehta, CAL9000。这里使用xsser.me、搭建过程可参考这:http://blog.youkuaiyun.com/u011781521/article/details/53895363


进入搭建好的xsser.me平台首页输入用户名与密码进行登录




成功之后会显示主界面,左边是模块列表,右边是项目列表: 





我们点击左边“我的项目”旁边的“创建”按钮:




名称和描述可以随便取,不影响使用。输入时候点击“下一步”按钮。之后会出现“配置代码”界面:









点击下一步、就会看到这个项目的一些信息




点击完成。然后我们会在首页看到我们的新项目,点击这个项目:





之后点击项目,进入一个页面再点击右上方的查看代码



就可以看到使用方法:





下面就演示下怎么利用


把<script src="..."></script>注入到反射型 XSS 的演示页面中。



上面的src="xxxx"是我另外创建的一个项目的地址,把你创建好的那个项目,提供的那个地址放进去,就可以了,虽然这个页面没反应,但是xsser.me那个项目就收到消息了。




跨站脚本攻击(XSS) XSS,为不和层叠样式表(CascadingStyleSheets,CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。在一开始的时候,这种攻击的演示案例是跨域的,所以叫"跨站脚本"。但是发展到今天,由于JavaScript的强大功能基于网站前端应用的复杂化,是否跨域已经不再重要。但是由于历史原因,XSS这个名字一直保留下来。(2)页面展示... 阅读详情

相关推荐

跨站脚本攻击XSS案例及其解决方案

跨站脚本攻击XSS 目录 案例一:留言板的XSS攻击 利用xss窃取用户名密码 案例二:输入框的XSS攻击 怎么预防 服务端可以干的事 客户端可以干的事 跨站脚本攻击(Cross Site Script为了区别于CSS简称为XSS)指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意用户的特殊目的。 案例一...

若华‘的博客 7609

网络安全-跨站脚本攻击(XSS)的原理、攻击及防御

所用工具 Google出品:开源Web App漏洞测试环境:Firing Range 简介 跨站脚本攻击(全称Cross Site Scripting,为和CSS(层叠样式表)区分,简称为XSS)是指恶意攻击者在Web页面中插入恶意Script代码,当用户浏览网页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。 xss是攻击客户端,最终受害者是用户,网站管理员也是用户之一。 xss漏洞通常是通过php的输出函数将javascript代码输出到html页面中,通过.

关注网络安全、云原生安全 4万+

Web安全之跨站脚本攻击(XSS)

XSS(跨站脚本攻击)是一种常见的网络安全漏洞,攻击者通过在网页中注入恶意脚本,控制用户浏览器进行非法操作。XSS主要分为反射型、存储型和DOM型三种。反射型XSS通过诱使用户点击恶意链接实施攻击;存储型XSS将恶意脚本存储在服务器端,长期影响用户;DOM型XSS通过修改页面DOM节点实现攻击。XSS的危害包括盗取用户账号、控制企业数据、非法转账等。防御措施包括设置HttpOnly属性、输入检查、输出检查和使用安全编码函数。通过这些方法,可以有效减少XSS攻击的风险,保护用户和企业的数据安全。

浪潮行舟_2136 1061

XSS攻击详解

本篇博客主要总结一下什么是XSS攻击,并且如何防范XSS攻击。 一、什么是XSS攻击 XSS攻击中文名称为:跨站脚本攻击,XSS的重点不在于跨站,而在于脚本的攻击。 XSS攻击的工作原理:攻击者会在web页面中插入一些恶意的script代码。当用户浏览该页面的时候,那么嵌套在该页面的代码就会执行,因此会达到攻击用户的目的。 XSS的分类:XSS攻击最主要分为如下几类,反射型,存储型,DOM-based型。反射型和DOM-based型可以归类于非持久性XSS攻击。存储型可以归类于持久性XSS攻击。 二、反射型

weixin_47450807的博客 3万+

什么是跨站脚本 (XSS) 攻击?

这一次,教会xss攻击!!!!!!!

简介 2544

3张RTX 4090就能跑!BAGEL-7B多模态模型本地部署避坑指南(附Flash Attention安装技巧)

本文详细介绍了如何在3张RTX 4090显卡上本地部署BAGEL-7B多模态模型,包括硬件配置、环境设置、多卡并行优化及常见问题解决方案。特别提供了Flash Attention安装技巧和显存优化策略,帮助开发者高效运行这一开源多模态模型,实现文本与图像生成任务。

1a2s3d4f5g的博客 653

XSS跨站脚本攻击与防御

XSS跨站脚本攻击与防御 1.什么是 XSS ? XSS (Cross Site Scripting),即跨站脚本攻击,是一种常见于 Web 应用中的计算机安全漏洞。恶意攻击者往 Web 页面里嵌入恶意的客户端脚本,当用户浏览此网页时,脚本就会在用户的浏览器上执行,进而达到攻击者的目的。比如获取用户的 Cookie、导航到恶意网站、携带木马等。借助安全圈里面非常有名的一句话:*所有的输入都是有害的...

MzHeader的博客 9522

Ansys Zemax实战:5步搞定衍射光学元件(DOE)设计,附赠超透镜(metalens)避坑指南

本文详细介绍了使用Ansys Zemax进行衍射光学元件(DOE)和超透镜(metalens)设计的5步实战流程。从基础光学系统搭建到相位面设计验证,再到制造准备与实测对比,全面解析了OpticStudio中的关键技巧和常见避坑指南,帮助工程师高效完成复杂光学元件设计。

orange的博客 622

xss跨站脚本攻击

XSS跨站脚本攻击是通过向网页注入恶意脚本代码,本文适合零基础想要入门xss跨站脚本攻击的朋友们。

maomaoyyds_的博客 985

Python爬虫实战:从巨潮网批量抓取上市公司年报JSON数据

网络爬虫作为自动化数据采集的核心技术,其原理是通过模拟浏览器行为向服务器发送HTTP请求并解析响应,从而高效获取结构化信息。在金融数据分析领域,这项技术价值尤为突出,能够将研究人员从繁琐的手工数据收集中解放出来,聚焦于更高阶的模型构建与价值挖掘。典型的应用场景包括上市公司财务研究、市场趋势分析和风险预警系统开发。本文以Python的requests库为核心工具,详细解析如何通过分析巨潮资讯网的JSON数据接口,构建一个稳定、高效的上市公司年报数据采集管道,并重点探讨了接口逆向、分页爬取、PDF文件下载等关键

weixin_42529366的博客 1236

一步到位解决Docker拉取镜像失败的问题!超详细的Docker代理设置教程!(使用代理解决群晖Docker获取注册表失败的问题)

一步到位解决Docker拉取镜像失败的问题!超详细的Docker代理设置教程!(使用代理解决群晖Docker获取注册表失败的问题)

XiaoqiangClub的博客 1万+

XSS跨站脚本攻击基础原理

XSS全程(跨站脚本攻击),其原理是攻击者利用浏览器执行前端代码(html,css,js)的特性将恶意js代码插入到web页面中,当用户浏览到该页面时这些嵌入在web页面的代码就会被执行从而达到攻击者的目的定义:反射型xss又称非持久性xss,反射型xss的恶意代码在web应用的参数,需要诱骗受害则点击范围跟含有恶意代码的连接,从而触发xss攻击特点:反射型xss攻击方式是一次性的攻击方式:需要欺骗用户自己去点击含xss的连接,才能触发xss攻击。

一只抑郁的布偶猫的博客 1276

《DeepJIT: An End-To-End Deep Learning Framework for Just-In-Time Defect Prediction》论文笔记

软件工程任务:即时缺陷预测(涉及SE+AI知识)

weixin_43646592的博客 703

xss跨站脚本攻击总结

svg onload="alert(1)"> //onerror 当加载文档或图像时发生某个错误无的弹窗语句onclick="alert(1)" //鼠标单击事件onmouseover="alert(1)" //鼠标悬浮事件最后还有很多的绕过姿势,推荐博客cookie:存储本地 存活时间较长 小中型session: 会话 存储服务器 存活时间较短 大型企业使用。

太阳照耀我走四方 2443

(王道408考研数据结构)第一章绪论-第二节1:算法的基本概念、算法的特性及设计要求

算法(Algorithm):是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作王道视频课中讲到了一个例子,展示了算法就是解决问题的特定步骤的描述对于给定的问题可以有多种多样的算法来解决,只不过这些算法有各自的优点和缺点。

快乐江湖的博客 2685

duilib 实现截屏选取功能分析

本文关注点不再截屏而是截屏选取工具 1首先肯定是个透明窗口,且置顶并且是工具窗口(任务栏不显示窗口图标) 窗口样式 <?xml version="1.0" encoding="utf-8"?> <Window shadowattached="false"> <Box > <VBox name="track_box" margin="200,200,200,200" bkimage="file='screen_bord...

目前打算换一个工作,有招聘windows c++方向的也欢迎联系,北京、济南 最好 908

XSS-跨站脚本攻击

xss的初步学习

m0_61858762的博客 1737

第186篇 前馈控制——提升跟踪精度的补充手段

文章摘要: 本文介绍了前馈控制的原理及其在工程中的应用。与反馈控制不同,前馈控制通过提前预测目标值或扰动信息来生成控制量,避免误差出现后再纠正的延迟问题,适用于机器人、机械臂等高速运动场景。前馈控制通常与PID反馈配合使用,前者提供粗调,后者进行微调。文章详细讲解了前馈增益的调节方法(模型法、实验法、自适应法)及两种前馈类型(指令前馈和扰动前馈),并提供了代码示例和面试实战建议,强调前馈与反馈的协同设计是提升控制精度的关键。最后预告了下一篇将讨论串级PID控制架构。

郑伟强dev的专栏 398

跨站脚本攻击(XSS)详解

跨站脚本攻击(XSS,Cross-Site Scripting)是一种通过在网页中注入恶意脚本,攻击用户浏览器的漏洞。攻击者可以利用XSS窃取用户敏感信息、劫持会话、或在受害者浏览器中执行恶意操作。通过及时识别和修复漏洞、使用安全编码实践和部署防御技术,可以有效预防XSS攻击的发生。

2402_86725606的博客 2050

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

上一篇: CSRF攻击与防御(写得非常好)
下一篇: 如何在Firebug中修改js变量的值
哇偶哇偶Z
博客等级 码龄14年 58粉丝 95原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值