DVWA学习日记-5 文件上传

文件上传

举例:
这里讲一个很有名的,千里之堤,溃于蚁穴,警示我们要注重细节,一只蚂蚁也能毁了堤坝,我们就是要将不起眼的蚂蚁送到这个堤坝上,这里堤坝就是网站,蚂蚁就是文件

概念:
Web中的常用功能,将本地文件上传到服务器上

文件上传漏洞,Web运行用户上传恶意代码,并在服务器上运行
文件上传类似代码:upload(“hello.php”),上传对应的是upload的函数,文件就是hello.php,文件就是我们可以控制的,我们要做的就是将我们设计好的文件上传上去

准备:
火狐浏览器
DVWA
FoxyProxy
OWASP ZAP

手工实战
1.进入简单模式
进入File Upload,是文件上传漏洞的主界面,常见的上传图片的功能
在这里插入图片描述
2.面对陌生页面第一的反应就是试
网上随便找个图片,命名为test.jpg
在这里插入图片描述
3.上传这张图片
在这里插入图片描述
4.点了upload后
发现出现了红框里的字,意思是上传成功了
在这里插入图片描述
5.上传后的路径
我们研究一下这个路径,与我们的url进行对比

url:
http://localhost/DVWA-master/vulnerabilities/upload/#
上传地址:
../../hackable/uploads/test.jpg succesfully uploaded!
再进行拼接得到了完整的路径
http://localhost/DVWA-master/vulnerabilities/upload/../../hackable/uploads/test.jpg
再将../../做消除操作,得到链接
http://localhost/DVWA-master/hackable/uploads/test.jpg

6.我们再去访问一下这个图片
在这里插入图片描述
正常操作告一段落
7.尝试操作不正常的
在本地创建一个phpinfo.php文件,执行后是服务器的信息
在这里插入图片描述
8.将我们的phpinfo.php上传至服务器

在这里插入图片描述
9.访问看一下这个文件,成功执行,这里就说明存在文件上传漏洞,能够执行并查看文件
在这里插入图片描述
10.执行phpinfo只是判断漏洞的存在
上传一句话webshell
创建cmd.php
在这里插入图片描述
11.上传后访问文件
在这里插入图片描述
12.执行我们的命令
?cmd=phpinfo();
在这里插入图片描述
13.我们来查看一下系统命令
?=cmd=system(‘dir’); 运用到php的system函数
在这里插入图片描述
查看文件的操作
type命令,反斜杠需要转移的
在这里插入图片描述
14.进入中等等级模式
尝试上传cmd.php文件
报错:你上传的不是图片,不允许上传
在这里插入图片描述
15.准备代理
首先使用代理,变红表示启用
在这里插入图片描述
再加设置
在这里插入图片描述
保存
在这里插入图片描述
启用代理
在这里插入图片描述
而zap的代理默认就是127.0.0.1 8080

16.准备抓包
先上传正常图片的包
在这里插入图片描述
上传webshell的包
在这里插入图片描述
对比一下
发现文件名的差别,还有文件类型以及文件内容的差别
正常包的内容都是二进制文件
在这里插入图片描述
17.我们不断猜测,发现好像是文件类型的地方被服务端限制了
修改文件类型重新发送

在这里插入图片描述
成功绕过文件类型限制,后面的利用就跟简单模式一样
在这里插入图片描述
查看源代码
在这里插入图片描述
18.进入高难度模式
尝试使用修改文件类型的,结果无法上传

19.尝试
我们尝试下上传文件的后缀和文件内容是不是受到限制了
尝试php后缀名和php内容 失败
尝试php后缀名和img内容 失败
尝试img后缀名和php内容 失败

20.最后知道是文件类型和内容一起限制了
我们就做内涵图进行绕过
准备一张图片,和1.txt里面写入<?php phpinfo();?>
在这里插入图片描述
在cmd下输入copy 1.jpg/b+1.txt/a 2.jpg
再打开这张图片发现没有任何变化
在这里插入图片描述
利用编辑器打开拉到最后可以看到php代码

21.上传
在这里插入图片描述
查看这张图片
在这里插入图片描述

22.上次笔记4中的文件包含漏洞,高难度的,需要配合文件上传漏洞进行file访问本地的文件

这时候我们就可以两个一起配合使用
前面的乱码就是图片内容
在这里插入图片描述
23.使用菜刀
利用webshell上传
再使用菜刀访问webshell即可

24.nginx文件类型错误解析漏洞
phpstudy切换Nginx
在这里插入图片描述
进入查看php.ini的配置
在这里插入图片描述
确保cgi.fix_pathinfo为1
在这里插入图片描述

这样服务端设置存在畸形解析
xxx.xxx/xxx.php
2.jpg后面的路径是/2.php
而/2.php是不存在的,畸形解析了它
在这里插入图片描述
查看源代码
在这里插入图片描述
最后进入无漏洞模式
我们再上传2.jpg的php内容的文件,上传完再下载下来,被服务端重新生成了图片,有效修复了漏洞

查看源代码
红框中就是重新编码了图片文件
在这里插入图片描述

修复
1.文件后缀名的白名单
2.文件类型的匹配
3.文件内容的判断
4.阻止非法文件的执行

在不可能模式中
将文件重命名
将文件压缩重写生成
存储目录执行权限
存储目录与Web分离

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值