Jarvis OJ平台basic部分writeup

2018-02-06 12:15:05 浏览数 (1)

题目

  • Base64?
  • 关于USS Lab
  • Veryeasy
  • 段子
  • 手贱
  • 美丽的实验室logo
  • veryeasyRSA
  • 神秘的文件
  • 公倍数
  • Secret
  • 爱吃培根的出题人
  • Easy RSA
  • 取证
  • 熟悉的声音
  • A Piece Of Cake
  • -.-字符串
  • 德军的密码:
  • 握手包

Base64?

题目描述:

GUYDIMZVGQ2DMN3CGRQTONJXGM3TINLGG42DGMZXGM3TINLGGY4DGNBXGYZTGNLGGY3DGNBWMU3WI===

Base32解码得到

504354467b4a7573745f743373745f683476335f66346e7d

貌似是十六进制,hackbar直接转换得到flag

PCTF{Just_t3st_h4v3_f4n}

关于USS Lab

题目描述:

USS的英文全称是什么,请全部小写并使用下划线连接_,并在外面加上PCTF{}之后提交

百度得到

Ubiquitous System Security Lab.

提交小写即可

PCTF{ubiquitous_system_security}

Veryeasy

题目描述:

使用基本命令获取flag

Linux下使用strings命令查看文件得到flag

PCTF{strings_i5_3asy_isnt_i7}

段子

题目描述:

程序猿圈子里有个非常著名的段子:

手持两把锟斤拷,口中疾呼烫烫烫。

请提交其中"锟斤拷"的十六进制编码。(大写)

使用python

#-*-coding:utf-8-*-

print '锟斤拷'.encode('hex').upper()

PCTF{EFBFBDEFBFBD}

一定要注明编码方式

手贱

题目描述:

某天A君的网站被日,管理员密码被改,死活登不上,去数据库一看,啥,这密码md5不是和原来一样吗?为啥登不上咧?

d78b6f302l25cdc811adfe8d4e7c9fd34

仔细观察这串字符是33位,发现不属于十六进制的字母l,将其删除,解密md5得到字符串hack

PCTF{hack}

美丽的实验室logo

题目描述:

出题人丢下个logo就走了,大家自己看着办吧

下载图片丢到Stegsolve分析

放Frame Broswer,第二个就是flag

PCTF{You_are_R3ally_Car3ful}

veryeasyRSA

题目描述:

已知RSA公钥生成参数:

代码语言:js复制
p = 3487583947589437589237958723892346254777
q = 8767867843568934765983476584376578389
e = 65537

求d =

请提交PCTF{d}

直接用python

代码语言:js复制
mport gmpy2
import libnum
p = 3487583947589437589237958723892346254777
q = 8767867843568934765983476584376578389
e = 65537
l = (p-1) * (q-1)
d = gmpy2.invert(e,l)
print d
PCTF{19178568796155560423675975774142829153827883709027717723363077606260717434369}

神秘的文件

题目描述:

出题人太懒,还是就丢了个文件就走了,你能发现里面的秘密吗?

Binwalk分析发现是个磁盘文件,建个文件夹挂在上去看看

mkdir mnt

mount haha mnt

进去发现一堆文件,随便打开一个文件都有内容,将所有文件遍历读取结合在一起看看

代码语言:js复制
strs = ''
for i in range(0,254):
    f = open(str(i))
    s = f.readline()
    strs  = s
    f.close
print strs

输出如下内容:

代码语言:js复制
Haha ext2 file system is easy, and I know you can easily decompress of it and find the content in it.But the content is spilted in pieces can you make the pieces together. Now this is the flag PCTF{P13c3_7oghter_i7}. The rest is up to you. Cheer up, boy.

得到flag

公倍数

题目描述:

请计算1000000000以内3或5的倍数之和。

如:10以内这样的数有3,5,6,9,和是23

请提交PCTF{你的答案}

这道题很耗费内存啊,无奈的我就分开一段一段的算了出来

最后结果是233333333166666668

Secret

传说中的签到题

题目入口:http://web.jarvisoj.com:32776/

Hint1: 提交格式PCTF{你发现的秘密}

在heaers中发现了Secret: Welcome_to_phrackCTF_2016

提交flag: PCTF{Welcome_to_phrackCTF_2016}

爱吃培根的出题人

题目描述:

听说你也喜欢吃培根?那我们一起来欣赏一段培根的介绍吧:

bacoN is one of aMerICa'S sWEethEartS. it's A dARlinG, SuCCulEnt fOoD tHAt PaIRs FlawLE

什么,不知道要干什么?上面这段巨丑无比的文字,为什么会有大小写呢?你能发现其中的玄机吗?

提交格式:PCTF{你发现的玄机}

既然题目说是培根,那就按照培根的思路走,但是又没有字母ab,那就大小写转换成ab试试

