自学黑客(网络安全)入门小测试

news2024/12/25 23:58:53

「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者
「推荐专栏」:对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》

最近突然出现好多自学黑客(网络安全)的文章,粉丝看到后就问我,自学应该从何入手?

我只能说,这玩意看天赋、看你喜不喜欢,与其收藏一大堆知识文章在收藏夹吃灰,不如先来学学相对基础的XSS,看看自己是不是这块“料”。

XSS漏洞

  • 一、什么是XSS?
  • 二、XSS概述
  • 三、靶场练习
  • 四、XSS使用步骤
  • 五、XSS攻击类型
  • 六、XSS流量特征
  • 七、XSS的危害
  • 八、XSS的防御
    • 1、实体转换
    • 2、字符过滤

一、什么是XSS?

首先,我们通过一个案例来认识一下XSS:

1)下面这几行PHP代码,功能很简单:获取「地址栏」的参数,然后打印出来。

在这里插入图片描述

2)我们访问这个页面,提交「value参数」,页面就会显示出我们提交的内容:

在这里插入图片描述
3)如果我们提交JS代码,页面就会执行我们提交的代码,比如下面这样「弹窗」,就是触发了XSS漏洞:

在这里插入图片描述

看到这里,你已经对XSS有了一个基本的了解,接下来,我们正式认识一下XSS漏洞。


二、XSS概述

XSS(Cross Site Scripting)也叫跨站脚本攻击。利用浏览器的「解析漏洞」,在前端页面执行JS代码。

原理:尖括号<>是HTML标签的语法,网页中插入的包含尖括号<>的内容都会被浏览器当做HTML标签来解析,如果插入的标签中包含JavaScript代码,浏览器也会执行它。

XSS的核心是「参数可控」,就是用户可以控制提交的参数内容,在提交的内容中构造出前端可以执行的JavaScript代码。

弹窗是XSS最基础的一种「触发形式」,常用来验证XSS漏洞是否存在。我们可以通过修改提交的代码,执行其他操作,比如获取cookie,记录键盘等。

由于XSS执行的是JS代码,所以它主要是作用在「前端浏览器」,受害的是网站用户而不是服务器本身。


三、靶场练习

接下来,我们通过XSS-Game靶场,来学习一下XSS的使用技巧和绕过技巧。

XSS使用的第一步是寻找「输入和输出点」,也就是用户从什么地方输入内容?输入的内容会输出到页面的什么位置?

以第一关为例,用户从地址栏输入名字,输入的名字会显示在欢迎用户的位置,那输入和输出点就是下图中标记的地方:

在这里插入图片描述

找到输入点以后,第二步就是查看「网页源代码」,分析输出点的代码有没有被「过滤」,如果内容被输出到属性当中,还要考虑怎么去「闭合」

这里我输入了一个基础符号,从源代码可以看到,内容没有被过滤,而且是输出到标签里面,也不用考虑闭合。

在这里插入图片描述

这里要提示一点:右键检查并不能有效的查看过滤情况,一定要用网页源代码。

分析完输出点,第三步就可以提交JS代码来验证XSS是否存在,最常用的验证方式就是用 alert() 进行「弹窗测试」,如果页面弹窗,就证明存在XSS。

在这里插入图片描述
确定注入点存在后,第四步就是利用了,这里我们的目的是学习,就不给大家演示了。

XSS-Game 靶场的其他关卡可以看我的另一篇文章: XSS-Game靶场通关教程

初学者建议过前十关或前十三关,做完靶场后,我们总结一下XSS的使用步骤。


四、XSS使用步骤

XSS使用的关键在于「输入和输出」,输入是指用户可以提交代码的功能点,输出是用户提交的内容被输出到了页面的什么位置。

1)寻找输入点和输出位置
2)打开网页源代码,分析输出位置的代码,构造闭合脚本。
3)利用altet(1)进行弹窗测试,确认XSS注入点是否存在.
4)利用注入点完成各种操作。


五、XSS攻击类型

根据XSS代码插入的位置,可以将XSS分为三种类型:反射型、存储型、DOM型。

1)「反射型XSS」通过url提交XSS代码,服务器响应回来的代码被插入到HTML页面的标签或属性中,这种类型通常是一次性的,也就是非持久型XSS。

反射型XSS参考练习靶场

2)「存储型XSS」会将XSS代码写入后台的数据库,服务器从数据库中查询数据再展示到页面中,这种类型可以一直触发,也叫持久型XSS。

存储型XSS参考练习靶场

3)「DOM型XSS」会将XSS代码插入到HTML页面的DOM树里面,通常不与服务器交互。

DOM型XSS参考练习靶场

提示:DOM树从网页的根节点开始,逐级向下表示网页的结构。根节点对应的是HTML文档的标签,下面是标签,然后是标签和标签,接着是一些标记,最后是文本节点。这些节点可以相互包含和嵌套,形成一个树状结构。

六、XSS流量特征

