网络信息安全攻防学习平台-上传关

  1. 网络信息安全攻防学习平台-上传关
    1. 第一题
      1. 方法一:
  2. 第二题:
  3. 第三题

网络信息安全攻防学习平台-上传关

注:本人使用的是火狐浏览器,下面会用到软件burpsuite
软件下载【https://portswigger.net/burp/communitydownload】
使用方法【https://jingyan.baidu.com/article/6f2f55a151c6ddb5b93e6c36.html】
下面开始解题

第一题

链接:【http://hackinglab.cn/ShowQues.php?type=upload】
在这里插入图片描述
点击通关地址
在这里插入图片描述

方法一:

以下是网页源代码(在此页面中点击鼠标右键中选择查看页面源代码):

<html>
    <head>
        <meta http-equiv=Content-Type content="text/html;charset=utf-8">
        <title>upload 1</title>
        <script>
            function check(){
                var filename=document.getElementById("file");
                var str=filename.value.split(".");
                var ext=str[str.length-1];
                if(ext=='jpg'){
                    return true;
                }else{
                    alert("请上传一张JPG格式的图片!")
                    return false;
                }
                return false;
            }
        </script>
    </head>
    <body>
        请上传一张JPG格式的图片!
        <form action="upload_file.php" method="post" enctype="multipart/form-data" onsubmit="return check()">
            <label for="file">文件名</label>
            <input type="file" name="file" id="file" /> 
            <br />
            <input type="submit" name="submit" value="上传" />
        </form>
    </body>
</html>

代码中第八行中的语句语义为:将文件的名字以“ . ”进行分割存放在一个数组中。第9行中是用数组中的最后一个进行判断,用来执行下面的函数。
一般的网页是不会显示此代码的,由此代码可知题中的逻辑判断不是由后台判断的,是前端直接进行判断,就出现了第一种解决办法(用我上述的软件进行解决)
我们首先开启上述软件后在自己的电脑中选择一张自己的图片,点击上传会在软件中得到此代码,这时我们已经通过了前端对文件的认证,将下图中箭头所指的文件后缀名改为其他的文件的后缀名(例如:txt、exe等)即可得到key
在这里插入图片描述
key is IKHJL9786#$%^&

###方法二:
在这里插入图片描述
进入通关地址后按键盘F12进入浏览器的web开发者界面如图,我们可以看到箭头所指的“return check()”我们可以直接跳过页面源码中的check()函数,将check双击修改为true,后点击上传即可得到key。
在这里插入图片描述

第二题:

链接:【http://hackinglab.cn/ShowQues.php?type=upload】
此题的解决办法与上一题中的第一种方法相同。(用软件得到代码后修改文件后缀名得到key)
在这里插入图片描述

第三题

链接【http://hackinglab.cn/ShowQues.php?type=upload】
进入通关地址后我们选择看页面源代码:

<html>
    <head>
        <meta http-equiv=Content-Type content="text/html;charset=utf-8">
        <title>upload 1</title>
        <script>
            function check(){
                var filename=document.getElementById("file");
                var str=filename.value.split(".");
                var ext=str[1];
                if(ext==='jpg'){
                    return true;
                }else{
                    alert("请上传一张JPG格式的图片!");
                    return false;
                }
                return false;
            }
        </script>
    </head>
    <body>
        请上传一张JPG格式的图片!
        <form action="upload_file.php" method="post" enctype="multipart/form-data" onsubmit="return check()">
            <label for="file">文件名</label>
            <input type="file" name="file" id="file" /> 
            <br />
            <input type="submit" name="submit" value="上传" />
        </form>
    </body>
</html>

可以看到它与第一题中的源码大致相同,但是在第9行中做了改变,由第一题中数组的最后一个修改为第二个。由此我们可以通过文件的命名来解决此题。例如将上传的文件命名为:文件名.jpg.txt(中间是有点的)即可得到key
在这里插入图片描述
此题还有第二种解决方法,(小编掌握的也掌握的不好,就不写了)思路为:一般接收文件都会以 /0 来结束检索,我们可以在上述的软件中修改上传文件后缀名的ASCII值来得到key。

下面小编来说一下我对此上传关的一些感受:本关内的三个题主要就是如何绕过页面源码对文件的判断,来上传一些jpg外的文件。例如你想黑入一个服务器(上传病毒,但是你想要上传的文件类型不可能是jpg的) 但其只允许你上传图片类型的文件,你需要绕过其前端的判断。


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 2924854739@qq.com

文章标题:网络信息安全攻防学习平台-上传关

本文作者:DROBP

发布时间:2019-08-29, 10:12:48

最后更新:2019-08-29, 10:14:50

原始链接:https://DROBP.github.io/2019/08/29/网络信息安全攻防学习平台-上传关/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