xss笔记与打靶(更新中)

这个文章好
https://blog.csdn.net/huangyongkang666/article/details/123624164?fromshare=blogdetail&sharetype=blogdetail&sharerId=123624164&sharerefer=PC&sharesource=2401_88818565&sharefrom=from_link

什么是xss

XSS(跨站脚本攻击,Cross-Site Scripting)是一种常见的网络安全漏洞,攻击者在网页中嵌入客户端脚本,通常是js编写的危险代码,当用户使用浏览器浏览网页时,脚本就会在用户的浏览器上执行,从而达到攻击者的目的。XSS 通常用于窃取用户信息、会话劫持、篡改网页内容或传播恶意软件。

如:盗取网站保存的cookie登陆其他用户,摄像头拍照

  1. 需要有xss接受平台
  2. 生成一段js文件
  3. 找到由xss漏洞的地方,植入js
  4. 等待受害者访问

发送的网址不要点,用虚拟机点

相关问题

网站:正常网站(有xss漏洞)
xss平台:js文件下载
客户端浏览器
js执行
js可以操作cookie

跨站脚本攻击:执行了其他网址上的恶意js文件

如何区别是不是同一个网站:
https
http
浏览器根据同源策略判断这两个是不是同一个网站

同源策略:
协议 + 主机(域名/IP) + 端口,任何一个地方不一样就不是同一个网站

浏览器是根据同源策略来单独存储每一个网站的cookie

漏洞产生原因

前端传入的数据没有做处理,变成了html的一部分来处理

处理指的是编码处理。
<变成了&lt;

在html语言里很注重<>
如何让语句里出现尖括号,用html实体符号

显示结果描述实体名称实体编号
空格&nbsp;&#160;
<小于号&lt;&#60;
>大于号&gt;&#62;

xss漏洞的危害

  1. 对于访问量小的网站,发生xss漏洞没什么用。一般在各类的社交平台,邮件系统,开源流行的web应用,博客等。造成的杀伤力十分强大。
  2. 劫持用户cookie是常见的跨站攻击形式,通过在网页中写入并执行脚本执行文件(多数情况下是js脚本代码),劫持用户浏览器,将用户当前使用的sessionID信息发送到攻击这控制的网站或服务器中
  3. “框架钓鱼”,利用js脚本的基本功能之一:操作网页的DOM树结构和内容,在网页中通过js脚本,生成虚假的页面,欺骗用户执行操作,而用户所有的输入内容会被发送到攻击者的服务器上。
  4. 挂马(水坑攻击)
  5. 有局域性的键盘记录

xss分类

  1. 反射型
  2. 存储型
  3. DOM型

挖漏洞,点到为止用alter()

反射型

中危漏洞
把http请求发送后又回到客户端前端代码中。

必须要点击url,http

别乱点什么别人发的网址

出现位置:搜索框

存储型

留言,到数据库

先有一个人,把数据存进数据库,又有人访问时,将数据库里的数据返回到客户端浏览器。

高危漏洞。

进入网站就触发

DOM型

js代码弹窗
alert
href
prompt(1)
能看懂前端js代码,不需要给服务器发http请求

xss漏洞存在位置

  1. 搜索框
  2. 登录框
  3. 发表评论/发表文章
  4. 其他输入框

常见的执行xss的html标签

xss执行方法:

  1. 使用<script>alert(111)</script>
    有的客户端会有过滤,将script替换为空
  2. <img src=xx onerror="alert(111)">
  3. <a href=xx onclick="alert(111)"></a>
  4. <svg olnload="alert(111)">
  5. 可以去网上搜索‘

xss防御

xss防御的总体思路是:对输入进行过滤,单引号,双引号,尖括号之类,对输入进行编码

过滤:根据业务需求进行过滤,比如输入点要求输入手机号,则只允许输入手机号格式的数字

转义:所有输出到前端的数据都是根据输出点进行转义,比如输入到html中进行html实体转义,输入到js里面的进行js转义

xss之href输出绕过:javascript:alert(111),直接带入a标签href里面一样可以绕过htmlspecialchars,如果没有用户提交的数据交给a标签,其实很难绕过

xss-labs

1

url?name=

2 转义

再试一下1没成功
看到网页源码,发现特殊符号没有转义

">  <script>alert()</script>

3 onclick

先试一下
看看源代码,这里是单引号闭合,并且符号被实体化

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

没对’设置,可以用onfocus或者onclick

js’ οnclick=‘alert(111)’
'将value闭合
但是我再搜索框中不行,闭合不了,但再开发者工具里编辑html元素可以

4

这里和3一样,不过将’改为"就行

5 a href

我咋感觉f12中,找到需要更改的位置编辑为html元素就行

正常先试试3的payload发现不行,所有带on的语句在on中间会加入_,那这里用a href标签
" > <"

6 大小写

这一关href也不行了
过滤了好多,看看大小写能不能绕过

