- 在线时间
- 1630 小时
- 最后登录
- 2024-1-29
- 注册时间
- 2017-5-16
- 听众数
- 82
- 收听数
- 1
- 能力
- 120 分
- 体力
- 565678 点
- 威望
- 12 点
- 阅读权限
- 255
- 积分
- 174926
- 相册
- 1
- 日志
- 0
- 记录
- 0
- 帖子
- 5313
- 主题
- 5273
- 精华
- 3
- 分享
- 0
- 好友
- 163
TA的每日心情 | 开心 2021-8-11 17:59 |
|---|
签到天数: 17 天 [LV.4]偶尔看看III 网络挑战赛参赛者 网络挑战赛参赛者 - 自我介绍
- 本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。
 群组: 2018美赛大象算法课程 群组: 2018美赛护航培训课程 群组: 2019年 数学中国站长建 群组: 2019年数据分析师课程 群组: 2018年大象老师国赛优 |
; W! U- I* a8 D+ G
2019--国赛--第一次参加线上赛的自己的整理3 I) `: D- T# U7 x
misc第一题:签到, O7 _6 ?- m; m# c( e7 K1 G
, X( B/ F2 p4 a( w
打开压缩包,发现一个exe文件和一个txt,要三个人一起站到摄像机,然后等软件识别,就出flag了
/ J* P% t2 \8 Q& J4 f
" C2 c" z5 j) L但是我发现,你拿手机放一张照片(有三个人或比三人多)上去也可以出flag,所以推测出,该软件是甄别像素点来进行识别的+ {1 n1 S$ p3 j1 }- i9 _ x
R x3 l4 {' y9 Y _( |, D5 }misc第二题:saleae, e# `# G8 V ~+ h3 W$ U2 q
6 K2 c' f2 C _; U2 }! |下载压缩包,得到一个.logic的程序,都是新东西,没人知道这是用什么软件来打开的,我发现这个特别考百度能力(捂脸)就是需要logicdata软件
6 Z% |" ~$ J4 t+ C, B
! ^7 X. B) b; n6 P, P- _下载后,发现其中给的是波形
" L% \! P e1 m, A+ u
8 @8 x f* H0 R# ]6 `" D7 W然后去百度,发现这个软件是与芯片的输入输出有关,(后面是可以利用旁边的软件来读取flag的) X8 E1 W/ i/ Q+ k" Y3 D2 e
4 E* {/ t# N- w4 G当时的我们没发现这个好办法,只能是0101010101的将flag读出来,然后进行转换成字符串1 r) ]0 v+ ^+ `3 o- h( e
/ |" `: r; C5 c. {+ h ] L8 k
misc第三题:24C/ p2 @3 G j$ {3 J
% `* F+ R+ @9 L+ g
与第二题类似,但是需要一点脑洞,就是记得改变它的读取顺序就好了, B% @4 W; ^) l0 }( W! t
6 i& \4 B) F9 ?! i- `+ f
crypto第一题:puzzle
7 r7 u9 \/ j( K: |# U( w2 F
8 k* Y, `/ O; B7 q3 n/ ~首先是给了一个网站,心想还是不是web+密码,那就有点…舒(zi)适(nue)了吧
5 f' c$ G3 J) c; o$ L" h
' M) h- S, S/ I" L5 C9 }7 Q让我深深的感受到数学的重要性,三重积分还没学的我,简直看的如痴如醉,第一题的素数来找规律,让我懵逼好久,这是什么题哦
/ ]8 z$ Q5 E5 {$ ~6 N, F4 |0 D) O/ W5 S' v, F5 l! J8 Y' ] D0 |
所有的一切都是从0开始的感觉,于是就开启了自学之旅
8 {6 u2 A) f" k S9 c
[- H5 A, A0 _提示一下:1、question0 记得化简运算,当然网上也有计算器(当时死算到无奈,后面还错了)/ q T+ ^# D8 G9 @
! ], q2 z2 e8 \. X7 |" P
2、question1就是分组找规律,与素数有关
- u% _0 a' ~9 s
9 h% s3 k' E* ^/ d$ l7 J2 x" d2 w 3、question2是做的最舒服的一道题,简简单单的高数上的计算" T7 J# I8 M* S
1 J y. r7 H# g' x
4、question4是高中的知识,不过用一下大学的思想就就是大物的东西了,记住公式就没啥大问题了
7 A/ P" `. X1 }" u# A2 w
% U8 d& c( b% c 5、question5是三重积分,与二重积分类似,具体自己去算2 R* V$ D' A! g* k! J! o
1
- N8 A- j# T' l' T2
) a' r: J3 B7 T* l$ b* ?( v# B& ^! H3( l0 t5 Q- ~; s, [ t1 h
4
% Q0 C% c. g& a8 u5
4 U1 u7 ^& T* y* M! r+ S* J0 O4 \7 P. S6- c" k& ^4 S- e/ W% K# ~9 |2 |
75 U; @3 h) R" I
总而言之,这一道题就是叫你好好的去学习高数,一定要认认真真学习高数& |: C' q* P2 x* C
, \$ U- T3 r" H: C4 w
misc第3题:useasp" q7 R2 x2 f% {* Z. m: _/ Y" ^
8 W1 i0 V6 K- `! l
鬼知道这是东西哦,不过经过昨天的一道题发现,继续使用那个logicdata的软件,就可以了9 `3 @" q/ D3 a
$ u* ?! u! l7 B
首先,将文件拖入软件中,然后果然出现了波形
: d& |2 Z# u" h' A3 B7 z* w" I* Z6 A' v: ? P% H, _* o
昨天那道题,是对照着题目一道一道念的,010101010101来着,结果,今天发现了一个神奇的地方,在logicdata的右部分中间,可以发现analyzers右边的加号,点进去,有个SPI,根据芯片的一些特性,确定时间线,MOSI和MISO的行,点击确定,就可以得到一个特别长的“flag”
9 F! u1 h X% ~) U7 X8 R0 v& Y5 g% `# z
很可惜,这是个陷阱,就是假的flag,flag{you-know-it-can-not-be-such-easy}
( X1 N: l& L% T! ^8 X m
# ~7 } e0 n8 v }4 ]于是我们进行了多种尝试,利用这个软件其他的一些工具进行解码,结果一无所获,但是,后来我们决定修改参数,因为之前的配置是可以得出flag的,于是猜测要更改SPI的某个特殊点。
# j4 ^, w9 {+ B* X9 F" B5 S$ K0 L* i8 J
更改SPI的某个特殊点后,进行一个对照,发现只有将setting中最后的一个参数,改成high值,原屏幕的右下角就出现了flag。) [* V% N. K) `+ M+ W/ m
( [. A; m( o9 k; |. ]/ @9 U) e
web第一题6 k q3 {! h; C! c! f* E5 a7 D# X
) j6 a& `% A& Q3 s. L! [- u
Just so so& u5 \; Y* ?+ d" u8 }# D; |; s+ b
* P4 d/ Z( @+ I- Z: b a
开始时,用伪协议拿到源码,然后就是反序列化利用了
* x% y% i4 L4 y* y& {0 |3 X1 M# s* y
<?php index.php error_reporting(0); $file = $_GET["file"]; $payload = $_GET["payload"]; if(!isset($file)){ echo 'Missing parameter'.'
% q& T+ T, a! x4 M0 z* Y$ m; 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(); } }9 x" n" T. t6 ]3 C( j1 `5 t# E
class Flag{
' z+ I* q ^6 T) e4 vpublic $file;$ q7 u% f. j$ I- S* x2 @' F" b5 m, X
public $token;( v6 N9 D; J/ Q9 v
public $token_flag;4 A7 L) I" `2 K* X) i
% k" s# V! @( G6 f% K
function __construct($file){6 d2 ^) C0 D. K( S; [6 H) N
$this->file = $file;. q5 u$ v) |5 F4 @
$this->token_flag = $this->token = md5(rand(1,10000));% z" }, R/ S7 b2 H$ J3 c/ @6 S2 s
}3 y% }6 s% `! n
9 A, s2 z3 a4 I. L* d) t
public function getFlag(){
+ W p* V( y% p0 m4 I $this->token_flag = md5(rand(1,10000));
! Y0 g* [/ [% W3 j2 ^# s if($this->token === $this->token_flag)7 r0 [# o) Y; \8 F2 Y5 c5 S( _, S
{
* k5 Q, a$ B H# f2 C6 ?" ?& A, n if(isset($this->file)){
: L& H! E9 N* r T1 V echo @highlight_file($this->file,true);
& A8 C+ U' I2 n7 z2 I$ c5 M+ E }
" V3 `: P3 b$ k }) r- @$ x+ Q1 D% ~ d* s" j: I
}
4 F6 a) q# C% R6 a# }- ?1
# h# k Q- |0 f% z4 o2
* g4 h9 X8 S) p) w! s4 x, z3# y& _4 r; @; S& F$ n8 p" M- F
48 F; Q, R3 T% g% O d0 \/ Q
52 E& o5 p: v6 x- c( O7 P
6
# V# K6 m8 M1 {: P4 w( a8 u7- {- n2 {5 t* O# v$ `
8( b( ]0 ~4 [7 K' R7 r2 K
9
4 Z4 v+ T3 G; y/ I5 S10
: _% a+ u' r0 h$ s11% A7 x# l) X$ ^1 ?% z$ S: o
12
. H2 m/ N* B/ C' e2 t$ f! C/ U! }137 \- R0 ^3 z$ @7 f
14
: ]! I/ d( g( [9 e# ]' B}% m* J3 X! w4 v7 H, p& H
?>& Z4 f% ~1 t: X, ?, o" ~* D+ \
大佬说: 可以看到Handle类有个__destruct函数,该函数可以触发getFlag函数,但是__wakeup函数会将所有东西清空,这里改下属性个数就能绕过,参考SugerCRM漏洞,然后getFlag函数的条件可以用指针绕过,以前安恒的月赛也考过,最后flag的匹配可以利用parse_url漏洞,三个斜杠就能绕过了 N& w% b& U, y; k% F4 Y* W
exp# U E" g4 W4 ^& w& _% U
0 C/ x g9 ^0 KView Code1 t: {0 x/ R$ T, \; J
v. }) c# u! ]( ?6 n, {& Q7 D2 L! V
1 X/ w. C4 e" ~6 J8 X
3 ^9 p% v* ]' a; {3 W* R3 mhttps://xi4or0uji.github.io/2019/04/22/2019-4-22-2019-全国大学生信息安全竞赛-writeup/#more
6 z+ Z# K2 e* R* ]7 s- o
6 |6 P% }, P1 f& i/ i" D总结:本次比赛只是做了misc的题,web的题目打的也太少了,要继续加油,多进行php的审计,同时多做一些web题总结经验,下次争取多打几道web题9 [6 o$ {. M# j D. {* A# u
--------------------- . g4 m' q0 a$ i; j
作者:Jeff King
: W4 m* r, q: }3 c) y; ^来源:CSDN 8 G7 N: p4 I/ |# S! K& Z; c/ j: h q4 S q
/ v2 t# X- j, T, j/ [8 e+ u0 L
; T* R4 q* E, V+ y# u1 j- b! M8 Q
|
zan
|