首页 > 其他分享 >xss攻击基础

xss攻击基础

时间:2023-10-10 21:33:58浏览次数:26  
标签:xss 网页 name XSS 攻击 基础 replace 攻击者

一、什么是XSS?

跨站脚本攻击(Cross Site Scripting),为了不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意的Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。

二、XSS种类

XSS攻击的分类主要有“反射型”与“存储型”两种。

“反射型”攻击者通过包装改造URL参数,然后利用前端代码的缺陷或漏洞来攻击,它更偏向于前端层面,并且在实际攻击中攻击者会根据 HTML实体编码、URL编码、Unicode编码等进行编码然后欺骗用户点击访问。

而“存储型”攻击者则会通过抓包工具或者是直接调用接口的方式想尽一切办法来向后端数据库注入数据。常见的地方就是留言评论或者是含有表单提交的地方。

三.一个简单的反射型XSS攻击实例

这是一个简单的网站,有一个输入名字的交互功能。

输入hello之后网站会回显给用户。

图形用户界面, 文本, 应用程序

描述已自动生成

网站源码如图

图形用户界面, 文本, 应用程序

描述已自动生成

我们会发现自己输入的hello在网页源码上有显示

图形用户界面, 文本, 应用程序

描述已自动生成

这时我们可以用一些html标签测试一下,例如<h1>

图形用户界面, 文本, 应用程序

描述已自动生成

结果发现网页并没有显示welcome*<h1>hello*,而是如图所示

图形用户界面, 文本, 应用程序

描述已自动生成

网页源码如下

文本

描述已自动生成

我们可以发现我们打的<h1>被网页当成了标签并进行了解析。

下一步我们可以尝试输入一些js代码。例如<script>alert(1)</script>

图形用户界面, 文本, 应用程序

描述已自动生成

结果发现网站解析了我们打的js代码,进行了弹窗

图形用户界面, 文本, 应用程序

描述已自动生成

此时网页源代码如下

文本

描述已自动生成

四.对简单反射型XSS攻击常用防御手段

1.str_replace函数

使用str_replace函数,如str_replace('<script>',' ',$name);

将<script>标签替换为空

2.preg_replace() 正则替换

如$name=preg_replace('/<(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t/i',' ',$name);

只要中间插入有<,s,c,r,i,p,t,都会将它们匹配为空,最后面的i起到的是忽略大小写的作用。

3.htmlspecialchars(string):

把预定义的字符"<",">",&,',"转换为HTML实体,防止浏览器将其作为HTML元素

如$name=htmlspecialchars($name)

标签:xss,网页,name,XSS,攻击,基础,replace,攻击者
From: https://www.cnblogs.com/qian23/p/17755712.html

相关文章

  • Unittest测试框架基础及进阶
    需求假设领导让你开发一个接口测试框架。领导提出了一些新的需求,你如何实现?支持用例优先级、标签,支持通过优先级或标签筛选用例支持用例负责人、迭代,及通过负责人或迭代筛选用例支持多环境配置支持超时及重试机制,防止不稳定用例并发执行用例以提高用例回归效率Unitt......
  • Lab1:数据组织基础方法及创新应用(基础)
    1.数组定义及简单使用1)分别定义一个int型一维数组和二维数组,并通过输出验证各种初始化方法;#include<bits/stdc++.h>usingnamespacestd;#definelllonglongconstintINF=0x3f3f3f3f,N=5;inta[15],b[15][15];voidwork1()//循环初始化数组{for(inti=1;i<=N;......
  • Pytest测试框架基础及进阶
    Pytest测试框架基础Pytest测试框架介绍Pytest是Python一款三方测试框架,用于编写和运行单元测试、集成测试和功能测试。Pytest测试框架具有简单、灵活、易于扩展等特点,被广泛应用于Python项目的测试工作中。Pytest主要特点:简单易用:Pytest测试框架的API简单易用,可以快速编写测......
  • tar命令的基础使用(笔记)
    tar命令的基础使用tar[选项][文件]基本操作exam:tar-cfarchive.tarfoobar#归档tar-tvfarchive.tar#列出归档tar-xfarchive.tar#解包选项作用-c创建-t列出归档内容-f指定文件-x从归档中解出文件-v显示更多......
  • 通俗理解GAN -- 基础认知
     Smiling&Weeping----你已春风摇曳,我仍一身旧雪 1.GAN的基本思想GAN全称对抗生成网络,顾名思义是生成模型的一种,而他的训练则是一种对抗博弈状态中的。下面我们举例来解释一下GAN的基本思想。假如你是一名篮球运动员,你想在下次比赛......
  • 踏上软件基础道路
    这个作业属于哪个课程https://edu.cnblogs.com/campus/zjlg/23rjjsjc这个作业的目标<介绍自己>姓名-学号<俞轶钻>-<2021330301030>我叫俞轶钻,我喜欢阅读悬疑科幻小说,目前我是一个普通的在校大学生,学习着不感兴趣的感兴趣的各种内容,在这近两年的时间里,我掌握了C......
  • MySQL基础命令
    一)基础命令1)对数据库的操作1.使用use库名;2.创建createdatabase库名;3.删除dropdatabase库名;4.显示数据库,表showdatabases;showtables;2)对数据表的操作1.创建表createtable表名(字段字段类型,idint,namevarchar(32));2.删除表droptable表名;3.修改表名altertable......
  • CSRF 攻击原理与防御
    定义跨站请求伪造,攻击者利用服务器对用户信任,从而欺骗受害者点击vps上的恶意请求链接。与xss的区别xss是利用用户对服务端的信任;csrf利用服务端对用户的信任xss攻击是让脚本在用户浏览器上执行,服务端只是恶意脚本的载体;csrf攻击不需要知道用户cookie,让受害者点击我们准备......
  • Eureka基础
    学习自:Eureka入门教程-基础篇|Clay的技术空间Eureka入门教程-知乎Eureka之使用详解_eureka使用-CSDN博客16图|实战Eureka集群搭建+服务注册+调用-知乎k8s发布Springcloud+eureka架构服务优雅启动停止方案-枫&vce-博客园1、简介CAP定理在了解Eureka之前......
  • 前端面试八股文 工程化+性能优化+计算机基础
    前端面试八股文工程化+性能优化+计算机基础前端页面性能如何优化?以下是一些前端性能优化的常用方法:减少资源加载时间:这可以通过多种方式实现,比如压缩和合并CSS和JavaScript文件,使用CDN(内容分发网络)来快速传输资源,以及使用浏览器缓存来避免重复下载。优化图片:图片通常是网页......