在线时间 1630 小时 最后登录 2024-1-29 注册时间 2017-5-16 听众数 82 收听数 1 能力 120 分 体力 563328 点 威望 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年大象老师国赛优
2 n+ ^3 m# U" D# y4 w# ]% B
2019--国赛--第一次参加线上赛的自己的整理
+ X. \7 C) W: c" H# I2 a/ t, X) ? misc第一题:签到
: s6 \. ^, f# u7 v , q; }4 T( D: Z- h5 o3 v2 K& i
打开压缩包,发现一个exe文件和一个txt,要三个人一起站到摄像机,然后等软件识别,就出flag了# i$ z9 o; A' P# N; k6 F) A6 Y
/ g/ y! n0 b3 f6 ]4 t" U; G 但是我发现,你拿手机放一张照片(有三个人或比三人多)上去也可以出flag,所以推测出,该软件是甄别像素点来进行识别的) Z) W( X. T. K* O% U! ]4 \% B
3 Z/ |1 y$ R; C+ o
misc第二题:saleae* F0 M {4 [( T6 s1 y( l
) v( s) J1 v, a 下载压缩包,得到一个.logic的程序,都是新东西,没人知道这是用什么软件来打开的,我发现这个特别考百度能力(捂脸)就是需要logicdata软件' K- J- u" z# e8 h* W& }
" w2 ]" ^) m- l8 M 下载后,发现其中给的是波形
7 z; j5 y1 P, Z* P( P; }
5 ]( g3 a. x0 b* Z% r 然后去百度,发现这个软件是与芯片的输入输出有关,(后面是可以利用旁边的软件来读取flag的)3 \' `4 O) ^& \' |6 ? O
+ y& r9 o7 b/ y: B( r2 ]
当时的我们没发现这个好办法,只能是0101010101的将flag读出来,然后进行转换成字符串) u/ z" E! @5 {1 M; l* l2 r
( v" K6 {* y, {" H* @: P4 b0 z misc第三题:24C; F6 U k# i1 H& Y4 ^ P
9 W/ w) d' @1 [ 与第二题类似,但是需要一点脑洞,就是记得改变它的读取顺序就好了1 }& q' {/ U2 m5 t8 _1 x
8 p; x" k& |' p i. p5 F. m
crypto第一题:puzzle
; Z1 Q" `/ R H' W6 r0 J7 Z# v # |! f' p% O, z7 v' }! s6 @2 j
首先是给了一个网站,心想还是不是web+密码,那就有点…舒(zi)适(nue)了吧
- ]7 w$ O; y2 D8 k3 U# l 4 @0 m, ?! C! V: u
让我深深的感受到数学的重要性,三重积分还没学的我,简直看的如痴如醉,第一题的素数来找规律,让我懵逼好久,这是什么题哦- n$ \/ N% p1 Y, N8 r
: j! i' Q9 S" u( b' @7 M, g
所有的一切都是从0开始的感觉,于是就开启了自学之旅1 ~3 R) T1 l. }* I5 U! R) Z
5 X) X0 X5 ^! R) {$ E 提示一下:1、question0 记得化简运算,当然网上也有计算器(当时死算到无奈,后面还错了); Z' H( r! \! _( `, O
' J4 T5 w W' X% W 2、question1就是分组找规律,与素数有关
5 V4 ]- q5 J" E4 W
4 W5 A4 y% o& _# ?! r 3、question2是做的最舒服的一道题,简简单单的高数上的计算
5 |, v% R6 K' ]4 g( H7 o
3 D# Q& J; g! L T& _. h 4、question4是高中的知识,不过用一下大学的思想就就是大物的东西了,记住公式就没啥大问题了
8 c! q: T% O Y, o6 \9 R/ X G1 i 8 o: X5 r! V% X. j- Y D
5、question5是三重积分,与二重积分类似,具体自己去算
* ^3 T+ V- `# d. V Y$ L5 e 1
7 c, Z8 W- Y) t' s. q6 d 2$ e3 g) N$ c) h' F
39 a. h+ t+ Z4 c: g. m& S2 y
4: i6 \/ m# b8 }0 {/ l2 E S( X# b
5
2 p3 ?7 \3 d! \ 6
4 _2 a: @( r% W 7
- \+ _9 G) P8 _3 ^8 u' o1 c 总而言之,这一道题就是叫你好好的去学习高数,一定要认认真真学习高数
9 |- W ?+ ?- K
% V1 ` Z+ B% f- ]& ] n! K misc第3题:useasp
* v1 S, `* P4 h$ `$ K3 s
0 y; \; r) j2 t# N6 i4 ]9 u) s6 u$ N 鬼知道这是东西哦,不过经过昨天的一道题发现,继续使用那个logicdata的软件,就可以了( G: m; C# v+ h# N6 l5 ?9 U' y
; x8 \4 s! z! \; }0 E0 \# k) P 首先,将文件拖入软件中,然后果然出现了波形( g. h) A. V9 M, W6 s4 t8 f% \9 |
( g. t% n) Y8 E/ L8 R4 t 昨天那道题,是对照着题目一道一道念的,010101010101来着,结果,今天发现了一个神奇的地方,在logicdata的右部分中间,可以发现analyzers右边的加号,点进去,有个SPI,根据芯片的一些特性,确定时间线,MOSI和MISO的行,点击确定,就可以得到一个特别长的“flag”
2 P9 D' U6 T7 z * M3 ^2 c* s$ s$ u2 b$ J4 [8 Q
很可惜,这是个陷阱,就是假的flag,flag{you-know-it-can-not-be-such-easy}1 y8 B8 C+ o7 u% V
8 d2 ]+ d- }( L" l* i
于是我们进行了多种尝试,利用这个软件其他的一些工具进行解码,结果一无所获,但是,后来我们决定修改参数,因为之前的配置是可以得出flag的,于是猜测要更改SPI的某个特殊点。
) C. ^3 P1 }6 g3 t. t
6 W; G( r; G/ C; n: [3 {: O 更改SPI的某个特殊点后,进行一个对照,发现只有将setting中最后的一个参数,改成high值,原屏幕的右下角就出现了flag。
' I( q+ @, @6 z/ d; d . o8 [' D9 n3 k4 \- z5 y& M
web第一题
+ B* F% l8 ~4 C( H& L * n e; K( k* k/ z2 j
Just so so7 U7 R/ v& ^7 f/ Y
4 K- }* R. I, o( }: z
开始时,用伪协议拿到源码,然后就是反序列化利用了
% D6 m$ D t1 l9 ~ 4 d: f3 L2 q- R5 }- z: ^: L% a
<?php index.php error_reporting(0); $file = $_GET["file"]; $payload = $_GET["payload"]; if(!isset($file)){ echo 'Missing parameter'.'
: Y0 I; F6 M0 C9 D, R4 H '; } 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 D: O3 z6 n4 M7 P. A class Flag{
# c! o# `" j" N5 G1 C0 M) Y- d public $file;
7 @' ]! f& Y5 m/ |7 d public $token;
! [' e( y' ]& z2 X public $token_flag;
( h( e$ B# e# l: l, ^9 H; V3 V# ^ , Q# h% t: o/ \" u+ F2 R% ]8 _1 M
function __construct($file){
; B) P4 c; K0 b6 X& s7 q $this->file = $file;1 y$ _' c% w1 ^+ I2 O
$this->token_flag = $this->token = md5(rand(1,10000));& G, f B' w& r6 F
}6 \4 O% p) s0 {' l
( }* V1 L4 a% t
public function getFlag(){* P% l5 w) E7 X" B6 e' s4 x
$this->token_flag = md5(rand(1,10000));; h9 s" L- R' h
if($this->token === $this->token_flag)- S# o0 x/ x3 V( r5 @: d4 N% H3 _0 Q
{4 Q# r: W& s" |1 i% |3 ~ G8 ]
if(isset($this->file)){! |1 W* j& @3 H# z$ P
echo @highlight_file($this->file,true);
! T* C' |' f b! L) G; k } : e$ W3 {3 W4 ?; J
} V0 g4 m% N, i# t* L* K7 J
}
" [5 s+ G% S1 p 1* s* L" w; V1 y; i# J2 o4 Y4 B9 O
2
$ C" J# A" R4 |- }; d 3
! g, P! E0 q% m g9 W0 k 48 _ `6 K. W) d6 ]
5
, s( K) e8 G5 s5 v1 q# f* O& P 6
0 z: l; q: g) Q O( b; I% X+ M 7
; z" {7 j- Q4 b- c; q) S6 @ 80 b0 n o! b8 r/ u
9: ]4 D% W0 T. b0 L9 ^% e- \5 A: q
10- Z- \& ]9 n) v: \1 h# K
11
0 q: Y( k3 i( a6 a 12
/ X& `4 T7 _' I0 x 13" n$ I ~3 l% {2 R0 e
14* A2 v# t+ Z6 P* c2 d
}
9 c$ g9 b+ ^6 ]# U0 _( N5 { ?>
5 J6 n( U( c1 T, w9 m! K 大佬说: 可以看到Handle类有个__destruct函数,该函数可以触发getFlag函数,但是__wakeup函数会将所有东西清空,这里改下属性个数就能绕过,参考SugerCRM漏洞,然后getFlag函数的条件可以用指针绕过,以前安恒的月赛也考过,最后flag的匹配可以利用parse_url漏洞,三个斜杠就能绕过了4 j" Y8 u: E3 N! C9 O- o$ f( t. H6 M
exp
+ ?5 Y& M$ h @3 j& Z ) w8 f/ o9 L/ k6 T6 X3 G
View Code
3 \7 N, H) y9 t* h% U 1 e9 w7 p5 F7 q! b
E8 [, I: T) W' S+ k
1 ]1 M9 g4 C. h+ O7 t7 v' e9 g( @ https://xi4or0uji.github.io/2019/04/22/2019-4-22-2019-全国大学生信息安全竞赛-writeup/#more
, c1 b) Q: L5 E" O7 V3 ^
4 V! c; Y- E: k$ e5 T: W5 G 总结:本次比赛只是做了misc的题,web的题目打的也太少了,要继续加油,多进行php的审计,同时多做一些web题总结经验,下次争取多打几道web题+ D/ C o$ n1 G% r
--------------------- 4 r- g( k v" F! c
作者:Jeff King
$ u* b8 z- n7 S' N( Q$ R 来源:CSDN , `: F+ K' |" ?; f) w1 \! x
, m/ A! W3 @* ~' C; h0 r5 F
8 T9 l2 E, b5 ~2 s& l
+ \8 G. t, F- ]8 s
zan