请选择 进入手机版 | 继续访问电脑版

QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 1391|回复: 0

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

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

5250

主题

81

听众

16万

积分

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

    [LV.4]偶尔看看III

    网络挑战赛参赛者

    网络挑战赛参赛者

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

    群组2018美赛大象算法课程

    群组2018美赛护航培训课程

    群组2019年 数学中国站长建

    群组2019年数据分析师课程

    群组2018年大象老师国赛优

    发表于 2019-7-5 15:48 |显示全部楼层
    |招呼Ta 关注Ta
    3 i3 \" b5 k% b' G& N# P) a3 v
    2019--国赛--第一次参加线上赛的自己的整理/ ^- Q  E$ M0 o  W; [/ S# g3 }
    misc第一题:签到5 X* x. |/ K0 [2 M

    8 M! R" w& x" Y6 K, g/ J打开压缩包,发现一个exe文件和一个txt,要三个人一起站到摄像机,然后等软件识别,就出flag了
    ; c+ b& \0 d4 a, W. [9 h" c4 R
    / y5 I: n5 K) `3 j$ R3 P但是我发现,你拿手机放一张照片(有三个人或比三人多)上去也可以出flag,所以推测出,该软件是甄别像素点来进行识别的
    * U  s% S6 H# {5 t$ D3 t
    4 P# b" A7 `" s& ]" `, \misc第二题:saleae2 y7 `3 N& h. {% n2 A- e& w

    ! b) x; E& \) f5 s2 r下载压缩包,得到一个.logic的程序,都是新东西,没人知道这是用什么软件来打开的,我发现这个特别考百度能力(捂脸)就是需要logicdata软件& O) B; d1 i: b; y. D

    ) I3 A0 f: M7 l: h# I  G下载后,发现其中给的是波形* s4 J; n; G3 v6 u1 S7 Z+ b
    / F( L/ J( Z. H  {; _# W0 B" {  M
    然后去百度,发现这个软件是与芯片的输入输出有关,(后面是可以利用旁边的软件来读取flag的), P  P' ]! t7 G# K% S

    / o9 |7 t8 a7 H当时的我们没发现这个好办法,只能是0101010101的将flag读出来,然后进行转换成字符串, i0 D. \& x0 f2 l( K( |) }
    9 f% ~( N7 w% j0 i0 K/ _
    misc第三题:24C& B) x% T& s+ R7 i% p0 w
    7 ~4 e! P2 N/ I* V4 a
    与第二题类似,但是需要一点脑洞,就是记得改变它的读取顺序就好了4 z, V! e1 b+ h. H) u- v6 B$ y

    7 ]" t5 h- o. q1 d. y5 b; ?# Y* L5 ccrypto第一题:puzzle
    1 x9 `5 C3 D  b  ]$ W+ `0 `" L8 d6 u! k/ I/ J- J: k
    首先是给了一个网站,心想还是不是web+密码,那就有点…舒(zi)适(nue)了吧8 e! L8 q3 H9 c& K2 z* Z
    & K) J* W* C) V/ I0 W6 x4 b4 B
    让我深深的感受到数学的重要性,三重积分还没学的我,简直看的如痴如醉,第一题的素数来找规律,让我懵逼好久,这是什么题哦
    + K. m# F" `. Q4 |2 M. p" S( x" S; s5 ^" W  W2 ?" T& k! j
    所有的一切都是从0开始的感觉,于是就开启了自学之旅1 i/ }+ s$ q7 t$ ?3 O; S1 i0 b$ A

    8 p8 I0 s) H$ B3 d提示一下:1、question0 记得化简运算,当然网上也有计算器(当时死算到无奈,后面还错了)
    $ F! q) l) o3 D% J5 _1 Q
    7 E& j  M6 w  x. L9 R; q$ m: i               2、question1就是分组找规律,与素数有关( @1 G/ j! p/ W2 R" M

    * F  N% X- x! C3 i               3、question2是做的最舒服的一道题,简简单单的高数上的计算$ e' \, z: S4 o0 D. O' x, e

    ) E) @3 |2 ?2 w  q' R# s. C               4、question4是高中的知识,不过用一下大学的思想就就是大物的东西了,记住公式就没啥大问题了
    * O6 H, W! G$ ]: C5 ]6 _, ?4 h" q
    8 z/ f8 Q& Y8 h2 x( E$ Y               5、question5是三重积分,与二重积分类似,具体自己去算; |6 Q8 Z$ R" q5 Q0 `5 z" e
    1
    0 b5 ]3 I7 M% w: h8 q: i26 T7 t  K- m, m9 F# \- q4 b% ?
    3
    " t# D8 ?( {% l8 a3 I, n" b41 a. m2 ]! V0 K+ v. ^
    5' {4 a( m3 n: [5 s9 q
    6
    $ G( p! ?& z: i/ D! @+ X7
    : E0 r# ?" u$ y/ A* q总而言之,这一道题就是叫你好好的去学习高数,一定要认认真真学习高数7 p: j! W! t3 f; @: S$ f: m3 p

    4 X# R' ^7 K7 o8 j8 h- l+ l4 f! gmisc第3题:useasp9 W6 Y# R( [. m) _1 ?0 j
    ; z1 ^4 a+ `4 C0 }8 _0 S
    鬼知道这是东西哦,不过经过昨天的一道题发现,继续使用那个logicdata的软件,就可以了0 M9 b& |. x  H! [# E$ I2 |
    . n3 [3 b1 y+ T: z0 e+ t
    首先,将文件拖入软件中,然后果然出现了波形) I% c& T1 _# ]/ n8 K
    # B# q7 c) o+ V, s
    昨天那道题,是对照着题目一道一道念的,010101010101来着,结果,今天发现了一个神奇的地方,在logicdata的右部分中间,可以发现analyzers右边的加号,点进去,有个SPI,根据芯片的一些特性,确定时间线,MOSI和MISO的行,点击确定,就可以得到一个特别长的“flag”$ o1 p4 f" O0 O2 r! l8 P# y
    5 I. ~" w! D3 P; N. Q
    很可惜,这是个陷阱,就是假的flag,flag{you-know-it-can-not-be-such-easy}5 C0 ?8 Y$ Z6 _- V$ @' H( v

    7 |/ k- v0 G5 [- `% P于是我们进行了多种尝试,利用这个软件其他的一些工具进行解码,结果一无所获,但是,后来我们决定修改参数,因为之前的配置是可以得出flag的,于是猜测要更改SPI的某个特殊点。
    3 {7 n" z6 \: n: H4 E+ }& v8 s0 W/ |! N  n. a8 W& Z. A4 N" n
    更改SPI的某个特殊点后,进行一个对照,发现只有将setting中最后的一个参数,改成high值,原屏幕的右下角就出现了flag。. x$ y4 L# c5 \
    , y7 U5 s0 C" f4 C: j! F
    web第一题( \/ _) v& i( g/ h

    5 n) @- H3 ]) FJust so so
    3 W" e. y% N! b( T7 G5 i
    : M: s: Z: K) Q- I- \* K开始时,用伪协议拿到源码,然后就是反序列化利用了& R" p% S1 f0 i% k1 ~

    $ i# V5 G" V. ^) z  h) r. I$ @<?php index.php error_reporting(0); $file = $_GET["file"]; $payload = $_GET["payload"]; if(!isset($file)){ echo 'Missing parameter'.'
    4 h2 ^& e7 K% T. V( h'; } 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(); } }
    " n( Y8 G* v6 R, z* Rclass Flag{8 }9 S, E1 D6 B; M7 G4 ?# E: C! Q* l
    public $file;
    + A$ o! A9 A1 Q5 _public $token;" G- a1 i8 V, Z" i4 S6 C
    public $token_flag;. a+ ]1 a( Y9 N+ s

    0 I8 x/ M3 L7 A! @* Wfunction __construct($file){
    ' W- y! ?8 |/ g2 x! U! Z. V        $this->file = $file;+ a* ^3 C7 m8 s& t6 }9 A5 _8 P
            $this->token_flag = $this->token = md5(rand(1,10000));
    ) q* ]3 \0 K( \3 R* N# m0 T/ x}
    ( C$ J# z8 `+ h1 P. d
    4 u. G& u* }; k2 G5 T/ R! ]public function getFlag(){9 I  t. ^* z2 ?4 I' ]8 ^
            $this->token_flag = md5(rand(1,10000));
    6 D7 D- N; o0 d3 \9 T: J    if($this->token === $this->token_flag)
    7 ?4 g) U2 M0 V: q0 T5 t2 q        {
    ! l# n1 q9 [1 ^                if(isset($this->file)){/ X! I7 q! o4 w- U3 Z+ j1 z8 M4 Y
                            echo @highlight_file($this->file,true); ) P  C0 g# Q& B+ |5 p
            }  
    9 K% c% v" d- s) Y2 p; r    }
    # B* \, D2 V2 ^9 x7 Q}
    / C1 H, [6 B9 K9 m1
    . E6 p8 w3 G% v+ E2
    ' J9 @, r" b5 k* q- t35 H& E% X+ b  P1 O9 V
    4
    8 L2 E" c# l2 Q" Q& v51 u4 Z/ |" P) V! W1 q3 d5 {% f' P
    67 T, X4 k; r) t2 d( A9 k) k
    7
      Z; M" b' L$ q' O8
    0 R, t8 F& G( t. w: L; k* ]9
    9 ?, P4 E$ w9 @& ~3 m: W$ b7 f10
    . X/ W0 e6 O$ Z" l5 ^5 X, N6 L115 r( V5 Y, E6 W2 i1 A
    12
    2 N5 Z* v. s& E7 g13
    0 a/ F' `  V# v% y+ h2 I7 Q+ ~14
    - _" k$ n. R! \6 ]; K& L}7 H. ?8 u& i9 k2 g" S
    ?>
    % z; K) M" V5 b# A6 d. g 大佬说: 可以看到Handle类有个__destruct函数,该函数可以触发getFlag函数,但是__wakeup函数会将所有东西清空,这里改下属性个数就能绕过,参考SugerCRM漏洞,然后getFlag函数的条件可以用指针绕过,以前安恒的月赛也考过,最后flag的匹配可以利用parse_url漏洞,三个斜杠就能绕过了
    8 i; q" l" D* y7 E( p: K0 kexp6 E9 y+ o5 [4 I
    4 C1 C$ v& h+ C" d/ c! [
    View Code
    2 d2 \' g) }1 f  ~+ D
    # d* N! o" ]6 Q! n" d6 d; a1 t
    " ~7 x2 s) ~% A
    6 ?# M' Q" G0 |; U6 fhttps://xi4or0uji.github.io/2019/04/22/2019-4-22-2019-全国大学生信息安全竞赛-writeup/#more# K& N* J  Z  s  M) \* f
    5 ^# \1 |, T8 k& R) ^9 X- v4 Q( h6 @8 ?
    总结:本次比赛只是做了misc的题,web的题目打的也太少了,要继续加油,多进行php的审计,同时多做一些web题总结经验,下次争取多打几道web题
    7 i9 [, e$ W  s. P$ ~1 e& L; E--------------------- " n+ V# C0 |5 b) b
    作者:Jeff King
    6 N0 z% {+ A( f/ ]7 Z来源:CSDN
    9 ~6 h) S& _5 C! B# `5 {  B8 `: E! Z& k8 h& l- h3 {: F0 ^
    2 A4 Q) K" K5 R3 }! Q* ?7 g0 k

    9 r  k: U1 `" c! d
    zan
    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

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

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

    蒙公网安备 15010502000194号

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

    GMT+8, 2024-3-29 20:48 , Processed in 0.449740 second(s), 51 queries .

    回顶部