QQ登录

只需要一步,快速开始

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

    * F; W0 J% J5 L: Q: g/ ^2019--国赛--第一次参加线上赛的自己的整理
    & k+ D, N  a5 q$ jmisc第一题:签到
    ) h" [0 T8 g4 O' E' n4 M1 D5 G6 [* j% J0 v) O. W. Q
    打开压缩包,发现一个exe文件和一个txt,要三个人一起站到摄像机,然后等软件识别,就出flag了
    # W6 g! ]0 G/ B4 O; ^' V! _7 c6 }7 n+ [; V* o3 Y
    但是我发现,你拿手机放一张照片(有三个人或比三人多)上去也可以出flag,所以推测出,该软件是甄别像素点来进行识别的  }5 m1 G0 ~6 t5 U, q! k1 r

    2 d% t  J& J( S  {1 \/ j: Dmisc第二题:saleae& {& r  s3 e- S8 S! u
      T( `6 e$ A- A( j8 f+ q- p0 b
    下载压缩包,得到一个.logic的程序,都是新东西,没人知道这是用什么软件来打开的,我发现这个特别考百度能力(捂脸)就是需要logicdata软件
    . C! ~7 [. {) V0 S
    - X% J) r$ m" \0 N下载后,发现其中给的是波形; S; Q) {* y- e: @/ z
    6 X& w- j( l/ t: P( q$ n
    然后去百度,发现这个软件是与芯片的输入输出有关,(后面是可以利用旁边的软件来读取flag的)
    % X8 x8 V/ b: `# Y9 w* k
    ; P7 g8 I8 R; `0 Y当时的我们没发现这个好办法,只能是0101010101的将flag读出来,然后进行转换成字符串/ S4 {+ l7 _; V0 c+ E, Y
    & A9 t5 ~# h" x5 d" p6 \, D+ [
    misc第三题:24C
    7 H# z+ [: [9 \2 t! V
    8 d* c. A2 J; M) T: R' a& u/ Y与第二题类似,但是需要一点脑洞,就是记得改变它的读取顺序就好了6 W$ }& r2 b6 d2 n" s( v

      I/ z1 r' a* P- _4 u- Ocrypto第一题:puzzle: J- [: ^4 c8 }% L. T  i

    % @* i2 O9 ^: n- U, u- T  D' M7 a首先是给了一个网站,心想还是不是web+密码,那就有点…舒(zi)适(nue)了吧
    ' x' j- E/ B' b
    5 R1 i% j  F; @7 ^让我深深的感受到数学的重要性,三重积分还没学的我,简直看的如痴如醉,第一题的素数来找规律,让我懵逼好久,这是什么题哦2 V- R, M* t/ E2 \8 I* N6 b3 U

    . b& u" p1 h$ m8 k, o: l  j' V所有的一切都是从0开始的感觉,于是就开启了自学之旅& m# W) u( A4 A  @# b- R/ u

    , v& x' ^$ l, @" l( \提示一下:1、question0 记得化简运算,当然网上也有计算器(当时死算到无奈,后面还错了)6 K; y7 _; P8 y, S7 ~2 e: J

    8 c7 G: A3 S. n5 Z4 J0 V               2、question1就是分组找规律,与素数有关
    % m7 a( I; W" S; Q$ h8 l$ {; v: b# S4 l4 ]3 Q1 t( b
                   3、question2是做的最舒服的一道题,简简单单的高数上的计算
    6 _/ t6 _4 b! U( Q# G3 H, M/ E5 m3 ?/ {* b8 M
                   4、question4是高中的知识,不过用一下大学的思想就就是大物的东西了,记住公式就没啥大问题了5 I9 a# U1 m" T; l  O
    . v  e. ~, b! @
                   5、question5是三重积分,与二重积分类似,具体自己去算
    : f. p) T; w7 q) f15 k7 C( C  }! v) x# w" p3 z' [
    29 g+ m3 i+ d3 Q  j7 Z
    3
    5 u5 M9 T% y) j, r2 p7 T  q48 t" ?+ @- f4 Z: d( {" s2 H7 N8 J
    5
    9 m/ l! i" U. ?0 f! p- ~6
    ' _; I, C1 L- E1 z7
    2 p( J1 ]# o6 |& [) w% m. B0 T5 J总而言之,这一道题就是叫你好好的去学习高数,一定要认认真真学习高数
    $ d6 o/ }2 D4 c7 e# ~$ G" A" b- B$ h* O0 G1 t7 D' f1 N8 X' H
    misc第3题:useasp9 [7 }, g6 B+ L6 h* F1 v/ z; F

    & u  u1 [2 b8 e+ ]7 [: j/ Z鬼知道这是东西哦,不过经过昨天的一道题发现,继续使用那个logicdata的软件,就可以了
    ! `: {% i* }# t" i4 p
    # U! i8 a$ b7 e  l+ Q  m- D, J首先,将文件拖入软件中,然后果然出现了波形
    7 n- @: S/ D+ Y
    ; _0 [  W" m8 V3 _  r% u5 w: q3 ]6 B昨天那道题,是对照着题目一道一道念的,010101010101来着,结果,今天发现了一个神奇的地方,在logicdata的右部分中间,可以发现analyzers右边的加号,点进去,有个SPI,根据芯片的一些特性,确定时间线,MOSI和MISO的行,点击确定,就可以得到一个特别长的“flag”
    2 _; C* r2 a, L" }) S3 F* L3 x4 ^% }. i. l7 o  e' c* f; Z
    很可惜,这是个陷阱,就是假的flag,flag{you-know-it-can-not-be-such-easy}
    ) D' a8 H- _9 g' j& @. E) p4 a0 H7 |4 O
    于是我们进行了多种尝试,利用这个软件其他的一些工具进行解码,结果一无所获,但是,后来我们决定修改参数,因为之前的配置是可以得出flag的,于是猜测要更改SPI的某个特殊点。8 T  V- r, m* d/ g" \" N
    8 M! d5 }- j9 z' k8 ~4 A
    更改SPI的某个特殊点后,进行一个对照,发现只有将setting中最后的一个参数,改成high值,原屏幕的右下角就出现了flag。3 O# i1 s' N6 m! G- q
    4 ]; Q) k5 H* }: K* C3 S& k2 c' n
    web第一题
    3 w8 e+ _8 r" m/ O7 m/ R, |+ W5 _3 U0 w0 |9 `  Y0 q
    Just so so9 z/ u4 d. D& F5 K* ~( P
    & o1 I; }5 J& h( V0 L0 o
    开始时,用伪协议拿到源码,然后就是反序列化利用了
    ' K; X" W3 b6 g, M# ]- ^0 R2 l
    / n6 x& K; J  B& a<?php index.php error_reporting(0); $file = $_GET["file"]; $payload = $_GET["payload"]; if(!isset($file)){ echo 'Missing parameter'.'3 h$ {& e" }5 x
    '; } 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(); } }/ f8 F2 C& {1 s$ B  |+ k9 E4 |  Y
    class Flag{% K; l4 z: Q3 S4 R9 E1 V) ?
    public $file;: l" L) {& x5 V6 J9 h" O' V, M
    public $token;; B+ k+ C4 Y1 X# g7 I6 A3 O
    public $token_flag;4 Y& }: d# V& a" s$ H9 N% C
    2 Z. Q6 x  z$ |9 o# ~
    function __construct($file){8 P7 m" A$ y1 `. r4 Q* K
            $this->file = $file;: d8 ~! ?0 x! P& y
            $this->token_flag = $this->token = md5(rand(1,10000));
    & D( m: V: f) z) i% C$ x( ^}
    , Z3 X3 }( i" p! k9 {$ c8 v* r# k
    public function getFlag(){
      K# B- g( |; p+ _7 A( ^; t) }! C3 m; y        $this->token_flag = md5(rand(1,10000));
    5 L/ X5 [8 Q2 D/ n2 k. U, [: f    if($this->token === $this->token_flag)
    - r4 x, H( W: O% e        {  i1 w3 J( L6 Z, _! p
                    if(isset($this->file)){
    7 J7 D9 |9 G( }, g: d                        echo @highlight_file($this->file,true);
    , @$ ^8 l' Z0 X+ {3 B        }  
    7 I2 K2 z2 F; D. ?0 C- Z1 ]    }# h! r* }; m5 w1 v! g$ @
    }
    % k9 T+ Y( q/ _  {2 V  g1
    ! e5 m( S7 N( r  F2
    3 s" t4 D5 u6 }* U8 L  u3/ X' d  R/ U2 Z4 z# t3 B, E
    4
    ; t! X, k' z  w2 ~6 @; r1 H8 T5, T1 I' r0 z/ t" K, B6 U! M
    6
    ; H. q1 \) s; d7 h76 N# u2 ~' ^* X$ R! H3 J
    8
    3 w" T. Z4 a8 P% f* R% C6 a9; ^, l9 ^+ d9 u2 T% ~. ?0 J
    10
    9 F, }& |( N- r3 f- l4 k# P/ V11
    5 g5 [+ U) ]1 `8 X3 v# e12- n- D# h$ ?* z3 d! i( l
    13  e+ W* j& ~* {; _
    141 y& }- g& f6 Y
    }$ E7 s/ L( w* a- _* m: l- v
    ?>
    & k: j7 m% ]  o: |5 ] 大佬说: 可以看到Handle类有个__destruct函数,该函数可以触发getFlag函数,但是__wakeup函数会将所有东西清空,这里改下属性个数就能绕过,参考SugerCRM漏洞,然后getFlag函数的条件可以用指针绕过,以前安恒的月赛也考过,最后flag的匹配可以利用parse_url漏洞,三个斜杠就能绕过了
    % @# x$ T9 t' _7 Texp! z5 v: a1 N+ A
    , z7 ^7 p0 g5 ?; y! q5 ^, ?4 O# B
    View Code4 A* f' L6 [& ^4 h' y4 `

    , _2 ~+ _# K. X7 J5 R3 C5 o) s$ C1 e) q1 _. a  }

    : [$ M8 }0 v' X0 Jhttps://xi4or0uji.github.io/2019/04/22/2019-4-22-2019-全国大学生信息安全竞赛-writeup/#more3 \! f8 {0 K" h0 x

    : g3 D) W; h$ e/ y5 H5 l总结:本次比赛只是做了misc的题,web的题目打的也太少了,要继续加油,多进行php的审计,同时多做一些web题总结经验,下次争取多打几道web题" h4 G3 A7 A8 i0 J. B( i
    ---------------------
      v/ F1 d& [) y) y& H' @作者:Jeff King
    5 ?/ u5 N& I% i+ m来源:CSDN " p6 A' r- Z  W& `1 Y5 [: y

    : w+ ~6 u0 c$ S& w+ b* @! ^$ r7 N  h9 C
    5 A) x8 ?7 G2 a) O( B5 w$ Q& s: a5 D& r& `4 ?! q. K7 `  X. j' I% [
    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, 2026-4-12 03:47 , Processed in 0.390539 second(s), 50 queries .

    回顶部