Pikachu靶场之XSS

先来点鸡汤,少就是多,慢就是快。

环境搭建

攻击机kali 192.168.146.140

靶机win7 192.168.146.161

下载zip,pikachu - GitCode

把下载好的pikachu-master,拖进win7,用phpstudy打开网站根目录,.....再用kali访问

XSS攻击

反射型xss,一次性的攻击,

就是在html的源代码,插入了你自己的代码,如<script>alert(1)</script>,并执行

防范方式:

<script>alert(1)</script>

有长度限制

观察url,发现把/转义成%2F

把地址栏上的,补充完整,通过URL的方式将恶意代码嵌入

第二种方法,用开发者工具,点击这个输入框出现

更改长度限制,也能成功

反射XSS,post型,看一下提示,登录,获取cookie

<script>alert(document.cookie)</script>

存储型XSS,

会存储到服务器中,多次执行,其它用户访问这个界面也可以执行

在留言板里输入

DOM型xss,是特殊的反射型XSS

看一下源代码,依次是文本框、按钮、超链接(用户的输入,比如这里我输入的1)

<a> 标签定义超链接,用于从一张页面链接到另一张页面,herf属性,它指示链接的目的地

输入#' οnclick="alert(document.cookie)">,点击连接,弹出

这里的 # 是一个锚点,代表当前页面。当用户点击这个链接时,页面不会跳转到其他地方,而是会重新加载当前页面

当用户点击这个链接时,它会执行其中的JavaScript代码

一定要记住随时保存草稿,不然ctrl+z就全没了....

DOM型xss -x 

更上面那个一样,多点2次连接就行

XSS之盲打

两个留言框都可以实现存储XSS攻击,点击提示,登录后台,会弹出弹窗

XSS之过滤

会过滤掉<script>标签,用于嵌入客户端脚本,要么包含脚本语句,要么通过 src 属性 指向外部脚本文件,比如 <script src="path/to/your-script.js"></script>

xss 常用标签及绕过姿势总结 - FreeBuf网络安全行业门户

换个

<img src=1 οnerrοr="alert(1)">

成功

  

再换个<a href="" οnclick="alert('2')">

再点击连接

  

xss之htmlspecialchars

htmlspecialchars() 函数把预定义的字符转换为 HTML 实体(一段以连字号&开头、以分号;结尾的文本字符串),防止代码运行

预定义的字符是: & (和号)成为 &amp;  " (双引号)成为 &quot; 

' (单引号)成为 ' 

  < (小于)成为 &lt;    > (大于)成为 &gt;

看一下源码,οnclick=""多了个双引号

  

' οnclick='alert(2)' 去掉双引号 ,点击链接

  

xss之href输出

a标签的href属性,按道理应该能行的,但是点击没反应,说明代码没执行

  

看一下源代码,双引号和单引号都被编码了

  

[ 常见漏洞篇 ]常见web漏洞总结------XSS绕过方式-CSDN博客

javascript伪协议,不是真实存在的协议,它的功能是将JavaScript:后面的语句当做JavaScript代码在本页面执行,并不跳转到其他网页,而是结果返回给当前页面,相当于一个伪造的超链接,它经常与a标签一起使用,如<a href=javascript:alert(/xss/) > 点击我</a>

输入javascript:alert(1) 点击

  

xss之js输出

  

查看源码,变量 $ms 接收 用户输入的值

  

先输入</script>让<script> $ms=闭合,接着输入攻击代码

</script> <script>alert(1)</script>

  

总结

XSS原理

在网页前端界面,url和各种输入框,对用户的输入没做过滤和限制,用户输入<script>alert(document.cookie)</script>执行JS脚本或者<a herf="" οnclick='alert(1)'>test</a>

一个名为test的超链接 或者<img src=1 οnerrοr='alert(2)'>等各种,就是往网页html文档,写入你想执行的代码,就能执行,最好结合网站源码看,观察代码格式。

DOM是...

DOM型XSS,是一种特殊的反射型XSS,不经过服务器,不会被服务器检测,

防范

(1)htmlspecialchars函数把预定义的字符< > ' " / 转换为 HTML 实体,防止代码运行

(2) HTTP-only Cookie: 设置了HttpOnly属性的cookie不能通过JavaScript的Document.cookie对象访问,攻击者完成 XSS 注入后也无法窃取此Cookie。只通过HTTP(S)传输:HTTP-only cookie只能通过HTTP请求传输

