Web漏洞-XSS理论和靶场小试牛刀(一)

这篇具有很好参考价值的文章主要介绍了Web漏洞-XSS理论和靶场小试牛刀(一)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

1、简单了解HTML和JS基础

想要知道怎么XSS攻击,是需要了解一些HTML和JS基础知识点的,不然后面一些脚本注入会不清楚。HTML全称HyperText Markup Language超文本标记语言,HTML文档也可以叫做web页面,主要功能是实现页面跳转,显示数据。

1.1、HTML结构标准

<!doctype html> //声明文档类型,由渲染引擎解析
<html> //根标签
<head> //头部标签
<title></title> //标题标签 ,位于页面最上方定义浏览器工具栏中的标题
</head>
<body> // 主体标签,给用户、浏览者看
<!-- 在此处写注释 -->
</body>
</html>

层级关系说明

<head> </head>和<body> </body>为并列关系
<head> </head>和<title> </title> 为嵌套关系

1.2、HTML标签

HTML标签是HTML语言中最基本的单位,也是最重要的组成部分。 标签大小写无关,但推荐使用小写。标签可分为单标签(比如<br/>)和双标签(比如<h1></h1>)。

常见的单标签:

<br/> // 换行
<hr/> //水平分隔线
<img /> //图片标签
<input /> //输入标签
<meta /> //HTML文档的元数据,机器可读,如<meta charset=UTF-8”/

常见的双标签:

<html></html>
<head></head>
<title></title>
<body></body>
<h1></h1> //大标题
<p></p> //段落标签
<div></div> //块标签,对内容样式控制、实现布局效果
<a></a>		// <a href="https://www.baidu.com">百度</a>
<ul></ul> //列表标签
<form></form> //表单标签,用于用户输入创建HTML表单,向服务器传输数据
<select></select> //选项标签

1.3、JS(JavaScript)

JavaScript是一种直译式的脚本语言、是一种动态类型、弱类型、基于原型的语言,内置支持类型。它可以将文本动态放入HTML页面、读写HTML元素、对事件做出响应、可用来验证用户输入的数据、也可创建Cookies存储访问者计算机中的信息等。

百度百科定义
JavaScript(简称“JS”)是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。虽然它是作为开发Web页面的脚本语言而出名,但是它也被用到了很多非浏览器环境中,JavaScript基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式、声明式、函数式编程范式。

使用方式有两种

// 写在html的形式
<script> JavaScript的内容(123、'xss')</script>

// 引用文件的形式
<script type="text/javascript" src="js文件的路径" />

常用一些函数举例

<script>alert(1)</script>
<svg onload=alert(1)>
<img src=1 onerror=alert(1)>
<M onmouseover=alert(1)>M
<marquee onscroll=alert(1)>
<a href=javascript:alert(1)>M</a>
<body onload=alert(1)>
<details open ontoggle=alert(1)>
<embed src=javascript:alert(1)

更全面的学习可以到菜鸟教程学习,个人建议非专业前端开发人员快速了解学习就行。

2、XSS简介

XSS全称Cross Site Script,跨站脚本攻击,由于简写CSS与html的css样式重名,简称为XSS。属于web应用中计算机安全漏洞,是恶意的web访问者将脚本植入到提供给用户使用的页面中。一般使用JavaScript编写的危险代码,当用户使用浏览器访问页面时,脚本会被执行,从而达到攻击者目的。本质是恶意代码未经过滤,与网站正常的代码混在一起,浏览器无法分辨哪些脚本是可信的,导致恶意脚本被执行。

2.1、XSS攻击流程

一般包含5个节点:

1、攻击者查找目标网站或Web应用程序,尝试找到可以插入恶意脚本的漏洞点。

2、一旦攻击者找到了潜在的漏洞点,他们将准备好的恶意脚本插入到这些地方。

3、用户访问包含恶意脚本的页面,或者与包含恶意脚本的数据进行交互。

