当前位置:首页 > CTF > 正文内容

(原创)北京邮电大学网络空间安全 - 自主招生复试 CTF 题 wp

admin7年前 (2018-06-12)CTF84

写在开头的话:

今年总共有三所院校自主招生里面提到了对网络空间安全特长生有高考优惠政策招生,分别是四川大学,北京邮电大学,中国科技大学。其中中国科技大学和北京邮电大学是降分到当地一本线录取,川大有三个等级,第一等级是降分到当地一本线录取,第二个等级是降分一本线下 30 分录取,第三个等级是破格录取,即不看高考分数录取。  因为在今年自招报名的时候,正好川大限制的报名院校数量是三所,所以我都报名了这三所学校。  最终的初审结果是通过了川大和北邮的初审,中国科技大学初审没通过(看来中科大对文化课成绩要求还是很高 -_-),其中,川大初审全国通过了三十多个人,北邮初审全国通过了七个人。 最终一番纠结还是选择了去北邮复试,于是乎高考考完英语下午就直奔北京参加考试去了,昨天回到克拉玛依,和同行的也通过了川大和北邮初审最终选择了北邮的好朋友 iosmosis 一同记录下这篇关于北邮自招复试的文章内容,希望能对有需要的小伙伴提供到帮助~ 值得一提的是北邮的最终复试,当天只有四个人到了现场,其中一个人选择的 ACM,我和剩下两人选择的 CTF。北邮复试分为上午机试(CTF 和 ACM 二选一)三小时,下午面试每个人大约十分钟时间,抽两个问题回答,和其他问题。

上午 CTF 内容(WEB 和 RE 各三道)

RE 下载链接  https://www.klmyssn.com/CTF/BUPTzizhao.zip

simple

这题还是比较简单的,首先直接 ida 打开。

点击查看原图

通过下面的 点击查看原图

我们便可以得出 flag 长度为 32 然后分析内部的操作。我们可显然可以看出算法核心就是对 flag 进行一堆骚操作之后与 v6 数组进行比较 ---> 遇见这种题目我们很容易想出使用 z3 约束进行求解 但是这里其实还有一个坑,他在骚操作的时候用了 uint8,而 uint8 的上限是 256,所以我们在写约束的时候要 %256. code 如下

from z3 import *

str1 = [

0x4f,0x3b,0x23,0x11,0xe1,0x1f,0xfe,0xb3,0x4b,0xdd,0x75,0xfe,0x47,0xec,0xf2,

0x43,0xdc,0x38,0xd4,0x64,0xde,0x45,0xbd,0x01,0x1b,0x04,0xb9,0x89,0x7d,0xb6,0x4e,0xe2]

str2 = [

0x6b,0x6e,0x26,0x54,0x56,0x4b,0xe8,0x80,0xdc,0x28,0x46,0x18,0x71,0xcb,0x65,0x44,0x9b,0x2b,0x22,0x82,0x2b,0x56,0x8e,0xe7,0x69,0x41,0x4c,0x1f,0x3a,0x45,0x5c,0x35]

flag = [BitVec("flag%d"%i,16) for i in range(32)]

S = Solver()

for i in range(32):

S.add(flag[i] > 32)

S.add(flag[i] < 128)

S.add((str2[i]^(((16*flag[i])|(flag[i]>>4))%256)) == str1[i])

if S.check() == sat:

m = S.model()

flag1 = ''

for i in range(32):

    flag1 += chr(m[flag[i]].as_long())
print flag1

print flag1

运行得到 flag:

