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中变量以英文字母,数字和下划线,首个字符不能以数字开头)

image-20220512132116379

利用花括号

cat t{es,}t 花括号通过逗号分割构建序列并展开

image-20220512001738871

cat {tes,t}{tes,t} 花括号可以表示两个序列的笛卡尔积

image-20220512001920849

利用通配符

cat /te* *匹配任意长度的任意字符
cat /te?t ?匹配一个任意字符
cat /te[a-z] t 匹配[list]列表中的所有字符

image-20220512002309566

cat /t[ ^a,b,c]st 匹配非列表[^list]中的所有字符

image-20220512002512775

利用编码

以下编码都是(cat test)

echo Y2F0IHRlc3Q= | base64 -d | bash 打印 | 解码 | bash运行

image-20220512110314071

echo 6361742074657374 | xxd -r -p|bash hex加密

image-20220512110325263

$(printf \x63\x61\x74\x20\x74\x65\x73\x74\x0a) 注意printf后面有一个空格

image-20220512111314018

`printf \x63\x61\x74\x20\x74\x65\x73\x74\x0a` 反引号

image-20220512130726784

cat命令绕过

cat test
tac test
more test
less test
head test
tail test (用tail -f 查看服务器日志,会不断检索文件有没有更新,实时把内容打印)
nl test
od test
rev test

空格绕过

利用重定向

cat<test

image-20220512131544034

cat<>test

image-20220512131630686

利用分割符

cat$IFStest

cat$IFS$9test

image-20220512131941343

cat{$IFS}test

利用花括号

{cat,test}

image-20220512133204404