文件上传限制绕过技巧

hacker4年前关于黑客接单311

  严正声明:本文仅限于技术讨论,严禁用于其他用途。

  文件上传漏洞是web安全中经常利用到的一种漏洞形式。一些web应用程序中允许上传图片,文本或者其他资源到指定的位置,文件上传漏洞就是利用这些可以上传的地方将恶意代码植入到服务器中,再通过url去访问以执行代码。但在一些安全性较高的web应用中,往往会有各种上传限制和过滤,导致我们无法上传特定的文件。本文将就此展开讨论,通过本文的学习你将了解到Web应用中文件上传的处理和验证发送流程,以及我们该如何绕过这些验证。

  客户端验证是一种发生在输入被实际发送至服务器之前进行的验证。这类验证大都都是通过JavaScript,VBScript或HTML5来完成的。虽然,这对于用户来说响应速度更快体验也更好。但对于恶意攻击者来说,这些验证似乎就显得略为低级。

  这种类型的绕过也非常简单,我们可以关闭浏览器上的JavaScript或是在浏览器发出请求之后,在被发送至服务器之前来篡改该HTTP请求即可。

  示例:

  正如你所看到的,此JavaScript仅在请求被实际发送至服务器之前处理你的请求,以及检查你上传的文件扩展名是否为(jpg,jpeg,bmp,gif,png)。这样的话,我们就可以拦截该请求并篡改文件内容(恶意代码),然后将图片扩展名更改为可执行文件的扩展名(如php,asp)。

  

  如上图所示,我们试图上传一个直接的PHP文件,JavaScript阻止了我们的文件上传请求。

  

  我们可以通过浏览器来上传一个正常的图片格式来绕过该验证,然后拦截该请求再将其改回为php格式并将文件内容替换为我们的恶意代码,这样我们就能够成功上传我们的恶意php脚本了。

  顾名思义,就是在文件被上传到服务端的时候,对于文件名的扩展名进行检查,如果不合法,则拒绝这次上传。检查扩展名是否合法有两种常用策略,即黑名单和白名单策略。

  黑名单策略,即文件扩展名在黑名单中的为不合法。白名单策略,即文件扩展名不在白名单中的均为不合法。相对于黑名单,白名单策略更加安全的。通过限制上传类型为只有我们接受的类型,可以较好的保证安全,因为黑名单我们可以使用各种 *** 来进行注入和突破。

  我们可以通过上传一些平时不怎么用的容易被人忽视的文件扩展名,来绕过这种类型的验证。

  黑名单绕过

  通过上传不受欢迎的php扩展来绕过黑名单。例如:pht,phpt,phtml,php3,php4,php5,php6

  白名单绕过

  通过某种类型的技巧来绕过白名单,例如添加空字节注入(shell.php%00.gif),或使用双重扩展来上传文件(shell.jpg.php)。

  此外,我们还可以尝试扩展名大小写来绕过,例如:pHp,Php,phP。

  示例:

  以上代码将会阻止除jpg,jpeg,gif,png扩展名以外的,所有其它文件类型上传。在本例中我们将尝试绕过该检查,并在Web服务器上传一个php文件。

  黑名单绕过

  

  正如你所看到的,将php文件的后缀更改为.php5(Apache服务器会将其视为php文件执行)后,就可以成功绕过该上传验证。

  白名单绕过

  

  如上图所示,我们使用了双重扩展名(shell.jpg.php)来绕过验证。

  Content-Type(内容类型),一般是指网页中存在的Content-Type,用于定义 *** 文件的类型和网页的编码,决定文件接收方将以什么形式、什么编码读取这个文件。例如,一些图像文件上传通过检查文件的内容类型是否为图像类型来验证上传的图像。

  该类型的绕过也非常简单,只需将“Content-Type”的参数类型更改为“image/ *”即可,例如“image/png”, “image/jpeg”, “image/gif”。

  示例:

  以上代码会检查Content-Type header中的MIME类型,仅接受类型为image/jpeg, image/gif, image/png的文件上传。我们只需只需将“Content-Type”的参数类型更改为其可接受的类型即可绕过。

  

  Content-Length验证是指服务器会对上传的文件内容长度进行检查,超出限制大小的文件将不允许被上传。虽然这种类型的验证不是很受欢迎,但在一些应用的文件上传中也时常能碰到。

  针对这种类型的验证,我们可以通过上传一些非常短的恶意代码来绕过。上传文件的大小取决于,Web服务器上的更大长度限制。我们可以使用不同大小的文件来fuzzing上传程序,从而计算出它的限制范围。

  示例:

  以上代码将限制大小超过30字节的文件上传。我们可以通过上传一个30字节以内大小的恶意payload文件来绕过它。

  

  参考来源

  http://www.securityidiots.com/Web-Pentest/hacking-website-by-shell-uploading.html

  http://www.net-informations.com/faq/asp/validation.htm

  https://www.owasp.org/index.php/Unrestricted_File_Upload

  http://www.sitepoint.com/mime-types-complete-list/

  https://www.w3schools.com/php/php_file_upload.asp

  https://stackoverflow.com/

  *参考来源:exploit-db,FB小编 secist 编译,转自FreeBuf

相关文章

淘宝店长培训内容有哪些,淘宝店长需要怎么样的培训

淘宝店长培训内容有哪些,淘宝店长需要怎么样的培训

如今即便 是在开淘宝店,做为店家大家必须把握和学习培训的专业技能也是有很多,一样的做为店家还可以开展学习培训来提高自己的开实体店专业技能。那麼下边就来讲下淘宝店长的学习培训全是如何的,有什么必须掌握学...

怎么查询在哪里开过房(怎么知道老婆和别人同个房)

怎么查询在哪里开过房(怎么知道老婆和别人同个房)

9月11日消息,据网信江苏微信公众号8月份,江苏省网信系统按照国家网信办统一部署,统筹组织开展暑期“清朗行动”、网络直播行业、“自媒体”基础管理、商业网站平台账号等专项整治,强化多部门协作监管,集...

知性内敛什么意思?马伊琍袁泉就是最好的诠释

知性内敛什么意思?马伊琍袁泉就是最好的诠释

袁泉和马伊琍主演的《我的前半生》曾引发了一波收视狂潮,两人也因剧中深深的闺蜜情圈粉无数。私下,袁泉和马伊琍这队好闺蜜合体登上ELLE11月刊杂志封面照,两人身穿同款姐妹装,同是短发的两人尽显女性的知性...

微信被骗了找黑客-天才黑客菜霸鄢奉天(天才黑客菜霸鄢奉天原型的影戏

网络黑客饵料如何使用 黑基网相近的网址(黑基网电脑上刷q币) 网络黑客怎祥改支付平台 哪的羽士招徒不要钱(热血传奇羽士武器装备有什么) 网络黑客词典要怎么写 黑客软件如何进攻...

乌克兰总统办公室主任杨受成新冠病毒检测结果呈阳性

  新华社基辅11月9日电(记者李东旭)乌克兰总统办公室主任安德烈·叶尔马克9日新冠病毒检测结果呈阳性,他表示将进行自我隔离并继续工作。   叶尔马克当天在社交媒体上说,他目前身体状况良好,将进行自...

曹冲怎么死的,曹冲是谁杀死的!

曹冲怎么死的,曹冲是谁杀死的!

但是有一个神童,却是孔融无论如何也比不上的。他就是曹操的到七个儿子,曹冲,也是曹操最喜欢的儿子。 我们都知道曹冲称孙权给曹操送来的大象的故事,那时的曹冲,不过五六岁,其智商和想事情的能力就比一般...