数学建模社区-数学中国

标题: 2019--国赛--第一次参加线上赛的自己的整理 [打印本页]

作者: 杨利霞    时间: 2019-7-5 15:48
标题: 2019--国赛--第一次参加线上赛的自己的整理
& r- C3 U4 {2 D
2019--国赛--第一次参加线上赛的自己的整理: I, t- h% t4 ^$ }
misc第一题:签到+ p% \4 d  B3 f9 _' g- B

* i) r0 T) m3 P9 D打开压缩包,发现一个exe文件和一个txt,要三个人一起站到摄像机,然后等软件识别,就出flag了6 [4 _4 E4 z. R# N9 t2 {7 P  I
! h" W* [4 E  C9 X7 M
但是我发现,你拿手机放一张照片(有三个人或比三人多)上去也可以出flag,所以推测出,该软件是甄别像素点来进行识别的, r1 z! z3 ]5 j- z% U2 Q: a

3 V9 P+ u9 r; K( U) n. fmisc第二题:saleae
! ]7 {7 o" u2 a; c$ r& R
( o2 D" F) Q3 M- H' z下载压缩包,得到一个.logic的程序,都是新东西,没人知道这是用什么软件来打开的,我发现这个特别考百度能力(捂脸)就是需要logicdata软件
- G/ z4 v2 [" W. W2 {* w0 t5 v, t2 H+ A0 P! O8 [
下载后,发现其中给的是波形* k, d6 S+ b# U9 @; V: a5 B

" W& @- Q. R: a+ `* B' S' Q然后去百度,发现这个软件是与芯片的输入输出有关,(后面是可以利用旁边的软件来读取flag的)
8 G# M* N% K7 e. V% D1 Q$ B( ~
& t/ R3 \- K$ c( E6 `# T当时的我们没发现这个好办法,只能是0101010101的将flag读出来,然后进行转换成字符串) }+ f2 P5 U/ R
" r4 K) b8 j- }& O
misc第三题:24C
; C/ f, W, ], R2 ^9 k8 @; S5 x, Z
) L. Y* O9 D) m与第二题类似,但是需要一点脑洞,就是记得改变它的读取顺序就好了6 S, t' Y0 ^  |$ y* Y6 ^* V. \
  ?5 O$ g, R( ]8 V
crypto第一题:puzzle
% v- v$ m5 a& A' ^& n
0 r* C: r' q2 T  F' V2 ^1 u首先是给了一个网站,心想还是不是web+密码,那就有点…舒(zi)适(nue)了吧
2 ~/ {8 Q8 p5 i0 g: A6 m1 T+ d  I  y3 z0 t! ~' Y
让我深深的感受到数学的重要性,三重积分还没学的我,简直看的如痴如醉,第一题的素数来找规律,让我懵逼好久,这是什么题哦
  t# R$ f0 E5 p) A0 \& A5 S4 n
4 l9 w" M- ?) {- Z. y5 ^5 H" F6 o所有的一切都是从0开始的感觉,于是就开启了自学之旅+ y0 l& p/ S% B- D  }+ I, y

: r2 r6 \& h. F3 Y3 a5 u7 x& q* Q提示一下:1、question0 记得化简运算,当然网上也有计算器(当时死算到无奈,后面还错了)) X/ [8 y" a0 [0 A: W
( A. i; X) f! ]" s0 l
               2、question1就是分组找规律,与素数有关
% a+ f% X; i3 Q% F$ K+ O. w0 H. X. V# k8 b2 q& {
               3、question2是做的最舒服的一道题,简简单单的高数上的计算" l/ W, h$ t/ Q  k; z) l
# o4 c" e3 P. N- G( l8 G
               4、question4是高中的知识,不过用一下大学的思想就就是大物的东西了,记住公式就没啥大问题了6 G( Y. N4 v9 j. U
$ Q; U4 r: u: E4 N+ M
               5、question5是三重积分,与二重积分类似,具体自己去算
" x3 G6 ]5 \, a" O1' H4 i, G  n' i
2* p, m, i/ X% @$ M# k
3
, U. Y; y5 s2 ]$ X4" R: S( M& X. ^5 J
5
8 n1 X1 F3 J" N4 a( Z  n3 x; @6
2 N( w$ N( B$ i7 z/ w7: l2 r9 Q! Y. f. e7 y' d
总而言之,这一道题就是叫你好好的去学习高数,一定要认认真真学习高数
7 m7 U" n& \* m1 a0 x) ?8 p% f. {5 |" S
misc第3题:useasp- W9 N4 Q9 |0 e. M* m  x
+ }. @# t) @  N8 q) l2 Q, F* i
鬼知道这是东西哦,不过经过昨天的一道题发现,继续使用那个logicdata的软件,就可以了
$ D, a; M: F* p7 W) \7 t+ w7 g3 D9 S) N8 }2 F: q1 B8 Q
首先,将文件拖入软件中,然后果然出现了波形
# v* ~$ l& z+ L* N/ K6 C7 h1 G" ?6 ~% y" p" b
昨天那道题,是对照着题目一道一道念的,010101010101来着,结果,今天发现了一个神奇的地方,在logicdata的右部分中间,可以发现analyzers右边的加号,点进去,有个SPI,根据芯片的一些特性,确定时间线,MOSI和MISO的行,点击确定,就可以得到一个特别长的“flag”
& |5 _1 F# x  Y, g! B
5 y. ~( [6 Y! z: h& E很可惜,这是个陷阱,就是假的flag,flag{you-know-it-can-not-be-such-easy}
+ z, ^; a5 n/ G4 M8 F6 U5 X. X0 W+ M+ S( S' a. C9 x! b9 n9 ]4 |9 W
于是我们进行了多种尝试,利用这个软件其他的一些工具进行解码,结果一无所获,但是,后来我们决定修改参数,因为之前的配置是可以得出flag的,于是猜测要更改SPI的某个特殊点。
, {5 _" R  O- d- t, W2 N; S) f" U/ }$ a3 v* c; j( |8 q
更改SPI的某个特殊点后,进行一个对照,发现只有将setting中最后的一个参数,改成high值,原屏幕的右下角就出现了flag。! ]" Y7 U9 l1 |( L0 \; G5 V

5 y6 i4 Q5 \% R% J% d6 _web第一题
" o6 T8 V6 U* N( e- S. d, T4 q/ f, X* ?& Z/ l/ z
Just so so0 B  A  L) t) w0 d! |; l
+ ?$ P  V5 ~! o, D- J* X
开始时,用伪协议拿到源码,然后就是反序列化利用了
5 R) S/ k2 W, r
4 q: D0 Z6 c9 o/ X! c  `8 d<?php index.php error_reporting(0); $file = $_GET["file"]; $payload = $_GET["payload"]; if(!isset($file)){ echo 'Missing parameter'.'
. e. b' ~$ p% t  L( d'; } 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(); } }
, F3 y& b5 I% t- t/ `2 {2 sclass Flag{# ^+ _/ k& {- @, V1 Z2 k. o
public $file;5 o+ S1 W/ l# U. A4 N# V& J
public $token;) p5 c* W+ k& g$ a
public $token_flag;
8 V& E- ~. R1 J0 S) K" b( o4 R& P6 w+ C! p
function __construct($file){9 t. l$ ~* y2 _+ K5 \9 v
        $this->file = $file;
# Q0 J6 W7 P9 z        $this->token_flag = $this->token = md5(rand(1,10000));
+ L% h  {% e9 c. M: A) C}/ Z/ R- M1 r6 o6 I: h4 |

7 R# P% a! x5 `5 B/ U6 k- s/ hpublic function getFlag(){1 [; u5 A+ R# O( m
        $this->token_flag = md5(rand(1,10000));# A+ F. E- U# ^7 I
    if($this->token === $this->token_flag)% K6 m0 z3 ~1 o, Z1 Q
        {% w! F8 T5 f) _8 N5 _
                if(isset($this->file)){' D# v, a  j2 Z8 U
                        echo @highlight_file($this->file,true);
! |3 F4 B- M0 ~+ T        }  
; h" `& T& A; u& z$ h% I    }" d2 Y( g. f3 s
}
% Z  {: q* s% Y, E1
2 G- d# n& G7 E3 B2
4 y) I0 V0 L- X( ]$ J. d+ t. b3' |+ V- M% h4 h' O( v+ `7 L
4: m, M" P9 }+ U4 n" c2 x
5* w4 P( P6 r4 Q/ ?
6
$ W1 O! {; W2 f+ H) x7
# W: U3 S8 ?1 W/ b8
+ [2 ~2 ?& _2 I6 v1 a7 X! G, z9
7 ?) J6 `+ l1 j5 ^" S- S10
, L; u! ]/ r: h( {. n11
- v" v, B( r( U3 v# T  i5 R6 R12) d0 b& E; Z5 ?( y+ `$ Z0 O
13; f% o7 _$ a6 O1 x/ L6 W) g
14/ O! t! ]) O9 _, \- P2 Y
}" c4 c+ Y( n, V3 M' X2 ~  y
?>$ o7 H  G5 |+ i0 [# X
 大佬说: 可以看到Handle类有个__destruct函数,该函数可以触发getFlag函数,但是__wakeup函数会将所有东西清空,这里改下属性个数就能绕过,参考SugerCRM漏洞,然后getFlag函数的条件可以用指针绕过,以前安恒的月赛也考过,最后flag的匹配可以利用parse_url漏洞,三个斜杠就能绕过了
) O8 H7 G$ X: f) d( ^* w' aexp
$ {8 I3 @* y: g+ L
' @0 P/ g) r' V) {- ~6 EView Code
1 x3 m1 j& t1 X3 Q8 k# U- ~; D# ~4 U- j0 z. y( N, ]

8 S0 K0 d1 C) q/ N$ m8 q
$ U! {1 Y! q2 h. d3 ?5 ~$ s5 N8 ]5 ghttps://xi4or0uji.github.io/2019/04/22/2019-4-22-2019-全国大学生信息安全竞赛-writeup/#more
, k$ U, Y5 y' }# t: I
& o" u, E# P" E! {; }总结:本次比赛只是做了misc的题,web的题目打的也太少了,要继续加油,多进行php的审计,同时多做一些web题总结经验,下次争取多打几道web题
: y7 t( ]) T" `. b# @, T: X! a--------------------- 5 _& Y* F% m& Q0 n0 q9 @" ]3 B- g1 S4 l
作者:Jeff King
" _# h4 H0 y5 P7 N( U- p( x9 J来源:CSDN & {' }: }. z0 P
0 m- f+ a  U6 ~1 |  n4 e
& t, G8 R1 f. R9 d! T2 d
. @$ k' l9 J* F: J, l% g; v) E





欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5