QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2222|回复: 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
    # _' b) E) r. y# g
    2019--国赛--第一次参加线上赛的自己的整理
      V  U9 J) G% q- Wmisc第一题:签到5 n  A  S# P7 O& p1 \* @
    & O4 H, r4 p8 u9 i$ q- b  r
    打开压缩包,发现一个exe文件和一个txt,要三个人一起站到摄像机,然后等软件识别,就出flag了: D; E- h% j; ]

    " G8 a* h; A4 @& A# z* e- {$ h但是我发现,你拿手机放一张照片(有三个人或比三人多)上去也可以出flag,所以推测出,该软件是甄别像素点来进行识别的
      J: L  H) \/ u5 ]- [& `% U- s8 K. q! ~  ~) Z2 @
    misc第二题:saleae" R: i- ]; m  L/ l/ F" t, v

    0 \  j& i- n' h( q+ _5 c下载压缩包,得到一个.logic的程序,都是新东西,没人知道这是用什么软件来打开的,我发现这个特别考百度能力(捂脸)就是需要logicdata软件% R$ {1 Q, Q1 Z+ R. u

    ; U5 f' D( K/ \下载后,发现其中给的是波形
    + y* e2 W4 D' r1 e% d" Q: u, R/ |
    然后去百度,发现这个软件是与芯片的输入输出有关,(后面是可以利用旁边的软件来读取flag的)4 r) W3 j3 K% N0 c
    7 d7 }+ r; ~7 B( c7 P4 z6 B5 v
    当时的我们没发现这个好办法,只能是0101010101的将flag读出来,然后进行转换成字符串  ^4 d* V& B4 C& C. Y9 f7 L
    - f! A7 Q6 P% ]* j6 x6 L
    misc第三题:24C  V1 A: E  |- H. k* w" Y- ?+ P

    ' k  c* v3 K8 J" @与第二题类似,但是需要一点脑洞,就是记得改变它的读取顺序就好了
    5 q; l* d9 l( Y' H1 Q7 r% g0 }5 D2 _
    - s& h" r& ?+ Q4 ]2 Acrypto第一题:puzzle4 D. z4 {# v2 I; j2 _& I- h
    3 v" x) \& _( N
    首先是给了一个网站,心想还是不是web+密码,那就有点…舒(zi)适(nue)了吧" S, z2 ^4 P' i3 i
    0 L3 t+ \0 n- f2 `: r- S
    让我深深的感受到数学的重要性,三重积分还没学的我,简直看的如痴如醉,第一题的素数来找规律,让我懵逼好久,这是什么题哦
    6 z7 |+ g$ L* f8 T7 b  b+ x6 b. y1 x! `# f6 F$ Q) n+ C7 ]% c
    所有的一切都是从0开始的感觉,于是就开启了自学之旅. C9 w5 j9 K+ r; r' G2 z
    3 {1 e6 o& h2 L! \* o
    提示一下:1、question0 记得化简运算,当然网上也有计算器(当时死算到无奈,后面还错了)
    3 k+ ~: @' L& d- h/ K. ~; x; F$ Q' f
                   2、question1就是分组找规律,与素数有关8 Q6 \, r1 r( @2 x' }! N

      @0 ?) n5 l, X2 h. {: Z$ `               3、question2是做的最舒服的一道题,简简单单的高数上的计算
    / \5 i3 {6 s, x. ?; T6 }3 E+ a/ L' F/ x' L: j& s$ a
                   4、question4是高中的知识,不过用一下大学的思想就就是大物的东西了,记住公式就没啥大问题了, x# G  ]3 R& x, ]

    / I: u6 N6 C) P               5、question5是三重积分,与二重积分类似,具体自己去算2 b. s! ^, A9 C% e8 v6 ~
    1
    8 \. B% F1 ~$ q+ m2 y4 @5 v2 s2 g2" X" y" K: Y1 @- X' N
    3
    $ a8 R7 R4 w* y0 f0 J+ t4
    7 }2 j  k8 l$ ~% R9 J( L1 T5
    ) q. _$ \5 @0 b; L) r" ]6& p& G, `8 ^: v0 F3 g
    7
    0 J* |" V: _4 l总而言之,这一道题就是叫你好好的去学习高数,一定要认认真真学习高数
    ) T3 [& h; U) b7 M* G) l: L% {8 X& x
    misc第3题:useasp
    7 g/ K3 U6 G4 i- K, ^) `' |: H4 J- S- \1 n7 n' t% _; ^
    鬼知道这是东西哦,不过经过昨天的一道题发现,继续使用那个logicdata的软件,就可以了/ M) W. F; J; ?5 g
    4 z1 ?& H' s1 A8 S& E" e
    首先,将文件拖入软件中,然后果然出现了波形
    ( L% G) c7 J- v* `2 c* Y4 s, M3 _) R3 I% X5 [" [8 r6 k8 [
    昨天那道题,是对照着题目一道一道念的,010101010101来着,结果,今天发现了一个神奇的地方,在logicdata的右部分中间,可以发现analyzers右边的加号,点进去,有个SPI,根据芯片的一些特性,确定时间线,MOSI和MISO的行,点击确定,就可以得到一个特别长的“flag”
    + Q) x2 a8 Z4 L0 \  {7 K
    ! Q2 ?; j! D! s" W+ B, Q- S很可惜,这是个陷阱,就是假的flag,flag{you-know-it-can-not-be-such-easy}+ O' @, H1 }8 ~
    0 R/ G% L7 z$ D9 n; i% T
    于是我们进行了多种尝试,利用这个软件其他的一些工具进行解码,结果一无所获,但是,后来我们决定修改参数,因为之前的配置是可以得出flag的,于是猜测要更改SPI的某个特殊点。, O: J! O- n4 J5 Z' w  V9 ~4 U
    ; U  H4 p9 m! N+ Z: w' @
    更改SPI的某个特殊点后,进行一个对照,发现只有将setting中最后的一个参数,改成high值,原屏幕的右下角就出现了flag。
    " V. O8 A* k! V, p& M9 z0 v6 _5 w: T5 \
    web第一题& `- Y) f' m* a0 J4 o; H
    : l8 [" M/ `: Z- S3 G
    Just so so+ T, `. O7 d7 x, G5 y$ p# a: z: f
    ) V  Q/ O6 l  p( [5 R3 S- `% p, ?" S# P
    开始时,用伪协议拿到源码,然后就是反序列化利用了
    , L+ @/ ^, W: x
    " \, Z6 ^, R$ w" n; e<?php index.php error_reporting(0); $file = $_GET["file"]; $payload = $_GET["payload"]; if(!isset($file)){ echo 'Missing parameter'.'
    7 O% a' `+ P0 x9 m* o  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(); } }
    & A& {# K- |* I* }/ M- k# z0 mclass Flag{
    " i( j, b  T$ M0 Y" A( v( m( lpublic $file;
    . T6 Q; B/ y  W4 t+ d' dpublic $token;
    4 T8 k6 J9 y' G; {. h* ?/ qpublic $token_flag;9 A2 U! M" p- `8 U6 T1 J5 G8 P; k
    / S2 J2 b; L9 v1 q4 ]1 b" ~' k
    function __construct($file){9 `+ t+ X7 |4 A, A  I  ?- @
            $this->file = $file;4 p' M! _; v/ s8 n  p
            $this->token_flag = $this->token = md5(rand(1,10000));% y9 d# Z, c& h" l& X
    }
    " z8 b2 ]6 G" y* e0 T# j4 Q9 S8 R' h% c) ]
    public function getFlag(){' r6 n3 z% Y( p, C# ?: h8 J* H& K
            $this->token_flag = md5(rand(1,10000));, t% i- ^3 Y" g' p
        if($this->token === $this->token_flag)
    * X' G2 _; u+ w        {% [( p8 S0 c4 H0 b3 k& C9 J
                    if(isset($this->file)){
    % j% `, E+ B* w7 }# d" x                        echo @highlight_file($this->file,true); ) \5 ^/ E) P  r; L$ D- k
            }  8 z5 p: }3 ^8 k3 |' `
        }
    ; {# H; ~) S' n6 G3 w+ ]}
    , V1 h# o+ X% v. r0 Z+ z1
    $ }! R5 y  N) ]( d2  y& ]; @- |5 J' W4 H
    30 _8 I( a4 E- [- p* t
    4
    4 O! ?/ i& B2 S, t5 B; m58 h6 r3 u5 I# R' Q. I$ U
    6% d2 i* m2 g$ t, b3 ]
    7' N+ j8 |  r3 b) m. P
    8
    7 k! n) U( n5 l# w, i& m9
    ! ~& E% x) h( J; ^! W109 x, ^& {/ \& M7 _/ L0 z5 @" j
    11
    , F+ n6 W3 ~0 N( N5 X+ b& l12
    - a2 X) ]4 }( P0 S, _9 s13
    * z! x3 i" J6 ~8 \4 q+ }14
    4 h& ^* i: c6 ^8 Q}8 F  l% t/ s$ f! h0 r7 o% T
    ?>6 i; n/ G' |1 ]+ z0 R
     大佬说: 可以看到Handle类有个__destruct函数,该函数可以触发getFlag函数,但是__wakeup函数会将所有东西清空,这里改下属性个数就能绕过,参考SugerCRM漏洞,然后getFlag函数的条件可以用指针绕过,以前安恒的月赛也考过,最后flag的匹配可以利用parse_url漏洞,三个斜杠就能绕过了# D4 e% o3 W0 y' N0 R) e8 p
    exp+ N- y. s+ _. k, n
    $ l& k, \2 p! v
    View Code, v/ y: h, _. W' s$ _, r

    + \* ]) y' k- f) u( J4 L% n- d
    " J$ V- ?( C- D' E, d) {- D
    & {/ b$ x7 v3 R* F& x/ i7 T$ I- @/ ihttps://xi4or0uji.github.io/2019/04/22/2019-4-22-2019-全国大学生信息安全竞赛-writeup/#more
    " f9 n2 j4 ^) H; G. y/ ]9 Y9 Z* x# R  H- `' v
    总结:本次比赛只是做了misc的题,web的题目打的也太少了,要继续加油,多进行php的审计,同时多做一些web题总结经验,下次争取多打几道web题
    # k6 H3 [4 f- _4 {* r---------------------
    ' k1 {4 J! E7 {5 n& N作者:Jeff King % s, S' F, x9 r
    来源:CSDN 0 z8 A; ]% H; B2 e& c; P
    9 I1 N, V$ U  h

    4 a; v& E/ e' g+ H& ]0 f9 y7 f" k- t
    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-16 09:30 , Processed in 0.493072 second(s), 51 queries .

    回顶部