【web漏洞】文件上传漏洞的类型有哪些

2021-01-20 20:26发布

8条回答
IT学习助手 - qq:2676427015
2楼 · 2021-01-21 09:49

一般有危险的文件类型有这些:

exe文件:可执行文件(可能包含危险代码)

com文件:MS-DOS可执行文件(可能包含危险代码)

pif文件:指向com文件的快捷方式(可能引发病毒)

bat文件:MS-DOS批处理文件(可能执行对电脑有危害的cmd命令)

scr文件:屏幕保护程序(可能包含恶意脚本)

如果文件关联被更改了,那么任何文件几乎都可以是病毒。


老易
3楼 · 2021-01-21 10:08
一般的防范方法是把数据提交类型POST改为GET
另外过滤ASP ASA PHP SHTML HDR HDX CER等等所有能被ASP.DLL解析的格式
不允许用户子定义文件名和路径


小凡仔
4楼 · 2021-01-21 10:20

1. 绕过前端js:

2. 文件类型绕过:

3. php文件后缀名绕过:

4,大小写绕过:

5, “php.”绕过:

6. “php ”绕过;

7.文件路径拼接:

我是大脸猫
5楼 · 2021-01-21 11:03

1. 绕过前端js:

要求上传图片类型的文件,我们可以把php文件改成jpg的文件类型,通过burpsuite抓包

把"c.jpg"修改为"c.php",这样便可以成功上传文件。

2. 文件类型绕过:

上传"c.php"时,通过burpsuite抓包:

把"Content-Type:"修改为“image/jpeg”的图片类型,成功上传

3. php文件后缀名绕过:

php文件的后缀名很多,比如:

"php","php5","php4","php3","php2","phtml"

等等,当php禁止上传时,可以试试上传以这些为后缀名的php文件。

4,大小写绕过:

 当正常php文件无法上传成功时,可以修改成“Php”,"pHp","PHP"等绕过。

5, “php.”绕过:

通过burpsu抓包,把文件“c.php”修改为“c.php.”,进行绕过。

6. “php ”绕过;

通过burpsu抓包,把文件“c.php”修改为“c.php ”(空格),进行绕过。

7.文件路径拼接:

$file_name = trim($_FILES['upload_file']['name']);$file_name = str_ireplace($deny_ext,"", $file_name);

当程序识别到后缀名时“php”时,会用空代替“php”,通过burps抓包:

把“php”改为“pphphp”,这样程序会从第二个p开始,把中间的php去掉,剩下“p”+"hp" 即php,这样就便可以成功上传。


小磊子
6楼 · 2021-01-21 11:07

文件上传漏洞:
允许用户上传任意文件可能会让攻击者注入危险内容或恶意代码,并在服务器上运行。

任意文件上传漏洞原理:
由于文件上传功能实现代码没有严格限制用户上传的文件后缀以及文件类型,导致允许攻击者向 某个可通过 Web 访问的目录上传任意PHP 文件,并能够将这些文件传递给 PHP 解释器,就 可以在远程服务器上执行任意PHP 脚本。

天才小馒头
7楼 · 2021-01-22 16:30

1、 前端检测绕过
有的站点只在前端对文件的类型有所限制,我们只需用bp抓包然后修改文件后缀名就能绕过这种检测。
2、 文件头检测绕过
有的站点使用文件头来检测文件的类型,这种检测可以在shell前加入相应的字节一绕过检测

3、 后缀检测绕过
部分服务器仅根据文件后缀、上传时的信息或者文件头来判断文件类型,此时可以绕过。php由于历史的原因,部分解释器可能支持符合正则/ph(p[2-7]?|t(ml)?)/的后缀,如php/php5/pht/phtml/shtml/pwml/phtm等。如果后端对文件名进行了过滤,可以尝试双写文件名,比如1.pphphp。
4、 系统命名绕过
在windows系统中,上传不符合windwos命名规则的文件名会被windows系统自动去掉不符合规则符号后面的内容
5、 文件包含绕过
在文件包含的时候,为了灵活包含文件,将被包含文件设置为变量,通过动态变量来引入需要包含的文件,用户可以对变量的值进行控制,而服务器端未对变量进行合理的校验,这样就导致所包含的文件有可能存在恶意代码。


一朵大红花啊
8楼 · 2021-01-28 09:17

当正常php文件无法上传成功时,可以修改成“Php”,"pHp","PHP"等绕过

征戰撩四汸
9楼 · 2022-01-18 16:43

1、 前端检测绕过
有的站点只在前端对文件的类型有所限制,我们只需用bp抓包然后修改文件后缀名就能绕过这种检测。
2、 文件头检测绕过
有的站点使用文件头来检测文件的类型,这种检测可以在shell前加入相应的字节一绕过检测,几种常见的文件类型的头字节如下:

在这里插入图片描述

3、 后缀检测绕过

部分服务器仅根据文件后缀、上传时的信息或者文件头来判断文件类型,此时可以绕过。php由于历史的原因,部分解释器可能支持符合正则/ph(p[2-7]?|t(ml)?)/的后缀,如php/php5/pht/phtml/shtml/pwml/phtm等。如果后端对文件名进行了过滤,可以尝试双写文件名,比如1.pphphp。

4、 系统命名绕过

在windows系统中,上传不符合windwos命名规则的文件名会被windows系统自动去掉不符合规则符号后面的内容,例如:test.asp.、test.asp(空格)、test.php:1.jpg、test.php:: D A T A 、 t e s t . p h p : : DATA、test.php:: DATA、test.php::DATA…这些文件上传到服务器端之后都会变成test.php

在linux系统下,可以尝试上传文件后缀名为大小写混用的Php文件。

5、 文件包含绕过

