web安全之文件上传漏洞

文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力。文件上传功能本身是一个正常的业务需求,对于网站来说,很多时候也确实需要用户将文件上传到服务器。所以文件上传本身没有问题,但又问题的是文件上传后,服务器怎么处理、解释文件。如果服务器的处理逻辑做得不够安全,则会导致严重的后果。----摘自《白帽子讲WEB安全》

一、漏洞成立的条件

1、上传的文件能够被WEB容器解释执行。
2、用户能够从web上访问这个文件。如果文件上传了,但用户无法通过web访问,或者无法使得web容器解释这个脚本,那么也不能称之为漏洞。

二、常见防御措施及软肋

1、在前端验证文件扩展名

​ 通过这种方式的验证,绕过方式有二:

(1)客户端禁用JS脚本

​ 禁用JS脚本,这就使得验证文件的功能失效,用户可上传任意的文件。

(2)通过抓包改包方式

​ 假如前端限制了只允许上传png格式的文件。我们首先将一句话木马文件后缀名更改为png后上传。此时会绕过前端js的验证,绕过验证后,通过抓包,修改报文中文件名的后缀,使其还原。显然,一句话木马上传成功。

2、在服务端验证文件类型

​ 在服务端验证文件类型,一般是校验Content-type字段的值。同样,通过抓包改包可成功绕过其验证。

3、在服务端验证文件后缀名

(1)黑名单校验

​ 黑名单校验方式极不靠谱,我们总会找到一些漏网之鱼,也有可能存在一些大小写绕过的方式。比如 aSp 和 pHp 之类的。

(2)白名单校验

​ 白名单校验,其防御能力相对于黑名单校验,要更安全,增加了攻击者的攻击难度。但是白名单也有其软肋之处:如果服务器存在解析漏洞或截断,则会成功触发漏洞。如:

A:0x00 截断绕过

​ 用像test.asp%00.jpg的方式进行截断,属于白名单文件。由于存在0x00,服务器会认为是asp文件。

B:解析/包含漏洞绕过

​ 这类漏洞直接配合上传一个代码注入过的白名单文件即可,再利用解析,包含漏洞。

4、在服务端验证文件内容

​ 验证文件内容,加大了攻击者的攻击难度。但在一定条件下,也有绕过的可能。其绕过方式有二:

(1)制作图片马

(2)文件幻术头绕过

三、总结

​ 以上这些防御措施,如果在一定的限制条件下,是“安全的”。如果超过了安全边界,则会变得那么不安全。对于文件上传漏洞,我们只要知道它成立的条件,则可在一定程度上进行防御。其总结如下:

1、上传后的文件最好不可执行。

2、更改上传后的文件名,不与上传之前的文件名相同。

3、如非必要,不要暴漏文件的访问路径。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343

推荐阅读更多精彩内容

  • 文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力。这种攻击方式是最为直...
    付出从未后悔阅读 1,120评论 0 4
  • 什么是文件上传漏洞? 文件上传漏洞是指由于程序员在对用户文件上传部分的控制不足或者处理缺陷,而导致的用户可以越过其...
    Smi1e_阅读 24,676评论 0 24
  • 文件上传漏洞: 1.本地验证 本地验证:客户端本地通过前台JS脚本进行检测。 原理: 当用户在客户端选择文件点击上...
    xaviershun阅读 1,336评论 0 1
  • 一、初步认识 1.上传功能:网站上各种可以上传文件,图片的地方可以被用作上传点进行非法上传 2.上传原理:在前端代...
    楠昭阅读 1,616评论 1 11
  • 今天是4.9,自从4.5开始参加了树丰老师的晨间思活动,一共要为期28天。 今日将前面五天的复盘下: Day1: ...
    阿蕾阿蕾蕾阅读 132评论 1 0