(3)设置CSP,通过限制可以执行的脚本源,CSP可以防止恶意脚本在网页上执行。(限制脚本只能从同一个源加载,图片只能从特定的域加载,并且不允许内联脚本和样式)

(4)长度限制

(5)验证请求头的referer值,给出"引荐网页"的 URL

比如我在www.google.com 里有一个www.baidu.com 链接,那么点击这个www.baidu.com ,它的header 信息里就有:Referer=http://www.google.com,由此可以看出来:它就是表示一个来源

http请求头中Referer的含义和作用-CSDN博客

过滤<script>标签

绕过

(1)编码绕过,base64 ,十六进制,url编码等

(2)伪协议绕过,javascript:alert(1) 

(3)大小写绕过<SCript>

(4)注释干扰绕过<scri<!--test--> pt> alert(1);</scr<!--test--> ipt>

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

豆包MarsCode编程助手:产品功能解析与应用场景探索!

随着现代技术的不断进化升级&#xff0c;人工智能正在逐步改变着我们的日常工作方式。特别是对于复杂的项目&#xff0c;代码编写、优化、调试、测试等环节充满挑战。为了简化这些环节、提高开发效率&#xff0c;许多智能编程工具应运而生&#xff0c;豆包MarsCode 编程助手就是…

nodejs基础教程之-异步编程promise/async/generator

1. 异步 所谓"异步"&#xff0c;简单说就是一个任务分成两段&#xff0c;先执行第一段&#xff0c;然后转而执行其他任务&#xff0c;等做好了准备&#xff0c;再回过头执行第二段,比如&#xff0c;有一个任务是读取文件进行处理&#xff0c;异步的执行过程就是下面…

二、Kubernetes中pod的管理及优化

一 kubernetes 中的资源 1.1 资源管理介绍 在kubernetes中&#xff0c;所有的内容都抽象为资源&#xff0c;用户需要通过操作资源来管理kubernetes。 kubernetes的本质上就是一个集群系统&#xff0c;用户可以在集群中部署各种服务 所谓的部署服务&#xff0c;其实就是在kub…

【运维监控】Prometheus+grafana监控zookeeper运行情况

运维监控系列文章入口&#xff1a;【运维监控】系列文章汇总索引 文章目录 一、prometheus二、grafana三、prometheus集成grafana监控zookeeper1、修改zookeeper配置2、修改prometheus配置3、导入grafana模板4、验证 本示例通过zookeeper自带的监控信息暴露出来&#xff0c;然后…

Ceisum(SuperMap iClient3D for Cesium)实现平面裁剪

1&#xff1a;参考API文档&#xff1a;SuperMap iClient3D for Cesium 开发指南 2&#xff1a;官网示例&#xff1a;support.supermap.com.cn:8090/webgl/Cesium/examples/webgl/examples.html#layer 3&#xff1a;SuperMap iServer&#xff1a;欢迎使用 SuperMap iServer 11…

C语言---函数指针基础总结万字(4)

一、 函数 1.函数是一段可以重复执行的代码。 它可以接受不同的参数&#xff0c; 完成对应的操作。 下面的例子就是一个函数 int plus(int n) {return n; }上面的代码声明了一个函数plus()。 2.函数声明的语法有以下几点&#xff0c;需要注意。 返回值类型。 函数声明时&a…

每日奇难怪题(持续更新)

1.以下程序输出结果是() int main() {int a 1, b 2, c 2, t;while (a < b < c) {t a;a b;b t;c--;}printf("%d %d %d", a, b, c); } 解析:a1 b2 c2 a<b 成立 ,等于一个真值1 1<2 执行循环体 t被赋值为1 a被赋值2 b赋值1 c-- c变成1 a<b 不成立…

【油猴脚本】00006 案例 Tampermonkey油猴脚本自定义表格列名称,自定义表格表头,自定义表格的thead里的td

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 【油…

数据结构一:绪论

&#xff08;一&#xff09;数据结构的基本概念 1.相关名词 【1】数据 1.信息的载体&#xff0c;描述客观事物 2.能被输入到计算机中 3.能被计算机程序识别和处理的符号的集合。 【2】数据元素 1.数据的一个“个体” 2.数据的基本单位 3.有时候也被称为元素、结点、顶点…