在文件包含的时候,为了灵活包含文件,将被包含文件设置为变量,通过动态变量来引入需要包含的文件,用户可以对变量的值进行控制,而服务器端未对变量进行合理的校验,这样就导致所包含的文件有可能存在恶意代码。

6、 解析漏洞绕过

目录解析:在网站中建立名称为*.asp、.asa格式的文件夹时,其文件夹下面的文件都会被当做asp执行。

文件解析:当文件名为.asp;1.jpg时,也会被当做asp执行

Apache解析漏洞:Apache在解析文件时,是从右往左,如果遇到不认识的扩展名时,就会继续向左判断,例如1.php.rar就会被当做

php解析。

IIS 7.0/IIS 7.5/Nginx<0>

.htaccess,该文件里面的代码如下:

SetHandler application/x-httpd-php


这段代码的意思就是文件名包含”1”这个这个字符串就会被当成php文件来处理。但是值得注意的是上传.htaccess必须是网站根路径。

7、 文件截断绕过

00截断:由于00代表结束符,所以会把00后面的所有字符删除。

能利用这个漏洞的前提是,php版本要小于5.3.4,magic_quotes_gpc需要为OFF状态。我们用bp进行拦包之后,需要send to repeater,然后在hex中,在php后面添加00

8、 竞争条件攻击

一些网站上传文件逻辑上是允许上传任意文件的,然后检查上传文件的内容是否包含webshell脚本,如果包含则删除该文件,这里存在的问题是文件上传成功之后和删除文件之间存在一个短的时间差,攻击者就可以利用这个时间差来上传漏洞攻击。攻击者先上传一个webshell脚本1.php内容如下:


’); ?>

代码内容就是生成一个新的webshell,shell.php,那么当1.php上传成功之后,我们快速访问这个文件,这时就会在服务器端当前目录下自动生成shell.php,这时就利用时间差完成了webshell的上传。



相关问题推荐

  • 回答 6

    这个还是因人而异吧,看你自己对哪方面感兴趣,兴趣是最好的老师,感兴趣了才愿意钻研学习下去,简单说一下这两个学习知识方面的不同吧:软件测试岗位虽然对于从业者的知识基础要求不高,但是软件测试岗位所涉及到的知识面还是比较广的,所以软件测试人员也需...

  • 回答 5

    SQL注入漏洞的危害:1、数据库中存储的用户隐私信息泄漏;2、通过操作数据库对某些网页进行篡改;3、修改数据库一些字段的值,嵌入网马链接,进行挂马攻击;4、数据库服务器被恶意操作,系统管理员帐户被窜改;5、数据库服务器提供的操作系统支持,让黑客得以...

  • 回答 16

    一、CISP(Certified Information Security Professional)证书中文叫注册信息安全专业人员,由中国信息安全产品测评认证中心实施的国家认证。可以说,这是目前国内对于个人来说认可度最高的信息安全人员资质,堪称最权威、最专业、最系统。根据实际岗位的不...

  • 回答 14

    渗透测试(也称为pentest)是测试移动应用程序漏洞的过程。此测试的主要目的是确保外部人员的重要数据.通过模拟黑客的思维和攻击手段,对计算机业务系统的弱点、技术缺陷和漏洞进行探查评估。经过客户授权后,在不影响业务系统正常运行的条件下,渗透人员在黑...

  • 回答 1

    网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不因偶然的或者恶意的原因而遭受到破坏、更改、泄露,系统连续可靠正常地运行,网络服务不中断。主要涉及到的有:1、物理措施:例如,保护网络关键设备(如交换机、大型计算机等),制定严格的网络...

  • 回答 33

      网络安全工程师学习内容:  1、计算机应用、计算机网络、通信、信息安全等相关专业本科学历,三年以上网络安全领域工作经验;  2、精通网络安全技术:包括端口、服务漏洞扫描、程序漏洞分析检测、权限管理、入侵和攻击分析追踪、网站渗透、病毒木马防...

  • 回答 26

      学历不是问题,技术才是硬道理!只要你的技术过硬的话,你完全可以进国家安全部门去工作的。比如公安局里的网监工作,大都是九零后的电脑方面的精英。未必都是本科生。还有从社会上特招进去的。所以说,现在是拿技术说话,不是靠学历吃饭的时代了。  网...

  • 回答 16

    网络安全的知识是比较简单的,比较好入门,好多知识理论,大家都是可以听懂的,这是完全没有问题的。网络安全最终的则是实战的应用,怎么把这些理论知识运用到事件中,这些才是重中之重。所以在选择培训机构的时候,也需要尽量去找这些实践操作多的培训机构。...

  • 回答 22

      能够胜任的岗位主要有:渗透测试工程师、大数据安全工程师、信息安全工程师、安全测试工程师、安全服务工程师、安全运维工程师、系统安全工程师、服务器安全工程师、云计算安全工程师、网络安全工程师、安全分析师、渗透讲师等;  按照web渗透、内网渗透...

  • 回答 23

    一些典型的网络安全问题,可以来梳理一下:IP安全:主要的攻击方式有被动攻击的网络窃听,主动攻击的IP欺骗(copy报文伪造、篡改)和路由攻击(中间人攻击);2. DNS安全:这个大家应该比较熟悉,修改DNS的映射表,误导用户的访问流量;3. DoS攻击:单一攻击...

  • 回答 19

    运维一般是设备或者环境的搭建和维护,网络安全可以看做是防火墙

  • 回答 12

    先说说运维工程师和网络工程师的区别。运维工程师是泛指,网络工程师为特指,所以不能这么对比。你应该这么理解,网络工程师是一个人(也可以是理解成一个岗位),而运维则是他的工作内容。从工作内容上来说,运维可细分为桌面运维、网络运维、服务器运维三大...

没有解决我的问题,去提问