4、用户的浏览器接收到恶意脚本,并执行它。

5、恶意脚本可以执行多种操作,包括窃取用户的会话令牌、cookie、输入的敏感信息,或者将用户重定向到其他恶意网站。

Web漏洞-XSS理论和靶场小试牛刀(一)

(图片来源于网络)

3、XSS漏洞分类和利用

XSS漏洞可分为3类:反射型(非持续型)、存储型(持续型) 和DOM型。

3.1、反射型(非持续型)

全称:Reflected Cross-site Scripting,也称作非持久型、参数型跨站脚本,主要用于将恶意脚本附加到URL地址参数中。漏洞特征:一次性的、前端执行、不会存储到后端数据库中。危害等级:中。

反射型XSS攻击步骤:

  • 攻击者构造出包含恶意代码的URL。
  • 用户访问时,恶意代码会被拼接在HTML中返回给浏览器。
  • 用户浏览器接收到响应后解析执行,混在其中的恶意代码也被执行。
  • 窃取用户数据并发送到攻击者的网站,或冒充用户的行为执行攻击者指定的操作。

3.2、存储型(持续型)

全称:Stored Cross-site Scripting,攻击者事先将恶意JS代码上传或存储到漏洞服务器,当用户浏览含恶意JS代码的页面就会执行恶意代码,不需要用户单击特定URL就能执行跨站脚本。漏洞特征:持久性、前端执行、储存在后端数据库。危害等级:高。

存储型 XSS 的攻击步骤:

  • 攻击者将恶意代码提交到目标网站的数据库中。
  • 用户打开目标网站时,网站服务端将恶意代码从数据库取出,拼接在HTML中返回给浏览器。
  • 用户浏览器接收到响应后解析执行,混在其中的恶意代码也被执行
  • 窃取用户数据并发送到攻击者的网站,或冒充用户的行为执行攻击者指定的操作。

3.3、DOM型

DOM-based XSS发生在应用程序通过JavaScript操作页面DOM时,未对用户输入进行适当的过滤或转义,导致攻击者可以注入恶意脚本,进而影响其他用户。漏洞特征:一次性、前端执行、不会储存在后端数据库、程序执行不依赖服务器端的数据。危害等级:中。

与前两种类型的XSS区别,漏洞发生原因跟服务器解析无关,只是JS代码读取了URL内容导致,dom-xss取决于输出位置,并不取决于输出环境,因此dom-xss有可能是反射型的,也可能是存储型的。

4、靶场小试牛刀(一)

选择pikachu靶场的Cross-Site Scripting,实验选择反射型xss(get)。本文暂时给出一个攻击示例,其他类型的会有另外一篇分享。

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

测试验证内容

'<>?"&/6666

4.1、正常操作

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

Web漏洞-XSS理论和靶场小试牛刀(一)

4.2、查看源码

查看源码,发现输入的内容,是填充在p标签内,没有被编码。注意:文本框长度限制20
Web漏洞-XSS理论和靶场小试牛刀(一)

4.3、确定攻击poc

由于文本框长度限制20,攻击poc可用就变得很少了

<svg onload=alert(1)>

验证成功
Web漏洞-XSS理论和靶场小试牛刀(一)

5、资料获取

靶场环境搭建请参考《靶场环境搭建【XP、pikachu、dvwa、sqli-labs】》文章来源地址https://www.toymoban.com/news/detail-746108.html

