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.rhkb.cn/news/28578.html

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

相关文章

【Liunx专栏_3】Liunx进程概念知识点

文章目录 前言1、冯诺依曼体系结构2、操作系统2.1、系统调用 3、进程3.1、进程概念3.2、进程描述—PCB3.3、查看进程信息3.4、通过系统调用获取进程标识符3.5、通过系统调用创建子进程—fork() 4、进程状态5、僵尸进程6、孤儿进程7、进程优先级7.1、PRI和NI是什么&#xff1f;7…

Nacos简介、安装与使用(保姆级教程!!!)

目录 一、Nacos 简介 1. 什么是 Nacos 2. Nacos 的核心功能 3. Nacos 的优势 二、Nacos 安装 1. 环境准备 2. 下载 Nacos 3. 解压安装包 4. 启动 Nacos 三、Nacos 使用 1. 服务注册与发现 &#xff08;1&#xff09;引入依赖 &#xff08;2&#xff09;配置 Nacos…

多线程JUC(二)

目录 一、等待唤醒机制1.生产者消费者2.阻塞队列3.线程的状态 二、线程池1.理解与使用2.自定义线程池 三、线程池额外知识 一、等待唤醒机制 1.生产者消费者 等待唤醒机制可以简单的理解为下图。厨师相当于生产者&#xff0c;吃货相当于消费者。当桌子&#xff08;缓冲区&…

【仿muduo库one thread one loop式并发服务器实现】

文章目录 一、项目介绍1-1、项目总体简介1-2、项目开发环境1-3、项目核心技术1-4、项目开发流程1-5、项目如何使用 二、框架设计2-1、功能模块划分2-1-1、SERVER模块2-1-2、协议模块 2-2、项目蓝图2-2-1、整体图2-2-2、模块关系图2-2-2-1、Connection 模块关系图2-2-2-2、Accep…

关于tresos Studio(EB)的MCAL配置之GPT

概念 GPT&#xff0c;全称General Purpose Timer&#xff0c;就是个通用定时器&#xff0c;取的名字奇怪了点。定时器是一定要的&#xff0c;要么提供给BSW去使用&#xff0c;要么提供给OS去使用。 配置 General GptDeinitApi控制接口Gpt_DeInit是否启用 GptEnableDisable…

STM32Cubemx配置E22-xxxT22D lora模块实现定点传输

文章目录 一、STM32Cubemx配置二、定点传输**什么是定点传输&#xff1f;****定点传输的特点****定点传输的工作方式****E22 模块定点传输配置****如何启用定点传输&#xff1f;****示例** **应用场景****总结** **配置 1&#xff1a;C0 00 07 00 02 04 62 00 17 40****解析** …

多线程-线程本地变量ThreadLocal

简介 ThreadLocal是线程本地变量&#xff0c;用于存储独属于线程的变量&#xff0c;这些变量可以在同一个线程内跨方法、跨类传递。每一个ThreadLocal对象&#xff0c;只能为当前线程关联一个数据&#xff0c;如果要为当前线程关联多个数据&#xff0c;就需要使用多个ThreadLo…

Python练习(握手问题,进制转换,日期问题,位运算,求和)

一. 握手问题 代码实现 ans0for i in range(1,51):for j in range(i1,51):if i<7 and j<7:continueelse:ans 1print(ans) 这道题可以看成是50个人都握了手减去7个人没握手的次数 答案&#xff1a;1204 二.将十进制整数拆解 2.1门牌制作 代码实现 ans0for i in ra…

DeepSeek 角色设定与风格控制

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编…

网络原理--HTTP协议

http中文名为超文本传输协议&#xff0c;所谓“超文本”就是指传输范围超出了能在UTF8等码表上找到的字符的范围&#xff0c;包含一些图片&#xff0c;特殊格式之类的。 HTTP的发展简介 从图中可以看出到现在已经发展出了HTTP3&#xff0c;但是市面上的主流还是以HTTP1.0为主。…

学习工具的一天之(burp)

