linux命令绕过
linux命令绕过
test文件里的内容是'hahaha'
利用空字符、空变量、转译符
ca''t test/cat test
cat te\st
ca$@t test (Linux中$[0-9]、$*、$!、$@表示参数)
a=at;b=c;d=st;e=te;$b$a $e$d(Linux中变量以英文字母,数字和下划线,首个字符不能以数字开头)
利用花括号
cat t{es,}t 花括号通过逗号分割构建序列并展开
cat {tes,t}{tes,t} 花括号可以表示两个序列的笛卡尔积
利用通配符
cat /te* *匹配任意长度的任意字符
cat /te?t ?匹配一个任意字符
cat /te[a-z] t 匹配[list]列表中的所有字符
cat /t[ ^a,b,c]st 匹配非列表[^list]中的所有字符
利用编码
以下编码都是(cat test)
echo Y2F0IHRlc3Q= | base64 -d | bash 打印 | 解码 | bash运行
echo 6361742074657374 | xxd -r -p|bash hex加密
$(printf \x63\x61\x74\x20\x74\x65\x73\x74\x0a) 注意printf后面有一个空格
`printf \x63\x61\x74\x20\x74\x65\x73\x74\x0a` 反引号
cat命令绕过
cat test
tac test
more test
less test
head test
tail test (用tail -f 查看服务器日志,会不断检索文件有没有更新,实时把内容打印)
nl test
od test
rev test
空格绕过
利用重定向
cat<test
cat<>test
利用分割符
cat$IFStest
cat$IFS$9test
cat{$IFS}test
利用花括号
{cat,test}