到了这里,关于Web漏洞-XSS理论和靶场小试牛刀(一)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 运维Shell脚本小试牛刀(二)

    运维Shell脚本小试牛刀(一) 运维Shell脚本小试牛刀(二) 运维Shell脚本小试牛刀(三)::$(cd $(dirname $0); pwd)命令详解 [root@www shelldic]# cat checkpass.sh  #!/bin/bash - #================================================================================================================== # # #                          

    2024年02月10日
    浏览(36)
  • 快速上手kettle(二)小试牛刀

    目录 一 、前言 二 、两个小目标 三、 kettle核心概念介绍 3.1 转换 3.1.1 步骤(Step) 3.1.2 跳(Hop) 3.1.3 元素据 3.1.4 数据类型 3.1.5 并发执行 3.2 作业 四、实践操作 4.1 案例1 将csv文件转换成excel文件 4.1.1 在kettle中新建一个转换 4.1.2选择输入控件并设置 4.1.3 选择输出控件并设置 4.

    2024年02月06日
    浏览(43)
  • 【LED子系统】八、小试牛刀

    个人主页:董哥聊技术 我是董哥,高级嵌入式软件开发工程师,从事嵌入式Linux驱动开发和系统开发,曾就职于世界500强公司! 创作理念:专注分享高质量嵌入式文章,让大家读有所得!

    2024年02月06日
    浏览(40)
  • 小试牛刀 -- Kali Linux安装在手机

         Kali Linux是基于Debian的Linux的发行版,里面有许多关于网络渗透的程序,是目前在网络安全领域经常使用的工具,因此为了便于学习,在此进行Kali Linux的安装,主要安装在华为P50上,操作系统是鸿蒙4.0。    2.1 Termux的安装及配置        (1)Termux的安装        在安装Te

    2024年01月23日
    浏览(45)
  • 爬虫小试牛刀(爬取学校通知公告)

    完成抓取并解析DGUT通知公告12页数据,并提交excel文件格式数据,数据需要包含日期标题,若能够实现将详情页主体内容与发布人信息数据也一并抓取更佳 提交内容:Excel数据文件 首先看到页面呈现规则的各个方框,这意味着它们之间的一定是一样的 此处该有图 我们点开后

    2024年02月09日
    浏览(40)
  • 手动开发-实现SpringMVC底层机制--小试牛刀

    在这里说的底层机制的实现主要是指:前端控制器、Controller、Service注入容器、对象自动装配、控制器方法获取参数、视图解析、返回json数据。 前端控制器就是核心控制器。在这里我们可以设计一个Servlet来充当核心控制器: LingDispatcherServlet.java .这个控制器的作用主要是接收

    2024年02月08日
    浏览(48)
  • Python OpenCV 牛刀小试(练习)

            OpenCV在读取图像时,默认的颜色空间是BGR(蓝绿红),而在大多数其他的图像处理库和图像格式中,使用的颜色空间是RGB(红绿蓝)。因此,当你需要使用OpenCV处理图像,然后将处理结果传递给其他库(如matplotlib、PIL等)进行进一步处理或显示时,你需要将颜色空间

    2024年02月21日
    浏览(38)
  • 牛刀小试---二分查找(C语言)

    二分查找,也叫折半查找,是一种在 有序数组 中查找特定元素的算法。它通过比较中间元素和目标值的大小,将查找范围缩小为一半,直到找到目标元素或者查找范围为空。  1. 确定搜索范围:首先,需要确定要在哪个区间内进行查找。这可以通过比较目标值与中间元素的

    2024年01月17日
    浏览(36)
  • 代码还原小试牛刀(一):魔改的MD5

    2023年了,MD5已经是最基础的签名算法了,但如果你还只是对输入做了简单的MD5,肯定会被同行们嘲笑。加点盐(salt)是一种基本的提升,但在这个就业形势严峻的时代,仅仅加盐肯定不够了。 今天我们就来讲一讲魔改的MD5,让这个算法高大上起来。 1、菜卷 最简单的魔改方

    2024年02月04日
    浏览(45)
  • 【数据结构】数据结构小试牛刀之单链表

    不讲虚的啦,直接肝! 单链表所要实现的功能罗列如下: 初始化工作我们先初始化一个节点类型,类型中包括了数据域和指针域,数据与中保存着该节点要保存的数据,指针域则保存着链表下一个节点的地址: 然后我们在创建一个函数,用于创建一个新的节点,因为后面我

    2023年04月24日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包