当前位置:   article > 正文

BUUCTF-刷题记录-7_[guet-ctf2019]520的暗示

[guet-ctf2019]520的暗示

MISC

[GUET-CTF2019]soul sipse

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

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

得到这么一串Unicode字符

进行解码,得到

4070
1234
  • 1
  • 2

把其相加得到5304即为flag

[MRCTF2020]pyFlag

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

提示说flag被套娃base加密了

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

得到

475532444B4E525549453244494E4A57475132544B514A54473432544F4E4A5547515A44474D4A5648415A54414E4257473434544B514A5647595A54514D5A5147553444474D5A5547453355434E5254475A42444B514A57494D3254534D5A5447555A444D4E5256494532444F4E4A57475A41544952425547343254454E534447595A544D524A5447415A55493D3D3D
  • 1

这里从最后的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}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

[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]))
  • 1
  • 2
  • 3
  • 4
  • 5


后面其实是根据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()  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

发现一段base64代码

整理一下,即为

Q1RGe0p1c3RBUzBuZ0FiMHV0UDFuZ1Awbmd9
  • 1

base64解码得到

CTF{JustAS0ngAb0utP1ngP0ng}
  • 1

[ACTF新生赛2020]frequency

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

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

actfplokmijnuhbygvrdxeszwq}
  • 1

也就是

flag{plokmijnuhbygvrdxeszwq}
  • 1

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");
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

代码的逻辑还是很简单的,这里就不多说了,先用脚本将随机数转换成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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

然后使用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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

输入结果即可得到flag

[CISCN2019 华东南赛区]Web11

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

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

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
  

闽ICP备14008679号