发现大小写没有被过滤掉,这题能利用大小写进行绕过,所以我们可以用下面的方法,构造payload

用上面的改成部分大写
“> <”

7 的、双写

先上关键字试试看
由源码
这里面进行了小写转化,将检测出来的on,script,href给删掉了,但是没有关系,我们可以利用双拼写来绕过。

我是l" oonnclick=‘alert(123)’

8 编码

输入的值在两个,input标签,href属性

看看过滤了啥关键字

input标签添加了html实体转化函数还把双引号也给实体化了, 添加了小写转化函数,还有过滤掉了src、data、onfocus、href、script、"

利用href的隐藏属性自动Unicode解码,将之前的payload编码

javascript:alert(123)

9

这一关有检查,需要向传入的值里面添加http://并用注释符注释掉否则会执行不了无法弹窗

javascript:alert()/* http:// */

10 隐藏传参

没搜索框

看到源代码,有隐藏传参,并过滤掉了<>号,不能闭合插入标签,但是我们还能用on
click事件,因为这里输入框被隐藏了,需要添加type=“text”

?t_sort="οnclick=‘alert(11)’ type="text

11 referer抓包

试试和上一关一样的
发现被转义
?t_sort="οnclick=‘alert(11)’ type="text
其他的传参也试试了发现不行

难搞查了一下,t_ref的标签是http头referer的参数(就是由啥地址转跳到这里的,http头的referer会记录有)

那进行抓包传参
把大于小于号><给删掉了

抓包之后构造请求

Referer:js" οnclick=‘alert(111)’ type="text

12 User-Agent

和11一样看到网页源代码可以看到,t_ua

在User-Agent中清除加入:js" οnclick=‘alert(111)’ type="text

13 cookie

t_cook,想到cookie
f12
cookie名为user,我们直接在这里改一下就好

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

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

相关文章

Visual Studio 2022新建c语言项目的详细步骤

步骤1&#xff1a;点击创建新项目 步骤2&#xff1a;到了项目模板 --> 选择“控制台应用” (在window终端运行代码。默认打印"Hello World") --> 点击 “下一步” 步骤3&#xff1a;到了配置新项目模块 --> 输入“项目名称” --> 更改“位置”路径&…

SQL进阶技巧:上课时长计算

目录 0 问题描述 1 数据准备 2 问题解决 核心难点 时间区间标记与分组 区间合并与时长计算

HashMap 在多线程环境下可能引发哪些问题?如何解决?

HashMap 在多线程环境下可能引发哪些问题&#xff1f; 答案&#xff1a; 在多线程同时操作 HashMap 时&#xff0c;可能引发 死循环、数据丢失、脏数据读取 等问题。 根本原因&#xff1a; HashMap 的设计是非线程安全的&#xff0c;多线程并发修改其结构&#xff08;如扩容、…

告别GitHub连不上!一分钟快速访问方案

一、当GitHub抽风时&#xff0c;你是否也这样崩溃过&#xff1f; &#x1f621; npm install卡在node-sass半小时不动&#x1f62d; git clone到90%突然fatal: early EOF&#x1f92c; 改了半天hosts文件&#xff0c;第二天又失效了... 根本原因&#xff1a;传统代理需要复杂…

【软考-架构】2.1、操作系统概述-进程管理-同步互斥

✨资料&文章更新✨ GitHub地址&#xff1a;https://github.com/tyronczt/system_architect 文章目录 操作系统知识操作系统概述进程组成和状态&#x1f4af;考试真题前趋图进程资源图&#x1f4af;考试真题问题1问题2 ✨【重点】进程同步与互斥✨&#x1f4af;考试真题问题…

基于开源库编写MQTT通讯

目录 1. MQTT是什么&#xff1f;2. 开发交互UI3. 服务器核心代码4. 客户端核心代码5. 消息订阅与发布6. 通讯测试7. MQTT与PLC通讯最后. 核心总结 1. MQTT是什么&#xff1f; MQTT&#xff08;Message Queuing Terlemetry Transport&#xff09;消息队列遥测协议&#xff1b;是…

在VScode下配置C/C++环境(tasks.json、launch.json、c_cpp_properties.json)

文章目录 1. tasks.json、launch.json配置文件中参数(属性)的说明2. tasks.json介绍3. launch.json介绍4. 直接生成tasks.json、launch.json配置文件的另外一种方式5. c_cpp_properties.json介绍6. 运行多个C/C文件7. 命令行方式编译C 1. tasks.json、launch.json配置文件中参数…

ORB-SLAM2源码学习(六):相机跟踪(局部地图跟踪和关键帧创建)

目录 1.局部地图跟踪 1.1 更新局部关键帧UpdateLocalKeyFrames 1.2 更新局部地图点&#xff08;来自局部关键帧&#xff09;UpdateLocalPoints() 1.3 投影匹配 2. 对比四种跟踪方式以及使用的投影匹配 3.关键帧创建 3.1 判断是否需要创建新关键帧: NeedNewKeyFrame() 3…

