当前位置: 首页 > news >正文

Upload-labs 靶场搭建 及一句话木马的原理与运用

1、phpstudy及upload-labs下载

(1)下载phpstudy小皮面板

首先需要软件phpstudy  下载地址 phpStudy下载-phpStudy最新版下载V8.1.1.3 -阔思亮

(2)然后到github网址下载源码压缩包

网址 https://github.com/c0ny1/upload-labs

下载压缩包

 下载好后解压缩到phpstudy的www目录下(注意,如果解压出现警告添加信任即可)

这里记得改一下解压缩后的文件夹名字(主要是为了方便后面搭建网址方便一些,没有那么麻烦),就设置为upload-labs即可,或者直接upload。以防万一后面靶场名字显示出问题

 

2、环境搭建

然后打开phpstudy

开启apachmysql服务器

 然后进入网站,检查localhost根目录是不是在phpstudywww目录下

检查过后点击创建网站

这里一定要选择www目录下的upload-labs,然后再设置域名为127.0.0.1   端口随便设置一个没被占用的即可,这里我设置了8088

设置完后点击确定即可。然后点击管理,打开网址

就可以看到域名为127.0.0.1,端口为8088的upload-labs靶场搭建成功

3、靶场搭建问题

(1)服务器未开启

如果在打开网站时,出现下面这种情况的提示

那就说明网站所需要的服务器(如apachemysql没开启已关机,需要进入 首页手动启用服务器

     关闭状态:

开启就可以打开了:

 

(2)根目录问题

这里说一下为什么创建网站的目录要到www目录下的upload-labs文件夹

因为我们下载的upload-labs这些文件是为靶场准备的,如果不选择到upload-labs目录,它相当于没有材料就建不了房子的,就会只创建站点(也就相当于建房的地基

不信做个示范,注意这里的根目录霍,只选择到www目录就直接创建127.0.0.1,看看会创建出什么样的页面

确认后打开网站

看吧,没有建房材料就只有地基(毕竟我们选择的目录只到www,想要构建upload-labs靶场的“房子”它是没有办法在根目录上找到uploads-labs,因为127.0.0.1的域名创建到了upload-labs文件的上一级,它找不到啊)

所以根目录是www目录下还要再加upload-labs

这样它在upload-labs目录下才能找到upload-labs文件

upload-labs靶场才能搭建成功

(3)端口占用

至于端口被占用的话,是这种情况

8080的端口,打开网站后

端口就可以了

换8088的端口打开网站后靶场正常

4、文件上传漏洞中一句话木马的原理及运用

(1)木马的概念

木马:能够获取对方控制权限程序

分类:(远控)exeweb木马phpjspasp

一般文件上传中利用的一句话就是php代码的木马,而我前两天学的msf制作windows病毒实战渗透制作的就是exe

kali利用msf渗透Windows电脑测试-CSDN博客

(2)漏洞利用原理

<1>文件上传缺陷

攻击者利用未严格校验上传文件的后端逻辑(如未检查文件类型内容后缀等),将包含恶意代码的文件(如PHPASPJSP等)上传至服务器

<2>绕过防护机制

通过以下方式绕过常见防护:

(1)伪造文件类型

修改HTTP头中的Content-Type(如image/png伪装成合法文件

(2)修改文件后缀

如将.php改为.php5、.phtml或结合服务端解析漏洞(如Apachetest.php.jpg).

(3)文件内容混淆

在图片文件中插入恶意代码(图片马),利用服务器对文件内容的信任

<3>木马执行

(3)一句话木马的工作原理

这里我尝试自己搭了个靶场,但不太好用,就不用了(upload-labs留着后面系统而全面的学)

<1>典例
<?php @eval($_POST['cmd']); ?>

 eval函数

将字符串作为PHP代码执行

$*POST['cmd'] :

接收客户端通过POST请求发送名为cmd的参数值

@  :

抑制错误提示,增强隐蔽性 (这个不太理解)

<2>木马执行流程
(1)上传恶意代码

攻击者利用上传包含上述代码的恶意文件(如shell.php)到服务器

(2)构造请求,发送数据

通过工具(如中国菜刀中国蚁剑Cknife)或手动构造HTTP请求,向shell.php发送POST数据

POST /uploads/shell.php HTTP/1.1
     ...
     cmd=system("whoami");
(3)服务端执行

eval("system('whoami');")返回命令执行结果

<3>高级变变种
(1)加密绕过

对代码进行base64AES加密,规避WAF检测

<?php @eval(base64_decode($_POST['cmd'])); ?>
(2)动态函数调用
<?php $_GET['a']($_GET['b']); ?>

通过URL参数动态执行代码:/shell.php?a=system&b=id

相关文章:

  • 如何将Spring Boot项目与DeepSeek AI集成并优化为AI系统
  • Modbus TCP转Profibus DP网关接防撞雷达与PLC通讯
  • oracle基础知识视图的定义和应用
  • 实操自动生成接口自动化测试用例
  • DIskgenius使用说明
  • Flutter项目之底部搜索功能实现
  • 【NumPy】1. 前言安装
  • Javaweb后端AOP记录操作日志
  • (041)05-01-自考数据结构(20331)树与二叉树大题总结
  • spring IOC AOP
  • 基于 RK3588 的 YOLO 多线程推理多级硬件加速引擎框架设计(代码框架和实现细节)
  • 【商城实战(96)】打造商城监控利器Prometheus与Grafana
  • AI预测3D新模型百十个定位预测+胆码预测+杀和尾+杀和值2025年3月31日第38弹
  • K个一组翻转链表--囊括半数链表题的思想
  • Android学习之计算器app(java + 详细注释 + 源码)
  • el-switch的before-change的使用方法
  • 解决wsl2下CentOS 7 的 yum 仓库无法连接问题
  • Vue舞台剧
  • AWS Lambda:无服务器架构如何重塑云计算,解锁企业敏捷开发与成本革命
  • 目标检测YOLO实战应用案例100讲-基于孤立森林算法的高光谱遥感图像异常目标检测(续)
  • wordpress photolux/河北优化seo
  • 郑州网站建设最独特/seo关键词排名优化费用
  • 如何学做网站平台/附近广告公司联系电话
  • 漂亮的幼儿园网站模板/软文广告是什么意思
  • 做网站如何用模板/石家庄百度关键词搜索
  • 网站与网站自动跳转代码/百度建站