代码语言:js复制
#-*-coding:utf-8-*-
list1 = []
list2 = []
list3 = []
list4 = []
res1 = []
res2 = []
strs = "bacoN is one of aMerICa'S sWEethEartS. it's A dARlinG, SuCCulEnt fOoD tHAt PaIRs FlawLE"
for i in strs:
         if i.isupper():
                   list1.append('b')
         elif i.islower():
                   list1.append('a')
strs1 = ''.join(list1)
len1 = len(list1)
for i in range(0,len1 1,5):
         list2.append(i)
len2 = len(list2)
for i in range(len2):
         if i != len2 - 1:
                   list3.append(strs1[list2[i]:list2[i 1]])
for i in list3:
         list4.append(i.upper())
dir1 = {'A':'aaaaa','B':'aaaab','C':'aaaba','D':'aaabb','E':'aabaa','F':'aabab','G':'aabba','H':'aabbb','I':'abaaa','J':'abaab','K':'ababa','L':'ababb','M':'abbaa','N':'abbab','O':'abbba','P':'abbbb','Q':'baaaa','R':'baaab','S':'baaba','T':'baabb','U':'babaa','V':'babab','W':'babba','X':'babbb','Y':'bbaaa','Z':'bbaab'}
dir2 = {'a':'AAAAA','g':'AABBA','n':'ABBAA','t':'BAABA','b':'AAAAB','h':'AABBB','o':'ABBAB','u/v':'BAABB','c':'AAABA','i/j':'ABAAA','p':'ABBBA','w':'BABAA','d':'AAABB','k':'ABAAB','q':'ABBBB','x':'BABAB','e':'AABAA','l':'ABABA','r':'BAAAA','y':'BABBA','f':'AABAB','m':'ABABB','s':'BAAAB','z':'BABBB'}
for i in range(len(list3)):
         for j in dir1:
                   if list3[i] == dir1[j]:
                            res1.append(j)
print ''.join(res1)
for i in range(len(list4)):
         for j in dir2:
                   if list4[i] == dir2[j]:
                            res2.append(j)
print ''.join(res2)

输出两个结果为:

代码语言:js复制
BACNMIRMNSFNND
baconi/jsnotfood

最后提交PCTF{baconisnotfood}

Easy RSA

题目描述:

还记得veryeasy RSA吗?是不是不难?那继续来看看这题吧,这题也不难。

已知一段RSA加密的信息为:0xdc2eeeb2782c且已知加密所用的公钥:

(N=322831561921859 e = 23)

请解密出明文,提交时请将数字转化为ascii码提交

比如你解出的明文是0x6162,那么请提交字符串ab

提交格式:PCTF{明文字符串}

先分解质因数p和q,将密文转换成十进制,还是上边的程序,做个转换就好了

分解质因数的函数我用的网上的

代码语言:js复制
def getChildren(num): 
    isZhishu = True 
    i = 2 
    square = int(math.sqrt(num))   1 
    while i <= square: 
        if num % i == 0: 
            list.append(i) 
            isZhishu = False 
            getChildren(num / i) 
            i  = 1 
            break 
        i  = 1 
    if isZhishu: 
        list.append(num) 
import gmpy2
import libnum
import math
p = 13574881
q = 23781539L
e = 23
c = 242094131279916
l = (p-1) * (q-1)
d = gmpy2.invert(e,l)
m = pow(c,d,n)
print libnum.n2s(m)

最后解出来是3a5Y

提交PCTF{3a5Y}

取证

直接搜索linux内存取证,可以找到一款工具叫Volatility

提交其小写就好PCTF{volatility}

熟悉的声音

题目描述:

两种不同的元素,如果是声音的话,听起来是不是很熟悉呢,据说前不久神盾局某位特工领便当了大家都很惋惜哦

XYYY YXXX XYXX XXY XYY X XYY YX YYXX

请提交PCTF{你的答案}

看到声音两个字想到了摩斯密码,于是替换X和Y

print "XYYY YXXX XYXX XXY XYY X XYY YX YYXX".replace('X','.').replace('Y','-')

print "XYYY YXXX XYXX XXY XYY X XYY YX YYXX".replace('Y','.').replace('X','-')

得到两个结果

.--- -... .-.. ..- .-- . .-- -. --..

-... .--- -.-- --. -.. - -.. .- ..--

解密得到两个结果

JBLUWEWNZ

BJYGDTDA#

提交两个结果发现都不正确,会不会是经凯撒移位了,爆破之后得到这样一个结果

PHRACKCTF

提交PCTF{PHRACKCTF},正确

Help

题目描述:

出题人硬盘上找到一个神秘的压缩包,里面有个word文档,可是好像加密了呢~让我们一起分析一下吧!

