首页 > Web开发 > 详细

CTFHub技能树-Web-文件上传-00截断

时间:2020-04-02 20:44:11      阅读:574      评论:0      收藏:0      [点我收藏+]


如果你没有在 cnblog 作者为 carr0t2 中看到此文章,建议访问 原网页以获取更好的排版,图片体验

题目

技术分享图片
技术分享图片
下面是网页中的代码

if (!empty($_POST[‘submit‘])) {
    $name = basename($_FILES[‘file‘][‘name‘]);
    $info = pathinfo($name);
    $ext = $info[‘extension‘];
    $whitelist = array("jpg", "png", "gif");
    if (in_array($ext, $whitelist)) {
        $des = $_GET[‘road‘] . "/" . rand(10, 99) . date("YmdHis") . "." . $ext;
        if (move_uploaded_file($_FILES[‘file‘][‘tmp_name‘], $des)) {
            echo "<script>alert(‘上传成功‘)</script>";
        } else {
            echo "<script>alert(‘上传失败‘)</script>";
        }
    } else {
        echo "文件类型不匹配";
    }
}

思路

  • 搜索00截断内容
  • C语言中学过字符串的结尾会有00作为字符串结束的标志,这里同理,$des在连接的时候最前面连接的是$_GET[‘road‘],而$_GET[‘road‘]这个参数又是我们可以编辑指定的,所以可以构造出00截断,这里涉及到URL编码内容
  • 推荐阅读
    https://zhuanlan.zhihu.com/p/27739315
    https://www.seebug.org/vuldb/ssvid-89630

工具

1.中国蚁剑
2.bp

解法

1、bp开代理,上传图片马并截获
技术分享图片

2、构造00截断上传
技术分享图片

3.中国蚁剑连接,获得flag

后记

自己目前还不太会php代码,所以就自己调试,发现这几个变量上传之后的情况
技术分享图片

自己用电脑调试时候发现%00会被解析成\0,后来在上面知乎文中得到了解释
技术分享图片

我们现在已经知道使用%00截断有两个条件php版本小于5.3.4和magic_quotes_gpc为off状态。 如果这时我们将magic_quotes_gpc改为on那么就不能截断了,因为开启magic_quotes_gpc后%00会被加上一个反斜杠转义掉

CTFHub技能树-Web-文件上传-00截断

原文:https://www.cnblogs.com/carr0t/p/12622236.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!