XSS的payload通常会包含以下特征:

  1. <script></script>标签
  2. 标签的一些事件,比如:onclick、ondbclick、onload、onchange、onmouseover、onerror、onblur等。
  3. 标签的超链接属性,比如:href、src。

七、XSS的危害

XSS控制浏览器进行操作,受限于浏览器的权限,主要通过JS代码来发挥作用,常见的危害有以下几种:

  1. 获取cookie,比如获取管理员Cookie,进行越权。
  2. 钓鱼网站,比如写一个假的登录页面,获取用户的登录信息,再跳转到真实的网站。
  3. DDOS,比如在网站植入JS代码,向指定网站发送请求,当用户数量大了以后,就能实现DDOS。
  4. 网页挂马、挖矿等
  5. 删除、修改文章等数据
  6. 劫持用户Web行为,渗透内网
  7. Web2.0蠕虫
  8. 蠕虫式DDOS
  9. 蠕虫式挂马、刷广告、刷流量

八、XSS的防御

XSS的防御手段主要有两种:实体转换和字符过滤

1、实体转换

使用htmlspecialchars()函数把内容中的预定义字符转换成HTML实体,转换后的字符会被当做转译字符输出在页面,而不是被当成代码执行。

预定义的字符有5个: ><'"&

我们修改一下文章开头的代码,打印之前先转译内容,会发现页面不再弹窗,<> 被转换了 &lt;&gt;

在这里插入图片描述

2、字符过滤

转换成HTML实体后,还是存在绕过的可能性。

htmlspecialchars() 默认只过滤双引号,可以用单引号绕过。

即使过滤了单引号, htmlspecialchars() 也只能过滤 ><'"& 这5个预定义字符,JavaScript:alert(1) 这种伪协议仍然可以绕过,因此,转换内容后,还要配合正则表达式过滤更多的字符。

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

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

相关文章

chatgpt赋能python:Python关键词统计

Python关键词统计 Python是一种高级编程语言&#xff0c;为开发人员提供了许多功能和库。对于SEO来说&#xff0c;Python具有统计网站上的关键词和分析数据的重要功能。在本文中&#xff0c;我们将探讨Python关键词统计和如何在SEO中使用它。 什么是Python关键词统计 Python…

一图看懂 configparser 模块:配置文件解析器,资料整理+笔记(大全)

本文由 大侠(AhcaoZhu)原创&#xff0c;转载请声明。 链接: https://blog.csdn.net/Ahcao2008 一图看懂 configparser 模块&#xff1a;配置文件解析器&#xff0c;资料整理笔记&#xff08;大全&#xff09; &#x1f9ca;摘要&#x1f9ca;模块图&#x1f9ca;类关系图&#…

vue的虚拟DOM

vue的虚拟DOM 什么是虚拟DOM 虚拟DOM提供了一个与平台无关的抽象层&#xff0c;将应用程序的界面表示抽象为一个虚拟的DOM树。这意味着开发人员可以使用相同的代码和逻辑来描述应用程序的用户界面&#xff0c;而不需要关心具体的平台实现细节。虚拟DOM允许开发人员使用一种统…

HashedWheelTimer详解

1、 前言 你好呀&#xff0c;我是歪歪。 今天我带大家来卷一下时间轮吧&#xff0c;这个玩意其实还是挺实用的。 常见于各种框架之中&#xff0c;偶现于面试环节&#xff0c;理解起来稍微有点难度&#xff0c;但是知道原理之后也就觉得&#xff1a; 大多数人谈到时间轮的时候都…

chatgpt赋能python:Python关键词用法介绍

Python关键词用法介绍 Python是一种高级编程语言&#xff0c;具有简洁易懂、易于学习等特点。作为一位10年的Python工程师&#xff0c;我发现掌握Python的关键词用法对于编程非常重要。因此&#xff0c;本文将重点介绍Python关键词的用法&#xff0c;并为您提供相关的代码示例…

iOS加固保护新思路

之前有写过【如何给iOS APP加固】&#xff0c;但是经过一段时间的思考&#xff0c;我找到了更具有实践性的代码&#xff0c;具体可以看下面。 技术简介 iOS加固保护是基于虚机源码保护技术&#xff0c;针对iOS平台推出的下一代加固产品。可以对iOS APP中的可执行文件进行深度…

小程序 自建本地数据库 本地存储

大家好哇&#xff0c;我是梦辛工作室的灵&#xff0c;在最近的开发过程中又遇到了一些问题&#xff0c;这次是关于本地存储的&#xff0c;在小程序面进行存储一些数据&#xff0c;本来就依靠小程序的本地储存API 就可以实现&#xff0c;但数据量小还好&#xff0c;如果数据量大…

chatgpt赋能python:Python开发:为什么适合SEO

Python开发&#xff1a;为什么适合SEO 在当今互联网上&#xff0c;搜索引擎优化&#xff08;SEO&#xff09;尤为重要。因为通过优化您的网站&#xff0c;在搜索引擎上排名更高可以增加您的网站流量和业务转化率。在这篇文章中&#xff0c;我们将探讨为什么Python是一个优秀的…

