HECTF 2020 Writeup
Misc
【真签到题】快来看直播啦~
打开直播间,即可在直播画面内找到flag
因此flag为 HECTF{狮虎萌轻一点打出题人好吗嘤嘤嘤}
png
下载得到一张小猫咪,查看文件末尾如下
1 |
|
使用base64得到 3b79bdf8fcfd55fd}
于是猜测这是一个md5的后半部分,使用somd5查询得到散列方法为 substr(md5($pass)),16,16)
,原文为 dsdfas
,因此正向计算md5为 94ed7fdae8f504743b79bdf8fcfd55fd
因此flag为 flag{94ed7fdae8f504743b79bdf8fcfd55fd}
不说人话
1 |
|
替换后使用Ook解码即可得到flag
因此flag为 HECTF{TH1s_1s_crypt0_914nda0}
Web
【BOOM】ezphp
1 |
|
第一层 $_GET['param1']!==$_GET['param2']&&md5($_GET['param1'])===md5($_GET['param2'])
只需构造 error === error
即可
第二层就是找两个0e的md5在弱类型判断的时候相等,但是一开始还不能相等,需要在替换后相等
根据 $a = strtr($md5_1, 'cxhp', '0123');
只需找到一个以 c
开头的纯数字md5,第二位是 e
即可
因此payload为 param1[]=1¶m2[]=2&str1=9427417&str2=QNKCDZO
因此flag为 hectf{b0c65ccf32a96a1f8dc3326f16ed4498}
injection
使用XPath盲注
1 |
|
1 |
|
使用如下代码爆破密码
1 |
|
获取到的admin密码为 339db714647a1d66b85cd08442287841
使用其尝试登录,即可得到flag
因此flag为 flag{53142eb4-d227-47e4-a7e7-902f7359a079}
Reverse
Hello_Re
1 |
|
可知flag为25位,分析 judge0
可发现前缀和后缀
1 |
|
1 |
|
因此flag模式应为
1 |
|
继续分析 judge1
1 |
|
1 |
|
原来是异或运算,写个脚本直接跑出来就行了,根本不用看 judge0
1 |
|
因此flag为 CTF{7hI5_1s_AA_real_f7Ag}
Crypto
在这里签到
1 |
|
使用Rabbit解码得到
1 |
|
使用base64解码得到
1 |
|
使用base32解码得到
1 |
|
使用base16解码得到
1 |
|
因此flag为 HECTF{438cd654dc85eec52cedab49d3d2f7ea}
rsa
题目给出了 {n, e, c}
,使用factordb得到 {p,q}
,直接解密即可
1 |
|
因此flag为 flag{8fb873baba0df4a6423be9f4bd525d93}
【BOOM】easyrsa
1 |
|
使用yafu爆破出p和q然后编写脚本直接解密即可,需要注意 gcd(e, phi) == 2
,我们只需要构造出 m^(2*0x10001*b) mod n
即可,其中有 0x1001*b = 1 mod phi
然后对得到 m^2 mod n
开平方根,exp如下
1 |
|
因此flag为 HECTF{ee709277385739acecbf0ebb06f0717b}
HECTF 2020 Writeup