前言
自编写python渗透工具编写学习条记专栏以来,笔者便发现了一个较为严重的题目:我们大多数文章都是学习如何用python编写扫描与利用毛病的渗透工具,却没有真正剖析毛病的形成原因,长此以往我们的学习就只会浮于外貌,广而不深。为了改变这一近况,笔者决定以深入学习毛病为主,编写毛病渗透工具为辅(固然不意味着两专栏更新频率不均),新开了web渗透安全学习条记专栏。那么,就让我们开始今天的学习吧!
坚持科技向善,勿跨越法律边界,代码仅供教学目的。初出茅庐,如有错误望各位不吝赐教。
点此前去python渗透工具编写学习条记专栏:python渗透工具编写学习条记
1.1 web的组成
Web的组成主要包罗以下几个要素:
网络基础设施: 包罗各种网络装备,如服务器、路由器、互换机等,用于连接和传输数据。
互联网协议(Internet Protocol, IP) :是互联网数据传输的根本协议,负责将数据分割成数据包并传输给指定的目的地址。
域名系统(Domain Name System, DNS): 用于将易于记忆的域名转换为对应的IP地址,方便用户访问网站。
HTTP协议(HyperText Transfer Protocol):
是Web中用于传输超文本(如HTML、CSS、JS等)的协议,它界说了客户端和服务器之间的通信规则。
CSP(Web Content Security Policy):
是一种基于HTTP头部的安全策略,用于保护网站免受恶意代码的攻击。它答应网站管理员界说哪些外部资源可以被加载,并限定内联脚本、内联样式和其他不安全的操纵。
万维网(World Wide Web):是一个基于HTTP协议的信息系统,包罗了各种网页、网站和资源。
编写web的语言主要是一下三种:
HTML(HyperText Markup Language):是用于创建Web页面的标记语言,是Web的基础。
CSS(Cascading Style Sheets):是用于控制网页样式的语言,可以界说网页的布局、字体、颜色等外观。
JavaScript:是一种用于加强网页交互性的脚本语言,可以操纵网页元素、响应用户操纵等。
C/S架构(Client/Server):
是指客户端和服务器之间的架构模式。在C/S架构中,客户端负责处置处罚用户界面和用户交互,而服务器负责处置处罚数据存储和业务逻辑。客户端通过网络连接到服务器,发送请求并接收响应。这种架构模式通常用于需要高性能和复杂业务逻辑的应用程序,例如在线游戏和大型企业应用。
B/S架构(Browser/Server Architecture):
是指欣赏器和服务器之间的架构模式。在B/S架构中,欣赏器作为客户端,负责处置处罚用户界面和用户交互,而服务器负责处置处罚数据存储和业务逻辑。用户通过欣赏器访问网页,欣赏器发送请求到服务器并接收响应。这种架构模式通常用于Web应用程序,例如网上购物和外交媒体
1.2 同源策略
同源策略是一种Web欣赏器安全机制,它的目的是防止恶意网站通过脚本等方式访问用户的敏感信息或者执行恶意操纵。
同源策略答应同一个域名下的不同网页、文件或数据之间进行相互交互。 要透彻的学习同源策略,我们先来学习源是什么:
源(origin):
是一个由协议(如HTTP、HTTPS)、域名和端标语组成的标识。源被用于确定一个文档或脚原来自哪个源,以及答应哪些源访问特定资源的规则。同源策略通过限定不同源之间的交互来增长Web应用程序的安全性,防止恶意代码对不同源的资源进行访问和操纵。
Web 内容的 源 由用于访问它的 [URL](https://developer.mozilla.org/zh-
CN/docs/Glossary/URL “URL”) 的 方案 (协议)、 主机名 (域名)和 端口
界说。只有当协议、主机和端口都匹配时,两个对象才具有相同的源。示例如下:
服务器默认从 80 端口传送 HTTP 内容,以是以下两个地址同源:
http://Eleven.com:80
http://eleven.com
协议不同,以下两个地址不属于同源:
http://eleven.com/sp1
https://eleven.com/sp2
主机名不同,以下几个地址不属于同源:
http://eleven.com
http://www.eleven.com
http://myapp.eleven.com
端口不同,以下几个地址不属于同源:
http://eleven.com
http://eleven.com:70
例如,当你在一个网页中利用JavaScript代码发送AJAX请求时,同源策略会阻止该请求访问不同域的资源。这意味着,如果你的网页代码来自于一个域名,那么它只能与来自同一域名的资源进行交互,而不能与其他域名的资源进行交互。
域: 是指在计算机网络中,一组具有相同属性的计算机或装备的聚集。域可以根据网络规模的不同,分为局域网(LAN)、城域网(MAN)和广域网(WAN)。
域名:
是指通过域名系统(DNS)来进行剖析的由一串字符组成的名称,用于标识并定位互联网上的计算机、服务或资源。域名一样平常由若干部分组成,如www.example.com,其中www为子域名,example为二级域名,com为顶级域名。域名可以转化为对应的IP地址,从而实现网络上的通信与访问。
资源: 可以包罗笔墨、图片、视频、音频文件等等。
1.3 欣赏器沙箱
欣赏器沙箱是一种安全机制,用于隔离欣赏器中运行的不可信任代码(例如JavaScript代码)与操纵系统和主机系统的其他部分。它创建了一个受控的环境,在其中运行代码,以确保代码无法直接访问或修改操纵系统或主机系统中的敏感资源。
欣赏器沙箱通过限定不可信任代码的权限和访问范围来保护用户的装备和数据安全。它通常利用以下技能和措施来实现:
进程隔离:欣赏器将不同的标签页或网站运行在不同的进程中,以确保它们之间的代码和数据相互隔离。如许一来,一个恶意的网站或插件无法直接访问或修改其他网站或标签页中的数据。
沙盒环境:欣赏器为每个标签页或网站创建一个沙盒环境,在其中运行不可信任的代码。沙盒环境限定了代码的权限,例如禁止访问文件系统、网络以及操纵系统级的功能。
内存保护:欣赏器利用内存保护技能来防止代码通过缓冲区溢出等毛病来攻击系统。这些技能包罗地址空间布局随机化(ASLR)和数据执行保护(DEP)。
权限管理:欣赏器沙箱利用权限管理机制,答应用户控制哪些资源可以被访问。例如,欣赏器会提示用户是否答应某个网站获取地理位置或访问摄像头。
1.4 初识XXS毛病
XXS毛病(Cross-Site Scripting
vulnerability)答应攻击者在网页上注入恶意脚本代码,从而获取用户的敏感信息或者对用户进行恶意操纵。
XXS毛病主要出如今Web应用程序中,它可以利用用户提交的数据或者其他不可信来源的数据来构造攻击代码。当用户访问包含恶意脚本的受感染网页时,恶意脚本将在用户的欣赏器中执行,从而导致信息泄漏或者其他安全题目。接下来,我们将逐一讲解三种类型的XXS毛病。
1.4.1 存储型 XSS
攻击者将恶意脚本代码存储在目的网站的数据库中,当其他用户访问页面时,恶意代码会从服务器返回,并在用户的欣赏器中执行。这种类型的毛病常见于留言板、批评区等用户可以输入内容的地方。
以下是一个存储型xxs的示例:
假设我们有一个简朴的留言板应用程序,答应用户发布留言并将其表如今网页上。用户可以输入留言的内容,并将其生存到数据库中。然后,应用程序从数据库中检索留言并在网页上体现。
如今,假设攻击者输入以下内容作为留言:
当这个留言被生存到数据库并在网页上体现时,用户将看到一个弹出框体现"恶意脚本!",这就是存储型xxs的攻击。
为了防止存储型xxs攻击,我们可以在用户输入时进行输入验证和过滤,确保只答应合法的内容进入数据库。可以利用一些特殊字符过滤和编码技能,如HTML编码或JavaScript转义,以确保用户输入的内容不会被解释为脚本。
在这个示例中,我们可以利用HTML编码来处置处罚用户输入。如许,攻击者输入的恶意脚本将被转义为HTML实体,而不会被欣赏器解释为脚本:
如许,当留言被表如今网页上时,用户将只看到原始的恶意脚本代码,而不会执行。
1.4.2 反射型 XSS
攻击者通过诱利用户点击恶意链接或提交恶意表单等方式,将恶意代码注入到目的网站的URL参数中。而服务器在返回响应时,将恶意代码反射回用户的欣赏器,并在欣赏器中执行。这种类型的毛病常见于搜索框、URL参数等用户可以输入内容的地方。
下面是一个简朴的反射型XXS的示例:
假设我们有一个简朴的登录页面,用户输入用户名和密码后提交表单,然后服务器将用户名展示在欢迎信息中。
在上述代码中,我们利用了PHP来获取用户输入的用户名,并将其展示在欢迎信息中。但是,这段代码存在反射型XXS毛病。如果攻击者在用户名中注入恶意脚本,那么该恶意脚本将被执行。
例如,攻击者可以构造一个恶意的用户名如下:
当用户提交表单后,恶意脚本将在欢迎信息中执行,弹出一个告诫框,从而攻击用户。
1.4.3 DOM型 XSS
DOM-based
XSS毛病是一种特殊的XSS毛病,攻击者通过修改目的网页的DOM(文档对象模子)结构,使恶意脚本在用户的欣赏器中执行。这种类型的毛病通常发生在JavaScript代码中,攻击者可以或许控制DOM元素的内容或属性,从而影响网页行为。
以下是一个简朴的DOM型XSS示例:
在这个示例中,用户可以在输入框中输入任意内容,并点击提交按钮。然后,用户输入的内容会被直接插入到页面中的元素中,没有进行任何过滤或转义处置处罚。这就给了攻击者的时机,如果攻击者输入恶意脚本代码,它将被执行,从而导致XSS攻击。
1.5 XXS实例
下面我们来看几个利用XXS毛病的实例:
1、利用DOM XSS毛病进行长期性攻击和劫持用户会话:
假设有一个简朴的留言板应用程序,用户可以在留言板上发布消息。应用程序将用户输入的消息直接插入到DOM中,而没有进行任何过滤或转义。
如果你是准备学习网络安全或者正在学习,下面这些你应该能用得上:
①网络安全学习门路
②20份渗透测试电子书
③安全攻防357页条记
④50份安全攻防面试指南
⑤安全红队渗透工具包
⑥网络安全必备书籍
⑦100个毛病实战案例
⑧安全大厂内部视频资源
⑨历年CTF夺旗赛题剖析
|