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>

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

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

相关文章

Unity3D下如何播放RTSP流?

技术背景 在Unity3D中直接播放RTSP&#xff08;Real Time Streaming Protocol&#xff09;流并不直接支持&#xff0c;因为Unity的内置多媒体组件&#xff08;如AudioSource和VideoPlayer&#xff09;主要设计用于处理本地文件或HTTP流&#xff0c;而不直接支持RTSP。所以&…

【话题讨论】AI时代程序员核心力:技术深耕,跨界学习,软硬兼备

目录 引言 一、AI辅助编程对程序员工作的影响 1.1 AI工具如何提升工作效率 1.2 AI工具的风险 1.3 应对策略 二、程序员应重点发展的核心能力 2.1 核心竞争力 2.2 企业和教育机构的调整 三、人机协作模式下的职业发展规划 3.1 持续学习的重要性 3.2 选择适合自己的…

Python3网络爬虫开发实战(17)爬虫的管理和部署(第一版)

文章目录 一、 Scrapyd 分布式部署1.1 了解 Scrapyd1.2 准备工作1.3 访问 Scrapyd1.4 Scrapyd 的功能1.5 ScrapydAPI 的使用 二、Scrapyd-Client 的使用2.1 准备工作2.2 Scrapyd-Client 的功能2.3 Scrapyd-Client 部署 三、Scrapyd 对接 Docker3.1 准备工作3.2 对接 Docker 四、…

Java Web服务运行一段时间后出现cpu升高导致的性能下降问题排查

背景 有个web服务&#xff0c;运行一段时间后&#xff0c;出现cpu逐渐占用高&#xff0c;服务处理请求整体性能下降问题。 异常情况时&#xff0c; 同时jvm的cpu上涨 最终表现为&#xff0c;处理内部逻辑执行耗时变高。 排查原因 原来服务的jvm启动参数带了 -XX:-TieredCom…

Java项目实战II基于Java+Spring Boot+MySQL的校园社团信息管理系统(源码+数据库+文档)

目录 一、前言 二、技术介绍 三、系统实现 四、论文参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 在当今高校…

马匹行为识别系统源码分享

马匹行为识别检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vis…

计算机毕业设计 在线新闻聚合平台的设计与实现 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

&#x1f34a;作者&#xff1a;计算机编程-吉哥 &#x1f34a;简介&#xff1a;专业从事JavaWeb程序开发&#xff0c;微信小程序开发&#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事&#xff0c;生活就是快乐的。 &#x1f34a;心愿&#xff1a;点…

【计算机毕设-大数据方向】基于Hadoop的智能交通数据分析可视化系统的设计与实现

&#x1f497;博主介绍&#xff1a;✌全平台粉丝5W,高级大厂开发程序员&#x1f603;&#xff0c;博客之星、掘金/知乎/华为云/阿里云等平台优质作者。 【源码获取】关注并且私信我 【联系方式】&#x1f447;&#x1f447;&#x1f447;最下边&#x1f447;&#x1f447;&…

Redis的存储原理和数据模型

一、Redis是单线程还是多线程呢&#xff1f; 我们通过跑redis的代码&#xff0c;查看运行的程序可以得知&#xff0c;Redis本身其实是个多线程&#xff0c;其中包括redis-server&#xff0c;bio_close_file&#xff0c;bio_aof_fsync&#xff0c;bio_lazy_free&#xff0c;io_t…

Mina protocol - 体验教程

Mina protocol - 体验教程 一、零知识证明( Zero Knowledge Proof )1、零知识证明&#xff08;ZKP&#xff09;的基本流程工作流程&#xff1a; 2、zkApp 的优势&#xff1a;3、zkApp 每个方法的编译过程&#xff1a; 二、搭建第一个zkapp先决条件1、下载或者更新 zkApp CLI​2…

Chainlit集成LlamaIndex实现知识库高级检索(句子窗口节点检索)

检索原理 句子窗口检索原理 通常在执行基础的RAG检索时我们会将文档按指定的块大小(chunk_size)进行切割&#xff0c;然后进行embedding的向量化处理后存入向量数据库中&#xff0c;在检索时我们会计算用户问题(question) 与文档块的相似度&#xff0c;并选取K个最相似的文档(…

LeetCode[中等] 49.字母异位词分组

给你一个字符串数组&#xff0c;请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 思路&#xff1a; new Dictionary<string, List<string>>() 存储数据&#xff0c;key为排序之后的字符…

2024年9月18日历史上的今天大事件早读

1043年9月18日 范仲淹实行改革 1393年9月18日 “活财神”沈万三逝世 1783年9月18日 瑞士著名数学家欧拉逝世 1851年9月18日 《纽约时报》创刊 1903年9月18日 清末爱国将领冯子材逝世 1917年9月18日 护法战争爆发 1931年9月18日 “九一八”事变爆发 1936年9月18日 阎锡山…

澳元/美元价格:进一步上涨看向美联储

澳元/美元在0.6700关口附近波动不定。美元因美国经济数据强劲而重新获得上行动力。接下来&#xff0c;澳大利亚将公布西太平洋领先指数。 美元的再度走强使风险敏感资产承压&#xff0c;澳元/美元周二维持在0.6700关口上方的小幅区间内。尽管美元反弹&#xff0c;澳元仍成功维…

深入解析代理模式:静态代理、JDK 动态代理和 CGLIB 的全方位对比!

代理模式&#xff08;Proxy Pattern&#xff09;是一种结构型设计模式&#xff0c;它提供了对象的替身&#xff0c;即代理对象来控制对实际对象的访问。通过代理对象&#xff0c;可以在不修改目标对象的情况下&#xff0c;扩展或控制其功能。例如&#xff0c;代理模式可以用于延…

6个Python小游戏项目源码【免费】

6个Python小游戏项目源码 源码下载地址&#xff1a; 6个Python小游戏项目源码 提取码: bfh3

Python异常处理:自定义异常②

文章目录 1. 什么是自定义异常&#xff1f;2. 为什么需要自定义异常&#xff1f;3. 如何定义自定义异常&#xff1f;3.1 基本自定义异常3.2 带详细信息的自定义异常3.3 自定义异常的继承层次 4. 使用自定义异常4.1 抛出自定义异常4.2 捕获自定义异常 5. 自定义异常的应用场景5.…

【C/C++】涉及string类的经典OJ编程题

【C/C】涉及string类的经典OJ编程题 一. 把字符串转化成整数&#xff08;atoi&#xff09;解法一&#xff1a;&#xff08;不用long&#xff09;完整代码&#xff1a;解法二&#xff1a;&#xff08;用long&#xff09; 二.字符串相加代码实现&#xff08;含注释&#xff09;&a…

【UE5】使用2DFlipbook图作为体积纹理,实现实时绘制体积纹理【第一篇】

这是一篇对“Creating a Volumetric Ray Marcher-Shader Bits”的学习心得 文章时间很早&#xff0c;因此这里针对UE5对原文做出兼容性修正&#xff08;为避免累赘不做出注明。链接如上&#xff0c;有需要自行学习&#xff09; 以及最后对Custom做可能的蓝图移植&#xff0c;做…

【Android Studio】2024.1.1最新版本AS调试老项目(老版AS项目文件、旧gradle)导入其他人的项目

文章目录 实验环境开始修改项目文件1. 删除.gradle及.idea两个文件夹2.修改SDK路径&#xff08;本地SDK存放路径&#xff09;3.修改gradle版本4.修改gradle插件版本&#xff08;AGP&#xff09;5.修改JDK版本 实验环境 Android Studio 版本 项目版本 开始修改项目文件 1. 删…