WEB漏洞—文件上传之基础及过滤方式

WEB漏洞—文件上传之基础及过滤方式

7e72e06d9f7ec67e130c726bfc2715a3

Snipaste_2022-05-05_18-45-38

  1. 什么是文件上传漏洞?
  2. 文件上传漏洞有哪些危害?
  3. 文件上传漏洞如何查找及判断?
  4. 文件上传漏洞有哪些需要注意的地方?
  5. 关于文件上传漏洞在实际应用中的说明?

什么是文件上传漏洞?

文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力。这种攻击方式是最为直接和有效的,“文件上传” 本身没有问题,有问题的是文件上传后,服务器怎么处理、解释文件。如果服务器的处理逻辑做的不够安全,则会导致严重的后果。

文件上传漏洞有哪些危害?

1.上传文件是web脚本语言,服务器的web容器解释并执行了用户上传的脚本,导致代码执行。

2.上传文件是病毒或者木马时,主要用于诱骗用户或者管理员下载执行或者直接 自劢运行;

3.上传文件是Flash的策略文件 crossdomain.xml,黑客用以控制Flash在该域 下的行为(其他通过类似方式控制策略文件的情况类似);

4.上传文件是病毒、木马文件,黑客用以诱骗用户或者管理员下载执行;

5.上传文件是钓鱼图片或为包含了脚本的图片,在某些版本的浏览器中会被作为脚本执行,被用于钓鱼和欺诈。 除此之外,还有一些不常见的利用方法,比如将上传文件作为一个入口,溢 出服务器的后台处理程序,如图片解析模块;或者上传一个合法的文本文件,其内容包含了PHP脚本,再通过”本地文件包含漏洞(Local File Include)”执行此脚本。

文件上传漏洞如何查找及判断?

首先,上传的文件能够被web容器解释执行。所以文件上传后所在的目录要是web容器所覆盖到的路径。

其次,用户能够从web访问这个文件。如果文件上传了,但用户无法通过web访问,或者无法得到web容器解释这个脚本,那么也不能称之为漏洞。 最后,用户上传的文件若被安全检查、格式化、图片压缩等功能改变了内容,则也可能导致攻击不成功。

Snipaste_2022-05-05_19-00-47

像这种网站有上传的功能的时候,都可以成为你测试的地方,这种一般是个人中心,或者会员中心,就会有比如说修改头像的时候可以上传本地头像,那么这个时候就可以把带有后门的图片上传进行测试

文件上传漏洞有哪些需要注意的地方?

要对文件上传漏洞的类型进行区分,是否是属于编辑器的文件上传还是第三方的应用的,还是基础的,这个要自己去验证

上传的webshell必须是可以被网站正常解析的,如果你上传的是图片格式,正常情况下是就当图片进行解析,那么你植入的一句话就不能正常执行,而这个一句话必须是符合网站的脚本类型的,如果是php的就用php的一句话,如果是asp就用asp的一句话

解析漏洞产生的部分原因:

1
2
cgi.fix_pathinfo
该选项位于配置文件php.ini中,默认值为1,表示开启。当php遇到文件路径/test.png/x.php时,若/test.png/x.php不存在,则会去掉最后的/x.php,然后判断/test.png是否存在,若存在,则把/test.png当做文件/test.png/x.php解析,如若test.png还不存在如果在其前面还有后缀,继续前面的步骤,以此类推。若是关闭该选项,访问/test.jpg/x.php 只会返回找不到文件。

upload-loas靶场第一关

采用的是前端验证,只需要将前端代码copy下来,然后在本地将前端验证代码删除,在添加或者查找一个action这个,这个设置要上传的地址,获取方式:在靶场用F12进行抓包,复制http头

Snipaste_2022-05-07_10-32-28

第二种方式:用burp抓包,然后在将数据包中的格式改为php,这样就可以绕过了,但是由于你是本地搭建的靶机,有可能是抓不到包的,归根结底是因为代码的原因(不懂),这里要抓的话先要改成图片的格式,也就是要上传他允许的格式

第三种方式:直接关闭js的功能,但是这样是可能会将网站正常的js功能也会关闭,从而有几率上传失败

vulhub两个靶场

搭建环境,百度即可