SpringMVC重点知识

目录 第一章 SpringMVC概念 0.引言 1.MVC 2.SpringMVC 3.SpringMVC的特点 4.JavaSE、JavaEE、javaME的区别 第二章 Spring MVC的使用 1.SpringMVC的配置 2.web.xml配置 3. 创建当前的请求控制器 4. 创建SpringMVC的配置文件 5.实现对首页index.xml的访问 6.Reques…

总结886

学习目标&#xff1a; 月目标&#xff1a;6月&#xff08;张宇强化10讲&#xff0c;专业课&#xff0c;背诵15篇短文&#xff0c;考研核心词过三遍&#xff09; 周目标&#xff1a;1800线性代数部分并完成错题记录&#xff0c;英语背3篇文章并回诵&#xff0c;检测&#xff0…

Throwable源码

介绍 Throwable类是Java语言中所有错误&#xff08;errors&#xff09;和异常&#xff08;exceptions&#xff09;的父类&#xff0c;直接子类为 Error 和 Exception。只有继承于Throwable的类或子类才能被抛出&#xff0c;还有一种是Java中的throw注解类也可以抛出。 public…

Stub实验

需求 将区域12设置为Stub区域&#xff0c;使区域12的路由设备不受外部链路影响(不接收4/5类LSA&#xff09;降低区域12&#xff08;末梢区域&#xff09;设备压力&#xff0c;还能让区域12的PC1与外部PC3通信 配置步骤 1&#xff09;配置接口信息 - 配置PC的IP地址 - 配置路由…

chatgpt赋能python:Python免费资料全揭秘:入门学习到深入应用

Python免费资料全揭秘&#xff1a;入门学习到深入应用 作为一种最具代表性的动态编程语言&#xff0c;Python在很多领域得到了广泛的应用&#xff0c;因其简单易学、开发效率快等特点而备受开发者的喜爱。如果你刚开始学习Python或是想提高你的Python编程技能&#xff0c;那么…

系统移植-环境搭建

安装系统 在基于ARM处理器的开发板上安装Linux系统 1.移植的目的 不同架构的处理器指令集不兼容&#xff0c;即便是相同的处理器架构&#xff0c;板卡不同驱动代码也不兼容 &#xff1b; Linux是一个通用的内核并不是为某一个特定的处理器架构或板卡设计的&#xff0c;…

【生物力学】《人体骨肌系统生物力学》- 王成焘老师 - 第3章 - 人体运动测量与仿真分析

第2章回到目录后续暂时用不到 文章目录 3.1 概论1. 基于影像的运动捕捉技术2 . 其他运动捕捉技术 3.2 人体运动测量内容与设备3.2.1 人体运动测量内容1. 时间参数2. 空间参数3. 时空参数 3.2.2 运动捕捉系统的主要类型与工作特性1. 运动捕捉系统组成2. 运动捕捉系统主要类型与工…

chatgpt赋能python:用Python做股票分析

用Python做股票分析 在当今的股市中&#xff0c;数据分析和预测已经变得十分重要。Python作为最流行的编程语言之一&#xff0c;不仅易于学习&#xff0c;还有非常强大的数据处理和分析能力。在本文中&#xff0c;我们将探讨如何用Python进行股票分析。 数据收集 要进行股票…

Java网络开发(Tomcat)——遇到的 bug 汇总(持续更新):bug:

目录 引出:bug::bug::bug:Tomcat开发的bug汇总session不能转换成String类型在servlet的if处理流程中&#xff0c;没有加return后端传给jsp的数据&#xff0c;前端jsp不显示jsp的包没有导&#xff0c;用foreach方法的时候报错jsp的forEach方法报错jsp用foreach的时候&#xff0c…

chatgpt赋能python:Python免费软件:提高工作效率的首选

Python免费软件&#xff1a;提高工作效率的首选 Python作为一种易于上手的编程语言&#xff0c;在业界广为流传。而随着Python的发展&#xff0c;也催生了相应的一些免费软件&#xff0c;这些软件能够让用户更好地利用Python编程语言&#xff0c;提高工作效率&#xff0c;创造…

数据存储云安全的 5 大支柱

与任何数据存储系统一样&#xff0c;云也存在相当多的安全风险。领导者不应争论云本身安全或不安全的方式&#xff0c;而应质疑他们是否安全地使用云。 虽然云安全采用组织和云提供商之间的责任共担模式&#xff0c;但归根结底&#xff0c;云环境面临的最大风险是解决方案的错…

对数组中的所有元素进行限值指定的最小值和最大值:超过最大值的元素,则改写为最大值小于最小值的元素,则改写为最小值numpy.clip()

【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 对数组中的所有元素进行限值 指定的最小值和最大值&#xff1a; 超过最大值的元素&#xff0c;则改写为最大值 小于最小值的元素&#xff0c;则改写为最小值 numpy.clip() [太阳]选择题 请问…