Web网络攻防文件上传
上传漏洞靶场upload-labs安装
upload-labs 是由php 语言靶场,因此需要在PhpStudy下进行使用。
靶场文件下载:https://github.com/Tj1ngwe1/upload-labs
下载完成后将压缩包解压并放到Phpstudy的网站目录phpstudy\www(根据自己的安装路径),并将文件名改为upload-labs
打开PhpStudy——其他选项菜单——PhpStudy设置——
允许目录列表
浏览器输入http://localhost/upload-labs/
或者:http://127.0.0.1/upload-labs/ 即可进入靶场
JS检测绕过攻击
JS检测绕过上传常用于用户选择文件上传的后缀不被允许,则会弹框告知,上传文件的数据包并没有发送到服务端,只是在客户端浏览器使用JavsScript对数据包进行检测,所以我们只需要绕过前端的JS检测就行了
利用浏览器查看网站第一关源码我们可以看到只有文件后缀为 .jpg、.png、.gif才能被上传
这里我们要用到hph的一个脚本文件 ”大马“
先将文件shell.php的改为可上传的文件shell.jpg
上传shell.jpg 用Burp进行抓包
找到shell.jpg改为shell.php后放包
到文件上传地址
http://127.0.0.1/upload-labs/upload/shell.php
可以看到这个页面就表示成功了
输入默认密码admin可以进入操作页面
文件后缀绕过攻击
Pass-4(第四关)
我们可以看到服务端代码中限制了某些后缀的文件不允许上传,即黑名单。可以看到这一关没有禁止上传.htaccess后缀的文件
我们可以创建.htaccess文件(.htaccess名字必须为空,只有后缀.htaccess)
文件内容
AddType application/x-httpd-hph .jpg
这行代码意味着 将文件所在目录 所以jpg文件都以php形式运行
下面我们直接上传.htaccess文件
上传成功 查网页源码.htaccess文件已经上传到upload文件夹下,再上传shell.jpg就把shell文件当成php文件运行
进入文件地址
http://www.wasmm.com/upload-labs/upload/shell.jpg
文件类型绕过攻击
Pass-2(第二关)
可以看出使用了MIME类型来验证上传文件的合法性,允许上传的格式有 image/jpeg,image/png,image/gif 这三种类型的文件
分别上传png,php类型文件抓包
可以看到当上传png文件时Content-Type的值是image/png
当上传php文件时Content-Type的值是application/octet-stream,
上传shell.php
将Content-Type的值改为 image/png 放包
进入网站:http://127.0.0.1/upload-labs/upload/shell.php
出现登陆页面即上传成功
文件截断绕过攻击
Pass-12(第十二关)
我们看一下这关源码
利用这个php对%00后字段的截断(只有php5.3.4以下的版本才有这个漏洞),我们可以把shell.php改为jpg格式,上传抓包修改img_path,加上shell.php%00。这样就会生成img_path=…/shell.php%00…,最后php会自动截断%00后的代码生成的文件将是shell.php
首先将php版本改为5.2.17
打开php配置文件php.ini
打开php.ini查找到magic_quotes_gpc将On改为Off(注意大小写)
下面就可以上传了上传木马文件shell.jgp拦截上传抓包
在upload/后加入shell.php%00放包
进入
http://www.wasmm.com/upload-labs/upload/shell.php
出现登录页面即成功