- 在线时间
- 1630 小时
- 最后登录
- 2024-1-29
- 注册时间
- 2017-5-16
- 听众数
- 82
- 收听数
- 1
- 能力
- 120 分
- 体力
- 563327 点
- 威望
- 12 点
- 阅读权限
- 255
- 积分
- 174221
- 相册
- 1
- 日志
- 0
- 记录
- 0
- 帖子
- 5313
- 主题
- 5273
- 精华
- 3
- 分享
- 0
- 好友
- 163
TA的每日心情 | 开心 2021-8-11 17:59 |
|---|
签到天数: 17 天 [LV.4]偶尔看看III 网络挑战赛参赛者 网络挑战赛参赛者 - 自我介绍
- 本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。
 群组: 2018美赛大象算法课程 群组: 2018美赛护航培训课程 群组: 2019年 数学中国站长建 群组: 2019年数据分析师课程 群组: 2018年大象老师国赛优 |
& u5 R+ ^& @; B2019--国赛--第一次参加线上赛的自己的整理5 n( p/ D# ^! }- t& x+ l/ u: n1 I( S: h
misc第一题:签到
3 h4 p5 t( m0 |+ a! s# @! @$ Q% _9 J C
打开压缩包,发现一个exe文件和一个txt,要三个人一起站到摄像机,然后等软件识别,就出flag了( [! L1 ^& _+ K# O; i: q1 W* a7 t
2 G" F3 T( S9 a$ N, Y$ c
但是我发现,你拿手机放一张照片(有三个人或比三人多)上去也可以出flag,所以推测出,该软件是甄别像素点来进行识别的
" f; X% N, c9 k! P0 D. f2 m# E4 Q" O6 Z# S' @9 [
misc第二题:saleae7 M. u X# ]. ^
. {% M. O% @5 ]$ Y5 y$ ^5 y
下载压缩包,得到一个.logic的程序,都是新东西,没人知道这是用什么软件来打开的,我发现这个特别考百度能力(捂脸)就是需要logicdata软件
8 s# Y) H7 n" z+ d, V2 K, u, [( e. m- a
下载后,发现其中给的是波形/ `! Y- J5 E) }
7 Q3 Q1 O) F+ u n% ?( H, K: {5 j/ I* y然后去百度,发现这个软件是与芯片的输入输出有关,(后面是可以利用旁边的软件来读取flag的)
1 B$ M2 W: {& w' ?
; t4 P' `. p: D3 l当时的我们没发现这个好办法,只能是0101010101的将flag读出来,然后进行转换成字符串% Y3 \& u0 B2 b3 `, \
* b" a# B) L, k: w" L$ Q7 Emisc第三题:24C' k% h! t: v4 k* s6 q
. j' ?8 M. Q' t6 d
与第二题类似,但是需要一点脑洞,就是记得改变它的读取顺序就好了
8 Q9 o4 s0 Q9 }* Y/ j
" ?% e5 B& Z& m: I+ L6 C# d Acrypto第一题:puzzle
/ i! a, W# t& T+ g2 I) J9 O
+ Z$ ~6 v+ I4 s) S/ h# v首先是给了一个网站,心想还是不是web+密码,那就有点…舒(zi)适(nue)了吧
+ v0 n# c+ B" g7 A4 N& h, M
6 `$ D+ K% A1 \' z5 L让我深深的感受到数学的重要性,三重积分还没学的我,简直看的如痴如醉,第一题的素数来找规律,让我懵逼好久,这是什么题哦9 o4 y+ r7 q0 D& K$ }" ]; q7 q8 F
6 o4 G- J+ ~1 @ @; J! r- |7 s所有的一切都是从0开始的感觉,于是就开启了自学之旅
- p& s5 q: F/ S8 K, A$ O: F& h/ R
提示一下:1、question0 记得化简运算,当然网上也有计算器(当时死算到无奈,后面还错了)
( r6 ^ b) K* S: m \/ j% a8 Y
; p2 t+ V0 D" m: t 2、question1就是分组找规律,与素数有关
, x, m% F8 o2 t+ ]4 V
5 w4 r: W+ x g& M' `7 x3 I 3、question2是做的最舒服的一道题,简简单单的高数上的计算# m ?( f5 |& y( N* m
U' z$ q4 M* ~/ ]8 N% Z
4、question4是高中的知识,不过用一下大学的思想就就是大物的东西了,记住公式就没啥大问题了3 S% ^' m1 Q/ q' {% d/ ~" }; F0 |
# b! r/ O, I7 d" i3 c) X 5、question5是三重积分,与二重积分类似,具体自己去算1 C w' l' \! h$ X; t# P7 ?
1+ t+ s: p0 t# h a
2
. M5 `& y# z b. _3
# E. q. |) A1 V, X; L$ a5 m4 S4: ^+ _' G8 R* y, U& Y6 U6 [, X
5
7 n9 ~; Y' x+ y1 V$ t. q( Y2 W6
' R. {1 X, g' t! W ?1 J. M7/ y2 v E8 s9 g" ~" H$ G5 u9 V" C0 D
总而言之,这一道题就是叫你好好的去学习高数,一定要认认真真学习高数
3 L; E ?) q# n2 b1 Y
# L& b" y; T1 W! v* Y" S7 vmisc第3题:useasp3 N3 K7 m) B" t5 q6 j
0 J0 c5 s; s6 i& P' g( q- V
鬼知道这是东西哦,不过经过昨天的一道题发现,继续使用那个logicdata的软件,就可以了
. n- g# Z) N: p
+ F/ m6 j' ]; I" y6 \$ e首先,将文件拖入软件中,然后果然出现了波形
9 P! r# }1 _8 k+ \
2 o$ k( E* f' v& `; C( O" O昨天那道题,是对照着题目一道一道念的,010101010101来着,结果,今天发现了一个神奇的地方,在logicdata的右部分中间,可以发现analyzers右边的加号,点进去,有个SPI,根据芯片的一些特性,确定时间线,MOSI和MISO的行,点击确定,就可以得到一个特别长的“flag”1 E$ M. `# X3 d$ Y
: R( L4 W; Q' T, S5 q! ^9 D$ g0 _很可惜,这是个陷阱,就是假的flag,flag{you-know-it-can-not-be-such-easy}; e2 ~9 i( L! O# l7 i$ l
, }1 M9 z* X! g6 _! P3 x+ s* V于是我们进行了多种尝试,利用这个软件其他的一些工具进行解码,结果一无所获,但是,后来我们决定修改参数,因为之前的配置是可以得出flag的,于是猜测要更改SPI的某个特殊点。- f0 S9 b* @) v5 d" m U V
6 v2 {9 \, w7 i
更改SPI的某个特殊点后,进行一个对照,发现只有将setting中最后的一个参数,改成high值,原屏幕的右下角就出现了flag。, _# G7 g3 i- x0 g0 M
4 t0 r2 v8 F" z9 C% O2 N, _+ f
web第一题
1 V7 d2 T- E/ V5 W+ |! I D$ V; s
1 b/ g* ^8 o1 G- B% G) rJust so so
6 R! Y) \& j3 ^4 C3 n: g4 L4 \+ p, a5 |' `- e( d1 e+ n: J
开始时,用伪协议拿到源码,然后就是反序列化利用了9 S+ P6 f* o, @- |
& p* b& ]2 P0 T3 z2 v/ j/ I" S<?php index.php error_reporting(0); $file = $_GET["file"]; $payload = $_GET["payload"]; if(!isset($file)){ echo 'Missing parameter'.'5 X- a/ I- N) J4 S
'; } if(preg_match("/flag/",$file)){ die('hack attacked!!!'); } @include($file); if(isset($payload)){ $url = parse_url($_SERVER['REQUEST_URI']); parse_str($url['query'],$query); foreach($query as $value){ if (preg_match("/flag/",$value)) { die('stop hacking!'); exit(); } } $payload = unserialize($payload); }else{ echo "Missing parameters"; } ?> hint.php <?php class Handle{ private $handle; public function __wakeup(){ foreach(get_object_vars($this) as $k => $v) { $this->$k = null; } echo "Waking up\n"; } public function __construct($handle) { $this->handle = $handle; } public function __destruct(){ $this->handle->getFlag(); } }
* |7 w6 P' H/ _" v$ Oclass Flag{
( P5 V* |3 [3 Bpublic $file;
0 \9 K1 j( I7 Fpublic $token;
. N) b. H& G/ H6 F3 apublic $token_flag;) y: f3 e: a7 Q. X( W
w0 g2 i) l( Y* ?( q
function __construct($file){
* T1 g0 S7 z6 r4 @/ y $this->file = $file;
( ?. m0 `- C& N1 ? $this->token_flag = $this->token = md5(rand(1,10000));5 L% a# S) n- F- |! {: {
}
3 z8 ~- K: [0 Q! d" `" ]
" s1 r; Q: w, G* f( j! n9 ^( Jpublic function getFlag(){
2 M; K9 [9 v8 E4 @1 E/ M! l $this->token_flag = md5(rand(1,10000));' E! S" d/ @6 ]# L/ J
if($this->token === $this->token_flag)
2 M. w3 }1 h: R1 { {5 ~) {' I% O- ^/ n% }
if(isset($this->file)){
" J8 [% R' x) ~ echo @highlight_file($this->file,true); n/ j8 U( C( e/ W
}
) h' n" x9 H' f! T p7 c, m }2 @& _7 u; x3 C1 @2 w
}9 b, k4 [3 Z7 b5 w7 \
1
% m3 A, }) Y0 j" C9 e2 g. K, C2
/ U& J5 M E- J& h; _; q2 U36 E9 g! F5 h) q2 z3 O
4: }" Z' G) b& S* m
56 e7 a' W) c8 _ X+ ?3 T+ w# v
6. w9 C D7 _' f
7
4 n( ^8 Z# K5 C) G+ Z8/ B% T5 j8 h0 b6 F8 s
9
8 |6 P$ l, T7 d) l4 L10
# L4 c) s' |$ l/ C11
A& n$ d4 y P12
: Y: x6 Q, E* l& P" x! O13
: c1 U' z$ Z2 @2 R- _" J6 P14
# J; c6 I# J3 M7 }}
V5 ^ p9 E+ W% ~?>; @% T+ o: w" c
大佬说: 可以看到Handle类有个__destruct函数,该函数可以触发getFlag函数,但是__wakeup函数会将所有东西清空,这里改下属性个数就能绕过,参考SugerCRM漏洞,然后getFlag函数的条件可以用指针绕过,以前安恒的月赛也考过,最后flag的匹配可以利用parse_url漏洞,三个斜杠就能绕过了$ z3 d/ J% d3 z4 ]$ ^- A; J
exp
* m4 y; M/ |, P% b9 P
, O" w- H, `$ M2 T% d! b9 uView Code
3 w* R4 B T' V1 h0 ?( z$ E
8 V9 o& j G! Z$ Y6 A3 q o; @: I( |: \& V! w% }0 D! W4 ?3 ^) K
+ P. Y- O. Q& k' @7 s& K
https://xi4or0uji.github.io/2019/04/22/2019-4-22-2019-全国大学生信息安全竞赛-writeup/#more! r" t$ u a' _ o& T! X
: V+ i u1 l0 z& a3 m# E0 w
总结:本次比赛只是做了misc的题,web的题目打的也太少了,要继续加油,多进行php的审计,同时多做一些web题总结经验,下次争取多打几道web题
# d1 D" e5 A) t---------------------
* O& P" |# z# R8 I1 [作者:Jeff King
! a7 m% ]7 v. U; a来源:CSDN Y' W# r2 b. ^$ M6 D
T$ }" ]; s5 d2 F: J
9 {/ J ^5 `; ~4 u# }
7 |- l# T+ [3 H. R5 i9 N |
zan
|