ctfshow萌新赛KevinLu

admin 2022年1月5日23:04:40评论53 views字数 2172阅读7分14秒阅读模式

>

>

ctfshow萌新赛KevinLu

KevinLu

### Reverse
1.flag白给
上来先扫一下壳,发现了upx壳,脱壳后。
用ida打开
ctfshow萌新赛KevinLu
oh!这都是些啥呀!
算了吧。临走前看到一个字符串“HackAv”
随手一输
ctfshow萌新赛KevinLu
这也行??

2.数学不及格
按照题目描述,f[arg4-25923]是斐波那契数列200项以内的某一项。
并满足
ctfshow萌新赛KevinLu
这些条件。
将前三个等式相加。
联立第四个等式,爆破arg4.
得到arg4-25923=58
`f=[1,1,2]
for i in range(3,250):
f.append(f[i-1]+f[i-2])
print (f)
for x4 in range(2,201):
v123=1349446086540-x4
if(3*f[x4-1]-v123==151381742876+117138004530+155894355749):
print(x4)

v4=58
x4=v4+25923

x1=f[v4-1]-151381742876
x2=f[v4-1]-117138004530
x3=f[v4-1]-155894355749
print (hex(x1))
print (hex(x2))
print (hex(x3))
print (hex(x4))
print (f[v4-1])`
然后arg[1]到arg[4]就很简单了
0x666c61677b
0x6e65776265
0x655f686572
0x657d
16进制转字符串得到flag。

3.签退
uncompyle6反编译
拿到脚本随手输一个flag=flag{132456}
发现存在局部匹配,推断加密算法是局部对应的
爆破前两位得到“c
哦!盲猜一波c_t_f_s_h_o_w
但根据长度推算还差两位。
爆破一下。
得到flag{c_t_f_s_h_o_w
!}
### Pwn
1.数学99
其实就是做三个题,三个题都答对,就会设置中断信号到cat flag,并产生中断.
第一题:
a-b=9,0<=a<9,0<=b<9
显然b应该为负数。但是输入的字符串中不让有负号。
考虑到int的范围是-21474836482147483647。当数值超过这个范围就会反生溢出。
4294967295=-1
所以a b为
8 4294967295
第二题:
a*b=9,a>9,b>9
还是整数溢出
4294967305=9
分解4294967305因数
得到a b
446045 9629
第三题:
a/b=ERROR,b!=0
已知除数为0时会产生错误。
那除法还有什么情况下会产生错误呢。
-2147483648和-1都在int范围内
但-2147483648/-1=2147483648
超出了int,也会产生错误。
nc 连上直接输答案,就可以得到flag
### Misc
1.签到
html隐写,将制表位和空格转化成0和1
2进制转16进制转字符串 得到摩斯密码 解密得base64再解密得flag
2.萌新福利
winhex打开
ctfshow萌新赛KevinLu
ctfshow萌新赛KevinLu
异或ff 再加1相当于取负数
然后就变成了一个可以听的mp4
3.qrcode
01转二维码
`from PIL import Image,ImageEnhance
import random
a="1111111011100111101111111100000101011101000100000110111010010010010010111011011101010000110001011101101110101110110110101110110000010011011001010000011111111010101010101111111000000000011100110000000010000011010010111100110111010010110101100001001101100110100100111101111111111111100000000001101101110100101110100101101001011011011001000100100111111100111111111110110010000000010000011110111100110110010111111010110111111000100000000011101111000110101111111010101100101011011100000100011001110001011110111010010111101111101001011101000011101000110111101110100101000110000111010000010000100100100011101111111010110010101011111"
im = Image.new("RGB", (25, 25))

I=numpy.zeros((3,3),dtype=numpy.uint8)

for i in range(0,25):
for j in range(0,25):
if a[i*25+j]=='0':
im.putpixel((i, j), (255,255, 255))
else:
im.putpixel((i, j), (1, 1, 1))
im.show()
`
扫描得flag
### Crypto
1.签到题
base85解码得flag
2.抱我
分析词频
得到flag{}以外还有3 6 d
盲猜一波flag{36d}

### Web
太菜了...


  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年1月5日23:04:40
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   ctfshow萌新赛KevinLuhttps://cn-sec.com/archives/719851.html

发表评论

匿名网友 填写信息