第一呢一定是先下载 【Java环境】&#xff1a;Java Downloads | Oracle 下来是burp的下载 Download Burp Suite Community Edition - PortSwigger 【下载方法二】关注的一个博主 【BurpSuite 安装激活使用详细上手教程 web安全测试工具】https://www.bilibili.com/video/BV…

Java后端高频面经——Mysql

3. Mysql(21) 第三范式的作用与原理&#xff1f;&#xff08;B站&#xff09; 数据库范式有 3 种&#xff1a; 1NF(第一范式)&#xff1a;属性不可再分。 1NF 是所有关系型数据库的最基本要求 &#xff0c;也就是说关系型数据库中创建的表一定满足第一范式。 2NF(第二范式)&am…

React:Router路由

ReactRouter引入 在index.js里编辑&#xff0c;创建路由&#xff0c;绑定路由 import React from react; import ReactDOM from react-dom/client; import ./index.css; import reportWebVitals from ./reportWebVitals; import { createBrowserRouter, RouterProvider } from…

什么是XSS

文章目录 前言1. 前端知识2. 什么是XSS3. 漏洞挖掘4. 参考 前言 之前对XSS的理解就是停留在弹窗&#xff0c;认为XSS这种漏洞真的是漏洞吗&#xff1f;安全学习了蛮久了&#xff0c;也应该对XSS有更进一步的认识了。 1. 前端知识 现代浏览器是一个高度复杂的软件系统&#xf…

字节跳动发布 Trae AI IDE!支持 DeepSeek R1 V3,AI 编程新时代来了!

3 月 3 日&#xff0c;字节跳动重磅发布国内首款 AI 原生集成开发环境&#xff08;AI IDE&#xff09;——Trae 国内版&#xff01; Trae 不只是一个传统的 IDE&#xff0c;它深度融合 AI&#xff0c;搭载 doubao-1.5-pro 大模型&#xff0c;同时支持DeepSeek R1 & V3&…

QT 作业 day4

作业 代码 Widget.h class Widget : public QWidget {Q_OBJECTpublic:Widget(QWidget *parent nullptr);~Widget();private slots:// 槽函数void on_listWidget_itemDoubleClicked(QListWidgetItem *item);private:Ui::Widget *ui; }; #endif Widget.cpp Widget::Widget(QW…

新版 FMEA 七步法 - PFMEA 第2步“结构分析”的关键要点 | FMEA软件

基于AIAG & VDA FMEA七步法&#xff0c;在 PFMEA 第二步“结构分析”中&#xff0c;FMEA软件 CoreFMEA 总结了关键要点如下&#xff1a; 1. 明确分析目的与范围 界定边界&#xff1a;清晰确定要分析的制造系统边界&#xff0c;明确哪些过程、设备、人员等包含在分析范围内…

DeepSeek 助力 Vue3 开发:打造丝滑的时间选择器(Time Picker)

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦 💕 目录 DeepSeek 助力 Vue3 开发:打造丝滑的时间选择器(Time Picker)📚前言📚页面效果📚指令输入…

Python-04BeautifulSoup网络爬虫

2025-03-04-BeautifulSoup网络爬虫 记录BeautifulSoup网络爬虫的核心知识点 文章目录 2025-03-04-BeautifulSoup网络爬虫 [toc]1-参考网址2-学习要点3-核心知识点1. 安装2. 导入必要的库3. 发送 HTTP 请求4. 创建 BeautifulSoup 对象5. 解析 HTML 内容5.1 查找标签5.2 根据属性…

[Windows] 多系统键鼠共享工具 轻松跨系统控制多台电脑

参考原文&#xff1a;[Windows] 多系统键鼠共享工具 轻松跨系统控制多台电脑 还在为多台电脑需要多套键盘鼠标而烦恼吗&#xff1f;是不是在操控 Windows、macOS、Linux 不同系统电脑时手忙脚乱&#xff1f;现在&#xff0c;这些问题通通能解决&#xff01;Deskflow 软件闪亮登…