0x0 简介
Bilibili CTF 简称 BTF,是一个丝毫没有含金量的ctf,狗都不玩。
你甚至可以纯复制粘贴来得到90分,属实拉垮。
活动地址: https://www.bilibili.com/blackboard/20211024.html
但是不管怎么样,我们来写一点可爱的writeup吧
0x1 AES
猜一下,给了一个类似密码的东西,又给了一个类似加密后文本的字符串,那么就嗯破解就完事了
1 | a = "e9ca6f21583a1533d3ff4fd47ddc463c6a1c7d2cf084d364" |
flag: a1cd5f84-27966146-3776f301-64031bb9
0x2 Forensic
提示给的很明白了,没有含金量,直接在webpack里一翻就翻到了
flag: 36c7a7b4-cda04af0-8db0368d-b5166480
0x3 php web
题目给了一段php的代码
1 | <?php |
通过正则可以知道,所有args必须为非空格的字母或者数字,且最大长度为3
最后,这几个args会和/bin/2233 一起执行,执行的格式为 /bin/2233 args1 args2 args3
但是我们想要使用ls, 所以args1 要带上一个换行符, 换行符在url encode 后是%0a,
可以先用args[]=1%0a&args[]=ls
获取目录,然后用cat获取文件内容
1 | import requests |
flag: 9d3c3014-6c6267e7-086aaee5-1f18452a
0x4 sql injection
麻了
flag: 3d5dd579-0678ef93-18b70cae-cabc5d51
0x5 安卓逆向
先用dex2jar 把apk转成jar文件
然后用jd-gui打开,在 MainActivity里找到账号密码的加密方式
加密方式a为做异或,b为base64。反向解密一下就完事了。
1 | # dex2jar get jar file |
flag: 516834cc-50e448af-bcf9ed53-9ae4328e
0x6 安卓逆向 .so文件
ida打开MyLib.so文件,发现all函数
满足一下条件:
- 系统为x86且是安卓9
1
2print("ro.product.cpu.abi",(3553400).to_bytes(0x8,"little")) # x86
print("ro.build.version.release",(57).to_bytes(0x8,"little")) # 9 - 存在/data/2233 这个文件
- 有读写权限
那么这个flag就会写到/data/2233文件里
所以解题方法就是找一个安卓9, x86的系统,然后运行就完事了。
具体过程如下
1 | # C:\Users\aynakeya>adb shell su 0 setenforce 0 |
当然有dalao贴出了代码,我也不知道是怎么做到的。
1 | # from https://www.52pojie.cn/thread-1532604-2-1.html |
flag: b13981f4-5ae996d4-bc04be5b-34662a78
0x7 风控
拿一半分的方法,大概就是筛去爬虫,然后取访问次数最多的几个ip,其他就不知道了。
cr你隔这白嫖风控算法呐?