BUPT{Ea3y_3ncrypt1on_13n'T_it?!}

kaisa

依然直接 IDA 打开

点击查看原图

结合 hint 很显然可以看出是凯撒加密,同时 v5=11,显然右移了 11 位,直接取出数据用工具暴力跑一波,得到 flag:

BUPT{Ka1_3A_I3_vERy_SmarT_R1Gni?!?}

*main

不会。。。。。

WEB

easyphp

右键查看网站源码

<html>
   <head>
       <meta http-equiv="content-type" content="text/html;charset=utf-8">
   </head>
   <body>

       <!--
       index.php
       <?php    
$flag='xxx';    
extract($_GET);    
if(isset($gift)){        
   $content=trim(file_get_contents($flag));
   if($gift==$content){
       echo'flag';    
   }
   else{      
       echo'flag has been encrypted';}  
   }
?>
-->
   </body>
</html>

发现 hint 存在 flag 这个文件,读入到 content;输入 gift,如果 gift=content 则输出 flag。

尝试访问:http://10.112.163.9:8888/web2/index.php?gift=

返回:

Warning: file_get_contents(xxx): failed to open stream: No such file or directory in /var/www/html/web2/index.php on line 6

flag is OHCG{82s5r276o3006q2054048p6799op543q}

根据提示 flag has been encrypted,所以猜测 flag 被某种方式加密,猜测为凯撒加密,用工具爆破了一下:

PIDH{82t5s276p3006r2054048q6799pq543r}


QJEI{82u5t276q3006s2054048r6799qr543s}


RKFJ{82v5u276r3006t2054048s6799rs543t}


SLGK{82w5v276s3006u2054048t6799st543u}


TMHL{82x5w276t3006v2054048u6799tu543v}


UNIM{82y5x276u3006w2054048v6799uv543w}


VOJN{82z5y276v3006x2054048w6799vw543x}


WPKO{82a5z276w3006y2054048x6799wx543y}


XQLP{82b5a276x3006z2054048y6799xy543z}


YRMQ{82c5b276y3006a2054048z6799yz543a}


ZSNR{82d5c276z3006b2054048a6799za543b}


ATOS{82e5d276a3006c2054048b6799ab543c}


BUPT{82f5e276b3006d2054048c6799bc543d} //因为提示flag格式为BUPT{}因此此为flag


CVQU{82g5f276c3006e2054048d6799cd543e}


DWRV{82h5g276d3006f2054048e6799de543f}


EXSW{82i5h276e3006g2054048f6799ef543g}


FYTX{82j5i276f3006h2054048g6799fg543h}


GZUY{82k5j276g3006i2054048h6799gh543i}


HAVZ{82l5k276h3006j2054048i6799hi543j}


IBWA{82m5l276i3006k2054048j6799ij543k}


JCXB{82n5m276j3006l2054048k6799jk543l}


KDYC{82o5n276k3006m2054048l6799kl543m}


LEZD{82p5o276l3006n2054048m6799lm543n}


MFAE{82q5p276m3006o2054048n6799mn543o}


NGBF{82r5q276n3006p2054048o6799no543p}


OHCG{82s5r276o3006q2054048p6799op543q}

计算题

题目提示 1s 中回答随机产生的数学题,运算符号不发生改变,所以用 python 先取出需要运算的数然后进行运算,最后 post 提交即可。EXP 如下:

import urllib2, urllib

data = {'v' : '1'}
f = urllib2.urlopen(
url     = 'http://10.112.163.9:8888/web1/index.php',
#data    = urllib.urlencode(data)
)
res = f.readlines()
temp = str(res).split('<br/>')
print temp
res1 = temp[len(temp)-1]
print res1
temp = str(res1).split('=')
res2 = temp[len(temp)-6]
print res2
res = res2
re1 = str(res).split('*')
print re1
a = re1[len(re1)-3]
re2 = re1[len(re1)-2]
re2 = str(re2).split('+')
print re2
b = re2[len(re2)-2]
print b
q = int(a)*int(b)
print q //前两位相乘
c = re2[len(re2)-1]
print c
re3 = re1[len(re1)-1]
print re3
re3 = str(re3).split('(')
print re3
re3 = re3[len(re3)-1]
re3 = str(re3).split(')')
print re3
re3 = re3[len(re3)-2]
print re3
re3 = str(re3).split('+')
print re3
d = int(re3[len(re3)-2])+int(re3[len(re3)-1])
print d //括号里面的相加
p = int(c)*int(d)
print p //括号外相乘
ss = int(p)+int(q)
print ss //执行完整的运算
data = {'v' : ss}
f = urllib2.urlopen(
url     = 'http://10.112.163.9:8888/web1/index.php',
data    = urllib.urlencode(data)
)
print f.read()

运行即可获取 flag:

flag is BUPT{7b28f26afca4bc2654bd83d2a2bdc546}

author: Mr.R(https://darkeyer.github.io/)  

iosmosis(https://iosmosis.github.io/


扫描二维码推送至手机访问。

版权声明:本文由克拉玛依三十年社团发布,如需转载请注明出处。

本文链接:https://www.klmyssn.com/?id=52

分享给朋友:

“(原创)北京邮电大学网络空间安全 - 自主招生复试 CTF 题 wp” 的相关文章

2017 ISG 管理运维赛(克拉玛依十三年团队)解题思路报告 V1.1

2017 ISG 管理运维赛(克拉玛依十三年团队)解题思路报告 V1.1

文档基础信息公司文档编号:SSN-17-09团队名称:克拉玛依 十三年(Karamay SSN)提交时间:2017 年 9 月声明本文档是高级中学十三年社团为 ISG 竞赛组委会、上海市信息安全行业协会提交的 ISG2017 解题文档,文档的所有权归十三年所有,任何对本文档的修改、发布、传播等行为都...

i 春秋 CTF 大本营 basic 部分 writeup

i 春秋 CTF 大本营 basic 部分 writeup

一、基础信息题目链接:https://www.ichunqiu.com/battalion二、题目解析1. 回旋 13 踢解题思路核心识别:题目中 “13” 是关键线索,对应ROT13 编码(凯撒密码的特殊形式,字母移位 13 位,A↔N、B↔O...Z↔M);解码规则:将字母按顺序移位 13 位,...

(原创)i 春秋 CTF 大本营 basic 部分 writeup【i 春秋】【ctf writeup】【入门 ctf 题】

(原创)i 春秋 CTF 大本营 basic 部分 writeup【i 春秋】【ctf writeup】【入门 ctf 题】

题目链接: https://www.ichunqiu.com/battalion1. 回旋 13 踢解题思路题目中 “13” 为关键提示,对应ROT13 编码(凯撒密码的特殊形式,字母循环移位 13 位,A↔N、B↔O...Z↔M),直接对密文进行 ROT13 解码即可得到 flag。编码规则ROT...

弱口令实验室招新赛 Writeup

弱口令实验室招新赛 Writeup

一、解题状况总览1. Web 类别签到小能手开胃菜小镇做题家DiscuzWeblogic2. MISC 类别签到Easymisc奇怪又不奇怪cookie 怎么分吉他Easyso3. Crypto 类别82.83.85SnakeCryptososbabyrsa RSbabyWhat奇怪又奇怪4. Re...

克拉玛依市第一届网络安全技能大赛-团队赛WP

克拉玛依市第一届网络安全技能大赛-团队赛WP

克拉玛依市第一届网络安全技能大赛-团队赛WP这次比赛成绩还是比较理想拿到了团队赛第二这次比赛赛题难度偏中等高级中学十三年团队共解出6题团队名称: 高级中学十三年解题人: xinyi,糖糖,太阳能Web1. ezbyp@ss1. <?php 2. highlight_fil...