题目没有任何提示,猜想可能是个伪加密

将09改为00即可

解压后得到一个word文档,只有一张图片

然而word文档是可以解压的,改后缀,解压后在media文件夹下发现了另一张图片

PCTF{You_Know_moR3_4boUt_woRd}

A Piece Of Cake

题目描述:

nit yqmg mqrqn bxw mtjtm nq rqni fiklvbxu mqrqnl xwg dvmnzxu lqjnyxmt xatwnl, rzn nit uxnntm xmt zlzxuuk mtjtmmtg nq xl rqnl. nitmt vl wq bqwltwlzl qw yivbi exbivwtl pzxuvjk xl mqrqnl rzn nitmt vl atwtmxu xamttetwn xeqwa tsftmnl, xwg nit fzruvb, nixn mqrqnl ntwg nq gq lqet qm xuu qj nit jquuqyvwa: xbbtfn tutbnmqwvb fmqamxeevwa, fmqbtll gxnx qm fiklvbxu ftmbtfnvqwl tutbnmqwvbxuuk, qftmxnt xznqwqeqzluk nq lqet gtamtt, eqdt xmqzwg, qftmxnt fiklvbxu fxmnl qj vnltuj qm fiklvbxu fmqbtlltl, ltwlt xwg exwvfzuxnt nitvm twdvmqwetwn, xwg tsivrvn vwntuuvatwn rtixdvqm - tlftbvxuuk rtixdvqm yivbi evevbl izexwl qm qnitm xwvexul. juxa vl lzrlnvnzntfxllvldtmktxlkkqzaqnvn. buqltuk mtuxntg nq nit bqwbtfn qj x mqrqn vl nit jvtug qj lkwnitnvb rvquqak, yivbi lnzgvtl twnvnvtl yiqlt wxnzmt vl eqmt bqefxmxrut nq rtvwal nixw nq exbivwtl.

刚开始以为是移位,试了试nit替换成the,发现不是

后来想想可能是字频分析,直接在线分析

网址:https://quipqiup.com/

分析的结果为:

the word robot can refer to both physical robots and virtual software agents, but the latter are usually referred to as bots. there is no consensus on which machines ?ualify as robots but there is general agreement among e?perts, and the public, that robots tend to do some or all of the following: accept electronic programming, process data or physical perceptions electronically, operate autonomously to some degree, move around, operate physical parts of itself or physical processes, sense and manipulate their environment, and e?hibit intelligent behavior - especially behavior which mimics humans or other animals. flag is substitutepassisveryeasyyougotit. closely related to the concept of a robot is the field of synthetic biology, which studies entities whose nature is more comparable to beings than to machines.

提交PCTF{substitutepassisveryeasyyougotit}

-.-字符串

题目描述:

请选手观察以下密文并转换成flag形式

..-. .-.. .- --. ..... ..--- ..--- ----- .---- ---.. -.. -.... -.... ..... ...-- ---.. --... -.. .---- -.. .- ----. ...-- .---- ---.. .---- ..--- -... --... --... --... -.... ...-- ....- .---- -----

flag形式为32位大写md5

题目来源:CFF2016

摩斯密码翻译结果:

FLAG522018D665387D1DA931812B77763410

直接提交:522018D665387D1DA931812B77763410

德军的密码:

题目描述:

已知将一个flag以一种加密形式为使用密钥进行加密,使用密钥WELCOMETOCFF加密后密文为

000000000000000000000000000000000000000000000000000101110000110001000000101000000001

请分析出flag。Flag为12位大写字母

参考http://www.360doc.com/content/15/0222/14/21874787_450053353.shtml

二战时德军使用过的一种密码,其实是利用了二进制的表示法来替代字母,有如下的表格作为基础:

都是7个7个一组,然后同秘钥进行异或运算,最后将二进制数据转换为字母即可

0000000 ⊕ 1010111(W) = 1010111

0000000 ⊕ 1000101(E) = 1000101

0000000 ⊕ 1001100(L) = 1001100

0000000 ⊕ 1000011(C) = 1000011

0000000 ⊕ 1001111(O) = 1001111

0000000 ⊕ 1001101(M) = 1001101

0000000 ⊕ 1000101(E) = 1000101

0010111 ⊕ 1010100(T) = 1000011

0000110 ⊕ 1001111(O) = 1001001

0010000 ⊕ 1000011(C) = 1010011

0010100 ⊕ 1000110(F) = 1010010

0000001 ⊕ 1000110(F) = 1000111

最后提交WELCOMECISRG即可

握手包

题目描述:

给你握手包,flag是Flag_is_here这个AP的密码,自己看着办吧。

提交格式:flag{WIFI密码}

直接使用kali解密,我用的字典是/usr/share/wordlists/rockyou.txt

提交flag{11223344}

0 人点赞