PostgreSQL时间计算大全:从时间差到时区转换(保姆级教程)

一、时间计算的三大核心场景 当你遇到这些需求时&#xff0c;本文就是你的救星&#x1f31f;&#xff1a; 倒计时功能&#xff1a;计算活动剩余天数 用户行为分析&#xff1a;统计操作间隔时间 跨国系统&#xff1a;多时区时间统一管理 报表生成&#xff1a;自动计算同比/环…

Qt6.8.2创建WebAssmebly项目使用FFmpeg资源

Qt6新出了WebAssmebly功能&#xff0c;可以将C写的软件到浏览器中运行&#xff0c;最近一段时间正在研究这方便内容&#xff0c;普通的控件响应都能实现&#xff0c;今天主要为大家分享如何将FFmpeg中的功能应用到浏览器中。 开发环境&#xff1a;window11&#xff0c;Qt6.8.2…

DeepSeek V3 源码:从入门到放弃!

从入门到放弃 花了几天时间&#xff0c;看懂了DeepSeek V3 源码的逻辑。源码的逻辑是不难的&#xff0c;但为什么模型结构需要这样设计&#xff0c;为什么参数需要这样设置呢&#xff1f;知其然&#xff0c;但不知其所以然。除了模型结构以外&#xff0c;模型的训练数据、训练…

【leetcode hot 100 240】搜索二维矩阵Ⅱ

解法一&#xff1a;直接查找 class Solution {public boolean searchMatrix(int[][] matrix, int target) {for(int i0; i<matrix.length; i){for(int j0; j<matrix[0].length; j){if(matrix[i][j]>target){break;}if(matrix[i][j]target){return true;}}}return fal…

UE4 组件 (对话组件)

制作一个可以生成对话气泡&#xff0c;显示对话台词的简单组件。这个组件要的变量&#xff1a;台词&#xff08;外部传入&#xff09;。功能&#xff1a;开始对话&#xff08;生成气泡UI&#xff09; &#xff0c;结束对话。 一、对话组件创建 二、开始对话事件 1、注意这里获…

自动化同步多服务器数据库表结构

当项目每次进行版本升级的时候&#xff0c;如果在这次迭代中涉及表结构变更&#xff0c;需要将不同的生产环境下&#xff0c;都需要同步表结构的DDL语句&#xff0c;比较麻烦&#xff0c;而且还有可能忘记同步脚本&#xff0c;导致生产环境报错.... 该方案采用SpringBootMybat…

DeepSeek安全:AI网络安全评估与防护策略

&#x1f345; 点击文末小卡片 &#xff0c;免费获取网络安全全套资料&#xff0c;资料在手&#xff0c;涨薪更快 本文基于现有的公开资料&#xff0c;从企业资深网络安全专家的视角&#xff0c;系统梳理DeepSeek技术在网络安全领域的潜在贡献与核心风险&#xff0c;并结合中国…

【论文笔记】Attentive Eraser

标题&#xff1a;Attentive Eraser: Unleashing Diffusion Model’s Object Removal Potential via Self-Attention Redirection Guidance Source&#xff1a;https://arxiv.org/pdf/2412.12974 收录&#xff1a;AAAI 25 作者单位&#xff1a;浙工商&#xff0c;字节&#…

【powerjob】 powerjobserver注册服务IP错误

1、问题&#xff1a;powerjobserver 4.3.6 的服务器上有多个网卡对应多个ip,示例 eth0 :IP1 &#xff0c;docker0:IP2 和worker 进行通信时 正确的应该时IP1 但是注册显示获取的确实IP2,导致 worker 通过ip2和server通信&#xff0c;网络不通&#xff0c;注册不上 2、解决方案 …

视频录像机视频通道是指什么

视频录像机的视频通道是指摄像机在监控矩阵或硬盘录像机设备上的视频输入的物理位置。 与摄像头数量关系&#xff1a;在视频监控系统中&#xff0c;有多少个摄像头就需要多少路视频通道&#xff0c;通道数量决定了视频录像机可接入摄像头的数量&#xff0c;一般硬盘录像机有4路…

面试150,数组 / 字符串

27. 移除元素 class Solution:def removeElement(self, nums: List[int], val: int) -> int:# 把不等于 val 的值移动到前面n len(nums)left 0for right in range(n):if nums[right] ! val:nums[left] nums[right]left 1return left26. 删除有序数组中的重复项 只保留 1…

【江科大STM32】TIM输入捕获模式PWMI模式测频率

一、输入捕获测频率 接线图&#xff1a; 测信号的输入引脚为PA6&#xff0c;信号从PA6进来&#xff0c;待测的PWM信号也是STM32自己生成的&#xff0c;输出引脚是PA0&#xff0c;所以接线这里直接用一根线将PA0引到PA6就可以了。 如果有信号发生器的话&#xff0c;也可以设置成…