BUUCTF-刷题记录-7

MISC

[GUET-CTF2019]soul sipse

steghide工具分析得到一个文件,无密码

得到一个链接
文件头错误,修复一下

得到这么一串Unicode字符

进行解码,得到

4070
1234

把其相加得到5304即为flag

[MRCTF2020]pyFlag

010分析发现,每一张图片最后面都有一段信息,把其按照顺序组合起来,得到一个加密得zip,爆破得到密码1234

提示说flag被套娃base加密了

后面的0x10、0x20、0x30、0x55代表的应该也就是base16base32base48base85
先进行base85解密

得到

475532444B4E525549453244494E4A57475132544B514A54473432544F4E4A5547515A44474D4A5648415A54414E4257473434544B514A5647595A54514D5A5147553444474D5A5547453355434E5254475A42444B514A57494D3254534D5A5447555A444D4E5256494532444F4E4A57475A41544952425547343254454E534447595A544D524A5447415A55493D3D3D

这里从最后的3D看得出来是==,不过缺少了%的url编码,写个脚本加个%并进行base32、base16解码,可能是应该少了个%,所以上面提示写的是0x30

import base64
from urllib import parse

s1 = "475532444B4E525549453244494E4A57475132544B514A54473432544F4E4A5547515A44474D4A5648415A54414E4257473434544B514A5647595A54514D5A5147553444474D5A5547453355434E5254475A42444B514A57494D3254534D5A5447555A444D4E5256494532444F4E4A57475A41544952425547343254454E534447595A544D524A5447415A55493D3D3D"
s2 = ""

for i in range(0,len(s1),2):
    s2 += '%'
    s2 += s1[i:i+2]

print(base64.b64decode(base64.b16decode(base64.b32decode(parse.unquote(s2)))))
# MRCTF{Y0u_Are_4_p3rFect_dec0der}

[UTCTF2020]spectogram

使用audacity工具打开,根据这个题目的名字提示去看频谱图,得到flag{sp3tr0gr4m0ph0n3}

[UTCTF2020]sstv

简单搜索,发现是使用RX-SSTV工具安装地址
这个工具的使用方法,首先安装完这个工具之后,在setup选择栏的第三个声音录入选择的地方选择这个设备

将其设为默认设备,如果没有的话,在这里安装一个
然后打开音频文件,同时点击右边的收听按钮,这个时候,声音就会被画成图片了,稍等一会儿即可

[GUET-CTF2019]520的暗示

dat文件与0x33异或后,得到一张图片

data = open("photo.dat",'rb')
strs = data.read()
flag = open("1.jpg",'ab+')
for i in strs:
    flag.write(bytes([i ^ 0x33]))


后面其实是根据LTE定位基站地址,最后定位到桂林电子科技大学花江校区,也就是flag为flag{桂林电子科技大学花江校区}

[UTCTF2020]File Carving

foremost分离出来一个zip,里面是一个ELF文件,丢尽linux,跑一下,即可得到flag

[BSidesSF2019]table-tennis

在ICMP包后面每一段都存在一点html标签及内容

写个脚本提取出来

from scapy.all import *
 
packets = rdpcap('1.pcapng')
f = open('1.txt','a')
 
for packet in packets:
    if packet.haslayer(ICMP):
        if packet[ICMP].type == 0:
            f.write(str(packet[ICMP].load[-8:]))

f.close()  

发现一段base64代码

整理一下,即为

Q1RGe0p1c3RBUzBuZ0FiMHV0UDFuZ1Awbmd9

base64解码得到

CTF{JustAS0ngAb0utP1ngP0ng}

[ACTF新生赛2020]frequency

首先是发现了一大段的隐藏文字,然后在备注里面发现一段

组合起来,进行base64解码,得到一大串字符,然后根据题目名字提示进行词频统计得到flag

actfplokmijnuhbygvrdxeszwq}

也就是

flag{plokmijnuhbygvrdxeszwq}

WEB

[GWCTF 2019]枯燥的抽奖

访问check.php发现源码

<?php
#这不是抽奖程序的源代码!不许看!
header("Content-Type: text/html;charset=utf-8");
session_start();
if(!isset($_SESSION['seed'])){
$_SESSION['seed']=rand(0,999999999);
}

mt_srand($_SESSION['seed']);
$str_long1 = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
$str='';
$len1=20;
for ( $i = 0; $i < $len1; $i++ ){
    $str.=substr($str_long1, mt_rand(0, strlen($str_long1) - 1), 1);       
}
$str_show = substr($str, 0, 10);
echo "<p id='p1'>".$str_show."</p>";


if(isset($_POST['num'])){
    if($_POST['num']===$str){x
        echo "<p id=flag>抽奖,就是那么枯燥且无味,给你flag{xxxxxxxxx}</p>";
    }
    else{
        echo "<p id=flag>没抽中哦,再试试吧</p>";
    }
}
show_source("check.php");

代码的逻辑还是很简单的,这里就不多说了,先用脚本将随机数转换成php_mt_seed工具可识别的数据

str1='abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
str2='ontHZFyPED'
str3 = str1[::-1]
length = len(str2)
res=''
for i in range(len(str2)):
    for j in range(len(str1)):
        if str2[i] == str1[j]:
            res+=str(j)+' '+str(j)+' '+'0'+' '+str(len(str1)-1)+' '
            break
print(res)
# 14 14 0 61 13 13 0 61 19 19 0 61 43 43 0 61 61 61 0 61 41 41 0 61 24 24 0 61 51 51 0 61 40 40 0 61 39 39 0 61

然后使用php_mt_seed工具进行爆破,得到seed:912644945

然后写个脚本即可

<?php
	mt_srand(912644945);
	$str_long1 = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	$str='';
	$len1=20;
	for ( $i = 0; $i < $len1; $i++ ){
    	$str.=substr($str_long1, mt_rand(0, strlen($str_long1) - 1), 1);       
	}
	echo $str;
?>
//ontHZFyPEDh6Gt31vzzO

输入结果即可得到flag

[CISCN2019 华东南赛区]Web11

看到是Smarty模板,并且显示了Current-ip

想到可能是在XFF头存在SSTI注入,尝试了一下,果然存在,而Smarty模板可以使用{if}标签来执行php代码,例如{if phpinfo()}{/if},于是cat /flag得到flag

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值