QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2243|回复: 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
    ' }: Z0 |4 t4 j9 A, H* M
    2019--国赛--第一次参加线上赛的自己的整理
    ) R3 c0 f3 x- X' X7 \  \% U# wmisc第一题:签到: J2 p5 V6 J0 f& j" e) T6 ^7 ^

    7 N1 q8 K4 z& p" x5 j0 ?打开压缩包,发现一个exe文件和一个txt,要三个人一起站到摄像机,然后等软件识别,就出flag了% G( X) D0 R. U$ D

    4 x9 ]3 F0 l  Z但是我发现,你拿手机放一张照片(有三个人或比三人多)上去也可以出flag,所以推测出,该软件是甄别像素点来进行识别的5 K: a4 g0 r  I3 K* [  p

    & H5 \: d+ H1 ]6 x! \8 v$ Pmisc第二题:saleae( [/ a. A! E& J! W9 E/ L5 z
    ; n- l1 \, }# \& }1 b2 q8 \
    下载压缩包,得到一个.logic的程序,都是新东西,没人知道这是用什么软件来打开的,我发现这个特别考百度能力(捂脸)就是需要logicdata软件
    - W+ ]: i9 |* N0 o$ B+ z2 L
    , l) [$ N, M. S下载后,发现其中给的是波形* c- V# b+ e  ?
    ) I/ g/ K/ v: I  [
    然后去百度,发现这个软件是与芯片的输入输出有关,(后面是可以利用旁边的软件来读取flag的)
    ! x5 |) }  j/ B; x! Z! s
    ' I. Z- z9 ~2 x# y+ u) }6 h6 _! u当时的我们没发现这个好办法,只能是0101010101的将flag读出来,然后进行转换成字符串% k" E2 N& y* M' h
    - ^5 U# B8 h8 ]3 b
    misc第三题:24C
    ' X3 z& J7 B1 U  D$ y, `. I0 x
    5 P* q& f$ B* i3 h7 b4 _! C与第二题类似,但是需要一点脑洞,就是记得改变它的读取顺序就好了
    ) f  O- N. l# d6 [0 J( Y; c/ U7 g, G7 i, G: P7 H" [0 h
    crypto第一题:puzzle
    - M5 S, [" I/ T  |2 x- V2 p6 w9 L0 @2 N' D6 J' W
    首先是给了一个网站,心想还是不是web+密码,那就有点…舒(zi)适(nue)了吧
    * n9 ~# C5 ]1 }  Z; `/ w  e% A( [; j) `# ~5 J! i6 y
    让我深深的感受到数学的重要性,三重积分还没学的我,简直看的如痴如醉,第一题的素数来找规律,让我懵逼好久,这是什么题哦
    4 P' @4 H) k+ ~5 r7 L/ U  A! c& m! Z( z
    所有的一切都是从0开始的感觉,于是就开启了自学之旅. V3 q$ K' ^/ S( x
    * D* f5 j: T1 v" @' F
    提示一下:1、question0 记得化简运算,当然网上也有计算器(当时死算到无奈,后面还错了)
    5 R/ P. \" V9 J0 S" E9 W" x2 x( T* `2 P
                   2、question1就是分组找规律,与素数有关5 @( `% S' g% C6 k; W- I" V

    " J3 }( \) T& b" G' z               3、question2是做的最舒服的一道题,简简单单的高数上的计算2 S6 v  m& d. m' o' L" p; G1 i
    ' |" O2 e! ^; j0 u
                   4、question4是高中的知识,不过用一下大学的思想就就是大物的东西了,记住公式就没啥大问题了
      e$ n2 [0 `% t6 h9 G) _& }
    5 a8 L( W6 q2 A               5、question5是三重积分,与二重积分类似,具体自己去算7 C, W/ `6 Y; w# _
    1
    + l( c4 J% R; ~. E/ C8 O2
    8 r: A" q% ~; w% {2 t, |- F34 d2 d( U' e% r! k7 Y
    43 ]4 T5 }) l& _  Q
    5
    5 Q+ T* X9 A9 |/ _3 F! G6
    " o* n5 S8 o" E  c0 s6 T; x7
    $ `( k0 Q1 i7 U; f$ v5 e2 S5 I总而言之,这一道题就是叫你好好的去学习高数,一定要认认真真学习高数
    " t% T( Z6 }7 ^2 j! T
    & Q1 U9 G4 B2 w( b; F# w' Omisc第3题:useasp. }& U0 ]+ p% E' e2 y8 |- e& h

    8 p' p, ]" Z3 O0 y7 a1 y鬼知道这是东西哦,不过经过昨天的一道题发现,继续使用那个logicdata的软件,就可以了9 W% C6 G  f. f$ H, Q
    & z0 O5 J7 H+ V6 a; U2 {$ ^
    首先,将文件拖入软件中,然后果然出现了波形" \7 h9 ], y* G

    ( |$ F; o' C4 H5 K- H! m* o5 R; {4 g昨天那道题,是对照着题目一道一道念的,010101010101来着,结果,今天发现了一个神奇的地方,在logicdata的右部分中间,可以发现analyzers右边的加号,点进去,有个SPI,根据芯片的一些特性,确定时间线,MOSI和MISO的行,点击确定,就可以得到一个特别长的“flag”, k1 x  e4 j1 ]( N$ q
    1 k% J# H& }$ g( P, O
    很可惜,这是个陷阱,就是假的flag,flag{you-know-it-can-not-be-such-easy}
    5 W& Y8 d$ ?* R# u, \
    6 H; |# @3 t* M于是我们进行了多种尝试,利用这个软件其他的一些工具进行解码,结果一无所获,但是,后来我们决定修改参数,因为之前的配置是可以得出flag的,于是猜测要更改SPI的某个特殊点。
    % H7 y! c; s3 {8 |; |8 z/ I# u
    6 K' S& n6 _3 f# q7 H3 `8 f* q2 J更改SPI的某个特殊点后,进行一个对照,发现只有将setting中最后的一个参数,改成high值,原屏幕的右下角就出现了flag。3 G0 t- H* I- u
    8 R3 p' w: ]1 I# \
    web第一题
    # F' B9 f2 k$ `. F5 m9 l9 b
    - y+ M. h; D  e' k- t+ vJust so so- j- Z3 T, h% U# g
    ' i! r' s8 [# S* K
    开始时,用伪协议拿到源码,然后就是反序列化利用了% @& y! U8 d( i4 b5 |0 p' R

    * q4 Q' e5 s/ K! |, c+ {1 g<?php index.php error_reporting(0); $file = $_GET["file"]; $payload = $_GET["payload"]; if(!isset($file)){ echo 'Missing parameter'.'' `/ r' |# Z5 Q$ }# y# ~4 a/ ~( Z: \
    '; } 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(); } }: K7 r. `( ~( [. K; l
    class Flag{
    + y# ~2 B6 C. {" f4 A" D& @4 |2 Ypublic $file;
    2 ^8 _2 }. U. g: ~: T" O1 S7 [4 Ppublic $token;
    , \& q8 g4 @* D) \public $token_flag;
    0 n; F: s: I+ X5 u0 c0 y& P' Q
    ( L6 Y: z: Q% D- F) ufunction __construct($file){
    ' L9 J7 N2 P0 T$ R* X        $this->file = $file;" ]& [7 ?0 p# e+ T
            $this->token_flag = $this->token = md5(rand(1,10000));
    - o/ T8 {* [) h/ e}0 @% J' s' j5 U" O* V* B

    " k/ i: x8 W; Tpublic function getFlag(){
    ; T! g6 j' `1 S! ~4 Q, O# U2 g        $this->token_flag = md5(rand(1,10000));
    9 c: E" c2 H3 A4 c) x, H# u    if($this->token === $this->token_flag)8 H3 f2 c6 U/ q# t
            {
    0 d) z6 b( f3 j                if(isset($this->file)){
    ! I$ A/ }% x# G2 B- O8 A1 i# O) ~                        echo @highlight_file($this->file,true); 2 D6 D4 x: e4 C) i: H
            }  
    - R* f5 E5 N+ b+ J    }8 U! c* u/ H5 y  U) t' ^
    }5 o* a, J* c4 b1 l& J& y  ?
    1
    7 F+ E- N# B. z% u27 R, c# |- T3 w
    36 u! r) P. o% p
    4; y/ \, {: v# Q% c0 `
    5" w" q; u& s) P) ~' a# ^# p$ x, R
    6: N: @/ y! U& X4 c' G$ u
    7* L# b& i$ \+ M' B' e
    8
    ! {6 {1 S6 W+ W2 }9
    5 ^  _# c7 j* _7 i# {10
    6 X  _6 b4 b, P/ g11; O6 z- J6 z5 w
    125 |2 J% X$ I) |  `8 t  M
    13( R& T6 @5 G$ z+ F, x" I
    140 |4 F  D6 P6 d& c* c
    }
    4 W' Q; R$ D4 _4 L  w0 Y; K?>) O5 a. q5 {. R) ~+ w2 d
     大佬说: 可以看到Handle类有个__destruct函数,该函数可以触发getFlag函数,但是__wakeup函数会将所有东西清空,这里改下属性个数就能绕过,参考SugerCRM漏洞,然后getFlag函数的条件可以用指针绕过,以前安恒的月赛也考过,最后flag的匹配可以利用parse_url漏洞,三个斜杠就能绕过了3 l% b% z8 h- n, H- D
    exp
    ; {. h! {3 `/ d. w* f; k+ h& z! {6 ~
    : N$ g  j- _+ W' ~8 d$ CView Code
    , [1 P# ~' F8 v2 T/ J' I  W3 n) U+ K* I: |, d: U9 ?
    + T3 N7 }) Q, \1 A, Q; P$ Y( ~0 U

    6 Y" D: f& l+ x; f: M0 [https://xi4or0uji.github.io/2019/04/22/2019-4-22-2019-全国大学生信息安全竞赛-writeup/#more
      X( ^- G* J  S3 n- b% r
      e& A4 J% X# u1 T6 d% s4 }. x  c. e总结:本次比赛只是做了misc的题,web的题目打的也太少了,要继续加油,多进行php的审计,同时多做一些web题总结经验,下次争取多打几道web题- I  Y0 V9 O6 P: r
    --------------------- ' }- {& u! W6 x( d# W! h
    作者:Jeff King * l+ E- T5 A  j+ e2 y/ P7 a' v
    来源:CSDN ! k7 [+ I1 z+ o& ~, g7 Z0 W- g
    8 n, ~0 i/ c5 y9 d4 R# ?+ ?2 ]
    , V& W; b* l6 u* {
    - O8 K+ ]1 o* |- e5 Y" x% 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-6-14 03:19 , Processed in 0.274175 second(s), 51 queries .

    回顶部