【STM32】外部中断

当程序正常运行执行main函数&#xff0c;此时如果外部中断来了&#xff0c;执行外部中断函数&#xff0c;实现相应的功能&#xff0c;然后就可以回到main. 一般stm32芯片每个引脚都有自己的外部中断&#xff0c;但是为了限制&#xff0c;会有一个中断线&#xff0c;对应一个中断…

前端Excel热成像数据展示及插值算法

&#x1f3ac; 江城开朗的豌豆&#xff1a;个人主页 &#x1f525; 个人专栏:《 VUE 》 《 javaScript 》 &#x1f4dd; 个人网站 :《 江城开朗的豌豆&#x1fadb; 》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 目录 &#x1f4d8; 前言 &#x1f4d8;一、热成像数…

服务器数据增量迁移方案-—SAAS本地化及未来之窗行业应用跨平台架构

一、数据迁移增量同步具有以下几个优点&#xff1a; 1. 减少数据传输量&#xff1a;只传输自上次同步以来更改的数据&#xff0c;而不是整个数据集&#xff0c;这显著降低了网络带宽的使用和传输时间。 2. 提高同步效率&#xff1a;由于处理的数据量较小&#xff0c;同步过程…

MyBatis中Collection和Association的底层实现原理

MyBatis中Collection和Association的底层实现原理 Hi &#x1f44b;, Im shy 有人见尘埃&#xff0c;有人见星辰 技术咨询 引言 在 MyBatis 中&#xff0c;<collection> 和 <association> 标签用于处理一对多和一对一的关系。这两个标签在底层通过缓存、对象创…

以系统工程为指导的军品设计、开发与管理常用方法培训

课程背景&#xff1a; 产品开发和产品管理是组织经营战略的核心&#xff0c;而经营战略又为组织的创新战略、产品开发和产品管理提供了环境和方向。使命、愿景与核心价值观对于产品开发的聚焦点和管理方式都具有十分重要的作用。产品开发通常被称为组织的“血液”&#xff0c;…

node.js框架StrongLoop快速入门实战

目录 一、StrongLoop框架简介 二、安装StrongLoop框架 三、创建项目my-loopback-project 四、项目布局和结构 五、配置连接mysql数据库 六、实现自动生成api接口 一、StrongLoop框架简介 StrongLoop是一个强大的框架&#xff0c;它基于Node.js构建&#xff0c;几乎涵盖了…

《信息系统安全》课程实验指导

第1关&#xff1a;实验一&#xff1a;古典密码算法---代换技术 任务描述 本关任务&#xff1a;了解古典密码体制技术中的代换技术&#xff0c;并编程实现代换密码的加解密功能。 注意所有明文字符为26个小写字母&#xff0c;也就是说字母表为26个小写字母。 相关知识 为了完…

【开源免费】基于SpringBoot+Vue.JS高校心理教育辅导系统(JAVA毕业设计)

本文项目编号 T 031 &#xff0c;文末自助获取源码 \color{red}{T031&#xff0c;文末自助获取源码} T031&#xff0c;文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析5.4 用例设计 六、核…

JEE 设计模式

Java 数据访问对象模式 Java设计模式 - 数据访问对象模式 数据访问对象模式或DAO模式将数据访问API与高级业务服务分离。 DAO模式通常具有以下接口和类。 数据访问对象接口定义模型对象的标准操作。 数据访问对象类实现以上接口。可能有多个实现&#xff0c;例如&#xff0c…

LVGL学习

注&#xff1a;本文使用的lvgl-release-v8.3版本&#xff0c;其它版本可能稍有不同。 01 LVGL模拟器配置 day01-02_课程介绍_哔哩哔哩_bilibili LVGL开发教程 (yuque.com) 如果按照上述视频和文档中配置不成功的话&#xff0c;直接重装VsCode&#xff0c;我的就是重装以后就…

Git提交有乱码

服务器提交记录如图 可知application.properties中文注释拉黄线 &#xff0c;提示Unsupported characters for the charset ISO-8859-1 打开settings - Editor - File Encodings 因为我们项目的其他文件都是UTF-8&#xff0c;所以&#xff0c;我们将默认值都改成UTF-8 然后…