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

相关推荐
Q_Q5110082851 小时前
python+django/flask的校园活动中心场地预约系统
spring boot·python·django·flask·node.js·php
蒲公英源码2 小时前
基于PHP+Vue+小程序快递比价寄件系统
vue.js·小程序·php
Q_Q19632884754 小时前
python+django/flask基于机器学习的就业岗位推荐系统
spring boot·python·django·flask·node.js·php
韩立学长4 小时前
【开题答辩实录分享】以《奇妙英语角小程序的设计与实现》为例进行答辩实录分享
小程序·php
Tigshop开源商城系统7 小时前
Tigshop 开源商城系统 php v5.1.9.1版本正式发布
java·大数据·开源·php·开源软件
拾忆,想起9 小时前
超时重传 vs 快速重传:TCP双保险如何拯救网络丢包?
java·开发语言·网络·数据库·网络协议·tcp/ip·php
BingoGo9 小时前
15 个 Eloquent 高级技巧,瞬间提升你的 Laravel 应用性能
后端·php
michaelzhouh9 小时前
php项目ueditor上传pdf文件,防止XSS攻击
pdf·php·xss·ueditor
合作小小程序员小小店10 小时前
web网页开发,在线%商城,电商,商品购买%系统demo,基于vscode,apache,html,css,jquery,php,mysql数据库
开发语言·前端·数据库·mysql·html·php·电商
JaguarJack11 小时前
15 个 Eloquent 高级技巧,瞬间提升你的 Laravel 应用性能
后端·php·laravel