QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2081|回复: 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

    / {, d+ J$ r& Z- z% Q$ i. B2019--国赛--第一次参加线上赛的自己的整理
    . ]- ^: M" p: mmisc第一题:签到2 D* Q- x5 G" N2 G! o% b/ L* _
    2 g# H1 v. A+ N+ Z8 z% ]& L1 G
    打开压缩包,发现一个exe文件和一个txt,要三个人一起站到摄像机,然后等软件识别,就出flag了
    % ~( s' f4 @" K( B/ n& c
    0 z4 b' E; _2 M5 T- i但是我发现,你拿手机放一张照片(有三个人或比三人多)上去也可以出flag,所以推测出,该软件是甄别像素点来进行识别的% m1 l8 O( D, L; e& I4 C8 @* p

    4 S+ N0 O6 X' }misc第二题:saleae
    9 U/ F* @+ |8 Y% o
    - w% n; T* q1 I) o: ?8 u, p3 i6 \下载压缩包,得到一个.logic的程序,都是新东西,没人知道这是用什么软件来打开的,我发现这个特别考百度能力(捂脸)就是需要logicdata软件
    $ ~- D- u( a2 n% A
    ! i2 l) C; N/ j# h; ^4 j下载后,发现其中给的是波形
    * @# ]7 f8 @6 v( S
    * ^9 M; e4 b3 z0 A; L; j然后去百度,发现这个软件是与芯片的输入输出有关,(后面是可以利用旁边的软件来读取flag的)% A' i$ }1 P8 ~+ A+ A

    " H" F1 [( G" y7 E$ q  j# @) m# c当时的我们没发现这个好办法,只能是0101010101的将flag读出来,然后进行转换成字符串  H9 O- @% U" V* }" |5 Q$ W7 U
    & L3 k  J# J2 f8 u/ x* \
    misc第三题:24C
    ' e1 S. |9 v. D: ?0 `: F
    ) }- e  L# Y; i1 d9 j  \# Y与第二题类似,但是需要一点脑洞,就是记得改变它的读取顺序就好了! x5 _, ^5 [, o
    / W. y; F* ~4 k# _
    crypto第一题:puzzle  V- {$ l! @- Y8 K
    3 t6 o0 q" I0 B0 q2 c, b
    首先是给了一个网站,心想还是不是web+密码,那就有点…舒(zi)适(nue)了吧
    3 e3 L, k+ O# K$ M7 B3 a! P1 o6 H0 s' S- Q; m! E
    让我深深的感受到数学的重要性,三重积分还没学的我,简直看的如痴如醉,第一题的素数来找规律,让我懵逼好久,这是什么题哦$ u0 x: R$ H; ~2 _
    & y" V* w) q; @) X7 c/ O1 t9 [" Y
    所有的一切都是从0开始的感觉,于是就开启了自学之旅
    1 f8 ]; Z: j* }3 K% @
    " W9 N; J. W$ h: V: ?提示一下:1、question0 记得化简运算,当然网上也有计算器(当时死算到无奈,后面还错了)
      R7 v2 n% k+ y7 `
    ' T3 c/ e1 a7 w. ?  K: S               2、question1就是分组找规律,与素数有关
    ) u% @/ u2 t# K2 U; J4 M: k) {+ R4 G+ E5 `& P, B' C; C  r
                   3、question2是做的最舒服的一道题,简简单单的高数上的计算5 I, L% {: b! c. Q/ Q7 a6 S
    2 w, O  v* c! |
                   4、question4是高中的知识,不过用一下大学的思想就就是大物的东西了,记住公式就没啥大问题了7 d+ `0 X% U5 A
    * y8 j4 {6 l2 @7 Q  D/ G7 I
                   5、question5是三重积分,与二重积分类似,具体自己去算
    / o' |' u( S- o; F% t/ K2 x9 W1
    9 l" x- o" B1 R& d) _: r& s) Y2
    . U4 U, b- \9 f, N, @' g3  i. @( t8 D9 T' T
    45 q2 E  `! s1 N$ O
    5
    9 R/ n9 T" c! z64 _% v5 l+ M8 D! T* z2 [- [
    7# l- K. I0 [' ?
    总而言之,这一道题就是叫你好好的去学习高数,一定要认认真真学习高数: m) _8 b/ N+ ~1 D0 J, G( {

    ! Q' X4 j: \; Y0 @) ?misc第3题:useasp
    $ U$ c0 V5 T! U7 C
      u$ ]  e* v' U/ ], W/ @; K; H2 p鬼知道这是东西哦,不过经过昨天的一道题发现,继续使用那个logicdata的软件,就可以了
    3 O4 q6 }& l* G' B! P2 f
    : b. {/ e! i4 P1 j0 \* f: v首先,将文件拖入软件中,然后果然出现了波形/ d1 @" B/ V. \0 |* O+ z* L' {

    : |% G( O8 ~" _  z6 D) k' v昨天那道题,是对照着题目一道一道念的,010101010101来着,结果,今天发现了一个神奇的地方,在logicdata的右部分中间,可以发现analyzers右边的加号,点进去,有个SPI,根据芯片的一些特性,确定时间线,MOSI和MISO的行,点击确定,就可以得到一个特别长的“flag”3 `% |# O( k5 q' F7 x

    # G* T3 m- s1 }很可惜,这是个陷阱,就是假的flag,flag{you-know-it-can-not-be-such-easy}
    , ?) |: I" R$ D3 `) U+ K0 r2 Z% C
    于是我们进行了多种尝试,利用这个软件其他的一些工具进行解码,结果一无所获,但是,后来我们决定修改参数,因为之前的配置是可以得出flag的,于是猜测要更改SPI的某个特殊点。
    * o+ a) T) D' m, Q. q* G3 j' j  b& S/ p; K2 C0 Y* ~0 y* D; ?
    更改SPI的某个特殊点后,进行一个对照,发现只有将setting中最后的一个参数,改成high值,原屏幕的右下角就出现了flag。) W' g' `: e& {8 i0 E# [8 Z

    0 ]) s2 m3 n* z; Mweb第一题9 E, ?* z9 }( S' s; s
    4 M, c% h& U& z% r, X& V& C& D
    Just so so5 S6 a8 U& V+ v  V% s3 v

    ; d2 y8 u4 e9 b" Z8 S/ \开始时,用伪协议拿到源码,然后就是反序列化利用了5 _$ G% B: n- h3 ~& D- Q9 L7 f' J" P

    6 {2 m. o) A+ V6 D<?php index.php error_reporting(0); $file = $_GET["file"]; $payload = $_GET["payload"]; if(!isset($file)){ echo 'Missing parameter'.'" Z! v, ~" X$ s  a) [
    '; } 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(); } }
    5 N7 s4 a' j; V0 K2 q; o% rclass Flag{
      I7 {0 B% O( X  E3 W+ [! c) h( t) fpublic $file;
    . t5 o3 q9 v, d: Jpublic $token;
    0 g: o) }$ ~9 z/ b7 q1 `  Upublic $token_flag;
    # r( k" `+ y2 n" k! H, B7 I# h0 Y! @% ]0 \) p, _
    function __construct($file){$ y0 A4 F7 i5 W2 o* p
            $this->file = $file;* i" D& a# l$ Z! p: n# O' j3 G
            $this->token_flag = $this->token = md5(rand(1,10000));5 k( R# L- N: y" p( N6 A9 ^5 A
    }/ s' J; ?, `3 z0 k
    ' I$ l1 v" N- z3 D1 L# h
    public function getFlag(){
    ; K3 v7 b  c3 a! w/ J; @: ~        $this->token_flag = md5(rand(1,10000));! o- y2 b1 |& _5 N
        if($this->token === $this->token_flag)" ]: P! V) `- g' \$ y
            {$ C7 v! {& c8 k0 N3 k7 `: Q- M
                    if(isset($this->file)){
    - \5 x8 Y% b* k/ E( z                        echo @highlight_file($this->file,true); 1 }8 Z- D8 W  G& w
            }  " A6 r: E7 _+ D' ^3 k: _) z
        }
    2 a$ M1 R% l" r( B+ e( T2 s% E}
    3 ]+ \- ]8 _* D8 i5 Z1
    5 L- a3 `; I: I8 H2 h7 g2: Z6 O6 k' X' Z0 N
    3
    - m) I- I; e% ~) {* y, g4
    9 i( w! N6 n8 K4 {( r. s5  N: g$ N/ P' m7 K5 y  \/ u
    6
    8 e$ u; a: Q2 a% P8 ~73 A6 N$ P! U$ O! p* ~0 P6 f/ m3 g( \' j
    8$ s. E* {3 B( t: x; G8 M+ [
    9+ Q; }" D" _3 I( ]+ i. b( o
    10$ V! V8 s: C0 i3 C2 v) O
    11
    / v; q% j7 X5 d5 R- O" ]12
    : u1 A5 ]1 u) y13- d( U3 Y" P5 B4 @$ h4 @
    144 k. D: e) b1 Y! x7 }+ E5 O, [
    }
    5 x: U* o- M: N; \5 c+ X0 U0 K3 P?>$ X- ?0 k7 T+ r1 r6 V- q
     大佬说: 可以看到Handle类有个__destruct函数,该函数可以触发getFlag函数,但是__wakeup函数会将所有东西清空,这里改下属性个数就能绕过,参考SugerCRM漏洞,然后getFlag函数的条件可以用指针绕过,以前安恒的月赛也考过,最后flag的匹配可以利用parse_url漏洞,三个斜杠就能绕过了- Z0 b% g; W/ t: w: H
    exp
    / V% Y- D- R' n( ?4 Q
    * |7 T) L/ E7 JView Code& d/ J3 K3 [/ `  g' Q

    1 [% `. A- D5 L
    , Q+ \& }6 D0 q% j( e: X7 Y9 y
    # I* @3 x# f0 T6 f4 qhttps://xi4or0uji.github.io/2019/04/22/2019-4-22-2019-全国大学生信息安全竞赛-writeup/#more3 a) y: [* ?/ Y# X- s$ G% p( w

    4 i' o0 S3 M% [( K- T& t3 F总结:本次比赛只是做了misc的题,web的题目打的也太少了,要继续加油,多进行php的审计,同时多做一些web题总结经验,下次争取多打几道web题
      e: K" b" D  H; c* a+ S--------------------- 6 z7 P: d  y8 O6 h0 _& L: F; M
    作者:Jeff King
    : M& }: N( n( `  o8 G0 X8 L# j来源:CSDN 5 I, f. r1 ]* f
    : O1 Y! t; |7 `( O6 p
    7 @; U6 s0 p" W( w: q! d- `
    ( b6 ?  [  ~: ~* 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-9-17 05:21 , Processed in 0.316581 second(s), 50 queries .

    回顶部