文件上传(二)

文件上传(二)

下面我们来总结另外几个与中间件以及http请求头有关文件上传的漏洞,它们都与客户机或服务器的操作系统无关。

Apache

文件名解析漏洞

由于Apache解析文件后缀名的顺序是从右往左,所以我们可以在文件名最后加上Apache无法识别的文件后缀名来绕过。例如我们要上传一个PHP木马,那我们可以把文件名命名为”*.php.123″,其中”123″是Apache无法识别的后缀名,则Apache会解析左边的”php”后缀名,从而实现绕过。

.htaccess

Apache中的.htaccess文件是用户用来自定义管理目录的,我们可以新建一个”.htaccess”文件,并在里面写入自定义的内容,例如:

<FilesMatch "test">
    SetHandler
    application/x-httpd-php
</FilesMatch>

这样Apache会把文件名中含有”test”的文件当作PHP文件执行。利用这个特性,我们可以把图片马以这样的方式让Apache解析。

Nginx

文件名解析漏洞

大多数网站都使用白名单机制限制上传文件类型,但是我们可以在上传文件的路径后面加上”*.php”,例如https://www.example.com/upload/1.png/2.php。当Nginx解析到URL中的”2.php”时,由于我们并没有真正上传这个文件,Nginx会向上级目录查找,即把我们实际上传的”1.png”当作PHP文件解析。这里”1.png”实际上是修改了后缀名的大马或小马。

MIME类型检测

服务器通过对http请求头里的”content-type”字段进行检验,来判断文件类型是否符合要求。常见的符合要求的文件名有:image/jpeg,image/gif,image/png等。要利用这个漏洞,我们需要把http请求头中的”content-type”字段改为上面几种符合要求的MIME即可。不过要注意要在文件头加上”GIF89a”来绕过可能的文件头校验。

那如果遇到白名单检测呢?这时候就要配合文件包含漏洞了。在以后的笔记中,我将会总结文件包含的一些技巧。

P.S.开学了,以后笔记的提交和更新频率会有所减慢,敬请谅解!

知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。

感谢大家的耐心阅读,如有疑问,敬请在评论区留言!本文为明赫IT大本营的原创文章,经实践,测试,整理后发布。如需转载请联系作者获得授权,并注明转载地址。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