QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2122|回复: 0
打印 上一主题 下一主题

[建模教程] 2019--国赛--第一次参加线上赛的自己的整理

[复制链接]
字体大小: 正常 放大
杨利霞        

5273

主题

82

听众

17万

积分

  • TA的每日心情
    开心
    2021-8-11 17:59
  • 签到天数: 17 天

    [LV.4]偶尔看看III

    网络挑战赛参赛者

    网络挑战赛参赛者

    自我介绍
    本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。

    群组2018美赛大象算法课程

    群组2018美赛护航培训课程

    群组2019年 数学中国站长建

    群组2019年数据分析师课程

    群组2018年大象老师国赛优

    跳转到指定楼层
    1#
    发表于 2019-7-5 15:48 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    & I# F# u; ^. ?4 E  F
    2019--国赛--第一次参加线上赛的自己的整理' m6 |- N; K3 M& Q5 @% Q* A) V
    misc第一题:签到# b8 Y# U4 G1 q1 J" i
    - n1 R8 Z$ d, x1 U2 f8 i
    打开压缩包,发现一个exe文件和一个txt,要三个人一起站到摄像机,然后等软件识别,就出flag了
    ! C. P0 f, a! Z  m  b3 F
    # l4 B5 g0 q$ w8 `但是我发现,你拿手机放一张照片(有三个人或比三人多)上去也可以出flag,所以推测出,该软件是甄别像素点来进行识别的
    8 g* G$ u: D* J  f9 l- S
    8 O+ M0 R7 ~5 m! emisc第二题:saleae
    5 d. t* G/ f; E% D: e8 Y, {
    . [& v  k9 b4 V1 \下载压缩包,得到一个.logic的程序,都是新东西,没人知道这是用什么软件来打开的,我发现这个特别考百度能力(捂脸)就是需要logicdata软件
    & c" R7 g3 N- n4 o1 C4 D4 A) T* Y% l6 q  l1 Q) [
    下载后,发现其中给的是波形% l9 K4 j3 g, a$ [
    1 F, P1 ]  U4 \- s0 J% `3 ]
    然后去百度,发现这个软件是与芯片的输入输出有关,(后面是可以利用旁边的软件来读取flag的)
    / a- a) n* e2 d4 F6 M% V* t( T7 n: i; f
    ; Y  G  u; C, A& ~; P( Q7 _  u% L当时的我们没发现这个好办法,只能是0101010101的将flag读出来,然后进行转换成字符串
    6 \) N/ M: @' v
    $ B& E2 [8 T2 D6 U: |0 L9 Pmisc第三题:24C
    + r# D' s" H$ z& ?2 u9 O4 C6 [) J( d$ ^' N! H' m3 v9 L( N, Z
    与第二题类似,但是需要一点脑洞,就是记得改变它的读取顺序就好了# F$ q3 c+ P4 _$ m4 T
      X2 h& @% N( C& ?: \# k8 A
    crypto第一题:puzzle! B6 a( k2 S; u- u' p
    / {: i# y, O5 j1 t: [/ G
    首先是给了一个网站,心想还是不是web+密码,那就有点…舒(zi)适(nue)了吧, W, K" Z2 N( V% |& p) x5 v
    ) ?+ r: U0 a* @. q0 D% E! |  L
    让我深深的感受到数学的重要性,三重积分还没学的我,简直看的如痴如醉,第一题的素数来找规律,让我懵逼好久,这是什么题哦
    3 q: U, A0 U0 e& ?2 ^3 K3 M1 }8 e# J; K; S  U4 A
    所有的一切都是从0开始的感觉,于是就开启了自学之旅
    7 {3 F2 x+ S' p# K
    ; Q1 C  }/ e2 N" Z& W$ W) m6 [" G提示一下:1、question0 记得化简运算,当然网上也有计算器(当时死算到无奈,后面还错了)8 H0 N, y9 d  R
    . }: L" C) o3 `" l0 U6 s; O) l
                   2、question1就是分组找规律,与素数有关
    + W5 b- @$ z( w+ M. d, ^. F# R
    ! }( @4 T& @8 O! l               3、question2是做的最舒服的一道题,简简单单的高数上的计算
    * n1 B0 u: [% j, [, p& g
    2 m, K# J2 G9 p9 V0 F/ F               4、question4是高中的知识,不过用一下大学的思想就就是大物的东西了,记住公式就没啥大问题了1 B% s* i4 c. `7 {% U
    7 f7 `9 S( Q  v! c$ w* a7 c
                   5、question5是三重积分,与二重积分类似,具体自己去算2 ^' c  q  b( Y! v; J+ n( f9 y+ V
    1
    9 {( P( N% J/ e5 X- M. B2
    * r8 t& }6 B$ D/ U9 [  }; v3- D! P6 c' M' ~) h* _
    4
    ' x0 {; d  r3 j: w- e5
    ' i2 A7 x) K# r+ ~; q6
    " ^- I# H1 @1 e. s5 L* `; W+ F7
    ( H! o- ~+ g2 m/ m2 |/ i8 ~; Q6 q. F总而言之,这一道题就是叫你好好的去学习高数,一定要认认真真学习高数
      F. l- l7 s0 P$ q( N5 y
    1 F) k+ V2 n1 k* z3 G9 \% \, D, }+ \misc第3题:useasp" {. M* X1 N  d) N- R5 S
    % G) T0 n" u% A. a
    鬼知道这是东西哦,不过经过昨天的一道题发现,继续使用那个logicdata的软件,就可以了4 [; i( s2 [: ]8 Q  G
    , c$ D5 t. d' M9 u: k8 w4 S
    首先,将文件拖入软件中,然后果然出现了波形' O" [" `" ?- A; V0 \

    9 O! r/ f# x" G! ~* e% |昨天那道题,是对照着题目一道一道念的,010101010101来着,结果,今天发现了一个神奇的地方,在logicdata的右部分中间,可以发现analyzers右边的加号,点进去,有个SPI,根据芯片的一些特性,确定时间线,MOSI和MISO的行,点击确定,就可以得到一个特别长的“flag”$ k2 Y- j1 k, p

      ^" x! ^2 m5 }# B2 F/ g* I) p9 y很可惜,这是个陷阱,就是假的flag,flag{you-know-it-can-not-be-such-easy}& L' m& m1 T9 @7 \
    ( W" X) y' E0 T) K& H' {# t% y1 u
    于是我们进行了多种尝试,利用这个软件其他的一些工具进行解码,结果一无所获,但是,后来我们决定修改参数,因为之前的配置是可以得出flag的,于是猜测要更改SPI的某个特殊点。) i5 T2 z& {8 ~) L3 i* H& X. V* A( Z
    ; D. e# T8 g& t
    更改SPI的某个特殊点后,进行一个对照,发现只有将setting中最后的一个参数,改成high值,原屏幕的右下角就出现了flag。& t: n  d! O- a3 \/ G* k& Y* W& B
    - R, Q6 H8 v) q8 b1 ~" `; B! Q& H
    web第一题
    # S5 ~, N! R1 t1 Y# G1 Q& z/ D5 Q2 N+ f9 \: k
    Just so so
    ; {1 B4 a( u% N: z
    4 t7 h+ N  s5 I. t4 T/ o: B" G4 m7 ^开始时,用伪协议拿到源码,然后就是反序列化利用了
    1 W) S5 h0 c$ X( P; K4 R0 D0 Y  U+ r! Q9 ]1 W; h( J0 ?. i
    <?php index.php error_reporting(0); $file = $_GET["file"]; $payload = $_GET["payload"]; if(!isset($file)){ echo 'Missing parameter'.'9 g: y$ S* P2 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(); } }
    & W/ j. n2 y' H+ xclass Flag{
    $ K5 W4 E1 Y7 m6 j  w" xpublic $file;6 v9 @1 E3 Y6 f
    public $token;
    & k& B+ i: W/ U  O% B  E' w' Ppublic $token_flag;. ?# [/ y; x2 N/ a' O
    , ?. R0 {% z7 U  X; @1 K
    function __construct($file){  p" Z& V: H0 G+ b2 b
            $this->file = $file;
    , P& l) i  i" i/ h; D: B+ K        $this->token_flag = $this->token = md5(rand(1,10000));) U9 y" ?2 Y. z2 q; v4 c
    }1 K' b; ~$ _* w+ S

    / {) t4 _( |( S! K4 `7 c# Bpublic function getFlag(){% `) q2 `" J8 I& c. z, D
            $this->token_flag = md5(rand(1,10000));  z/ ]' l9 @$ N3 h
        if($this->token === $this->token_flag)3 W% T' V7 V: E, X* ?2 b, R3 Z; O% A
            {
    4 t5 t) s' W. P9 \( l                if(isset($this->file)){8 l" B8 p9 |" v' t/ g
                            echo @highlight_file($this->file,true); / z9 p8 J) ~3 U5 M, A
            }  * O' n/ r7 E9 C+ e7 |
        }: a. g" S- I  e
    }* q! O6 F6 f& z( z- w) R
    1
    # w: {" r! p  W+ F- I5 Z1 N22 p8 @8 P+ d; O, F" n0 e; o1 x
    3; o5 K; @# Z: U9 T' _: I9 w# u$ O
    4
    1 v: E) o' ^+ H+ b/ G' ?7 U5
    ! F' Y; g' E9 W3 w! k. `. f. \6
    ( N7 F8 d( ?4 B, t& g3 U7* S( J9 K% Q1 E- @* Z( f- X
    8  n( }$ r5 }; f7 h
    9/ X' h" w2 ^4 W0 @: B! S
    10( _$ `! g7 O6 c( \
    110 s& W$ J: a& L$ d) X: w0 _/ z
    12
    ) R8 o; D4 T+ ]) c; T0 S; O: p13
    % B# W, D3 J, r% h0 u8 h& i; G2 \14' {" ?, V0 h& z* x5 X! c
    }' _( U0 L4 k! g8 I4 b0 V/ ~, b1 }) j
    ?>
    1 H$ w. W; _: H" ~ 大佬说: 可以看到Handle类有个__destruct函数,该函数可以触发getFlag函数,但是__wakeup函数会将所有东西清空,这里改下属性个数就能绕过,参考SugerCRM漏洞,然后getFlag函数的条件可以用指针绕过,以前安恒的月赛也考过,最后flag的匹配可以利用parse_url漏洞,三个斜杠就能绕过了7 @, n8 Y3 \+ L/ U
    exp
    ( m3 ^7 c  ?2 A8 P, y8 f* C# |0 k7 X: T& T2 E; t
    View Code1 ~! P+ d$ K2 D% H. x

    + \. L4 l+ w$ y" h: A, \& J$ \9 Y! G5 |0 |2 z1 |# C
    3 S: P- x+ U5 L$ W& `3 o2 W
    https://xi4or0uji.github.io/2019/04/22/2019-4-22-2019-全国大学生信息安全竞赛-writeup/#more: X, S- g9 _1 z1 }
    2 [0 e" m! Q, p; a. Y6 s( V( l" A
    总结:本次比赛只是做了misc的题,web的题目打的也太少了,要继续加油,多进行php的审计,同时多做一些web题总结经验,下次争取多打几道web题/ }7 z1 c, Y  A2 t5 C+ u: M  i
    ---------------------
    % R  c* q, ]; d5 G/ f6 V作者:Jeff King ( f8 i2 T0 Y4 n1 E$ h4 B
    来源:CSDN
    4 f( B' Q* L" ~% [& ]# ]% h4 L6 r* \, d
    : b) v/ n) |/ K2 S

    % v8 [* N' ^, v: F8 X
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2025-11-28 12:47 , Processed in 1.163249 second(s), 50 queries .

    回顶部