QQ登录

只需要一步,快速开始

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

    8 F6 T5 t8 ?, j7 y9 E1 H# g0 z3 q2019--国赛--第一次参加线上赛的自己的整理
    8 F2 a. O1 {1 |misc第一题:签到; Z( k/ U! e# y- p
    * H! e. q2 b0 B- _% E9 Y; f) I
    打开压缩包,发现一个exe文件和一个txt,要三个人一起站到摄像机,然后等软件识别,就出flag了
    7 u$ r: p- i0 c( }* M# w& l) p2 o/ ]; M4 V9 @4 ^/ F. R2 G2 l# t
    但是我发现,你拿手机放一张照片(有三个人或比三人多)上去也可以出flag,所以推测出,该软件是甄别像素点来进行识别的1 \7 @, W2 i" Q8 v: z; I; @" u

    ! q- k* A' G2 tmisc第二题:saleae7 o0 ~) W1 n8 H- W% W+ I
    * ~  ]* Y" g# Z" p" t( V8 p( K5 Q
    下载压缩包,得到一个.logic的程序,都是新东西,没人知道这是用什么软件来打开的,我发现这个特别考百度能力(捂脸)就是需要logicdata软件
    3 w% U8 a* C, Q
    9 t2 F. E# [* K: M9 d0 [7 {下载后,发现其中给的是波形6 b$ Q- @& N1 D/ u8 c, ]  r

    9 t/ g4 K4 Z& W* K$ ]/ r然后去百度,发现这个软件是与芯片的输入输出有关,(后面是可以利用旁边的软件来读取flag的)0 w/ G( U  }( g1 g
    # ]! l( U; W" n6 r
    当时的我们没发现这个好办法,只能是0101010101的将flag读出来,然后进行转换成字符串
    ; i5 m) Q2 X# ~8 `7 n# Y$ n5 m( d" x6 s; @: Z, P
    misc第三题:24C
    . q" y' W3 ~6 i  x5 z; q1 e( D
    ! o) B* [/ s* u  h7 q* n# \与第二题类似,但是需要一点脑洞,就是记得改变它的读取顺序就好了6 G2 g% ~, d1 X- O  S  u
    0 j5 ?/ ]0 {# I4 b$ |+ _+ G% l; |
    crypto第一题:puzzle
    * x. b- L9 G) Q: X: Y( f9 m- s2 }4 R6 |$ Y& l8 v
    首先是给了一个网站,心想还是不是web+密码,那就有点…舒(zi)适(nue)了吧
    ! e& w: x4 a6 U$ ]5 e
      h! U9 W; ?. d& s9 o" U让我深深的感受到数学的重要性,三重积分还没学的我,简直看的如痴如醉,第一题的素数来找规律,让我懵逼好久,这是什么题哦5 l! q6 v' x$ a- F' W: Q! h% f0 Z# s

    . m3 ^. H' y- U) h5 B2 m所有的一切都是从0开始的感觉,于是就开启了自学之旅
    8 @! G, y, v5 o$ j" w. b! m8 `1 |9 U+ N
    提示一下:1、question0 记得化简运算,当然网上也有计算器(当时死算到无奈,后面还错了)
    $ [, j9 d0 U' F2 L# k
    9 w# e: B1 I0 V8 m               2、question1就是分组找规律,与素数有关, k! x9 h2 Q9 l

    % Q! Y6 n. v; w% r1 s               3、question2是做的最舒服的一道题,简简单单的高数上的计算4 W5 P$ q9 E  S+ v; v

    . c& t2 n& o* j: U               4、question4是高中的知识,不过用一下大学的思想就就是大物的东西了,记住公式就没啥大问题了4 ^+ @  e6 E3 M( u9 S0 A
    : t) Q3 g! ~9 A  W/ d5 A
                   5、question5是三重积分,与二重积分类似,具体自己去算
      Y1 u; l- r0 [" p$ g9 ~+ ]3 r1
    7 T. b& l$ s2 U8 A; `  u0 f21 F) S, |" ?; R& C* i+ q0 ]( `5 u
    3# n  C$ S" [" d7 `. m) \  U4 Z
    4  v% I6 c4 k: X' C1 a7 G' I
    5
    $ E+ e$ p. i7 S" ~60 l+ S" \# L2 l: l
    7! t8 y' V6 _5 ~: _
    总而言之,这一道题就是叫你好好的去学习高数,一定要认认真真学习高数
    ' a' W, ]4 l# K0 Z9 s
    ' P4 Y' i" a9 l3 O# F0 N: U. pmisc第3题:useasp. s! `7 U& x- Z7 \0 U
    2 d( ~& U  s' ^4 M5 {2 H
    鬼知道这是东西哦,不过经过昨天的一道题发现,继续使用那个logicdata的软件,就可以了
    7 v+ _9 J4 P- C! Z9 r- T1 U+ F# c. ~/ R1 ?/ q% {
    首先,将文件拖入软件中,然后果然出现了波形2 s; g5 z/ D. r* y1 V0 D
    , s' I* H& y; r6 e, d6 m9 t% L
    昨天那道题,是对照着题目一道一道念的,010101010101来着,结果,今天发现了一个神奇的地方,在logicdata的右部分中间,可以发现analyzers右边的加号,点进去,有个SPI,根据芯片的一些特性,确定时间线,MOSI和MISO的行,点击确定,就可以得到一个特别长的“flag”% C9 I5 u. Q  L# t" J& ^

    3 V9 z( u0 t# [+ u/ \' J( m很可惜,这是个陷阱,就是假的flag,flag{you-know-it-can-not-be-such-easy}1 s- I9 r. {6 ^; \/ ?, c( f9 t9 ?

    " v+ f* ^% A+ V3 p+ k# s6 t于是我们进行了多种尝试,利用这个软件其他的一些工具进行解码,结果一无所获,但是,后来我们决定修改参数,因为之前的配置是可以得出flag的,于是猜测要更改SPI的某个特殊点。" X% u7 e& z! ], {! }  p

    3 Y, M( S; t9 L, s; s+ B1 F- _更改SPI的某个特殊点后,进行一个对照,发现只有将setting中最后的一个参数,改成high值,原屏幕的右下角就出现了flag。7 K# O: y3 ^9 |6 U9 W4 ]9 K
    . ^* t- R. _, ^$ J5 r
    web第一题
    , T- i2 m  S# D7 g4 g8 e
    5 g+ {$ i  _" j! d' JJust so so* B0 C( d) i1 I, Q
    - ^  u5 B; r& i( L5 c
    开始时,用伪协议拿到源码,然后就是反序列化利用了1 A" x5 K, Z! u5 k8 ~: T3 d2 a5 k; G

    3 |' b- M0 C' C; K3 y( |<?php index.php error_reporting(0); $file = $_GET["file"]; $payload = $_GET["payload"]; if(!isset($file)){ echo 'Missing parameter'.'
    - o2 l, x' k% ^8 d8 e' j9 n'; } 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(); } }
    7 B/ t/ t- a; a% l) `( Aclass Flag{2 F$ z9 ~7 {5 C( H5 j- p! L
    public $file;
    5 y' q6 @* z& f/ ?& S4 n$ K- kpublic $token;% B0 z) A' _9 A. A. {9 m  |* K
    public $token_flag;' B1 E  E. k; L' j$ u/ _" x

    5 p5 n+ y6 @" }4 f. kfunction __construct($file){
    ; r' y, Y; p, v$ x  y        $this->file = $file;
    / h8 I& e' |( {; n8 A0 z, h        $this->token_flag = $this->token = md5(rand(1,10000));
    : G( d" n3 [, V8 J2 g9 s' a5 r}. z! ~! Y( r. u, u

    8 p1 K# h& v- d; u# d% npublic function getFlag(){
    : {' X" \- \7 @: h        $this->token_flag = md5(rand(1,10000));& x$ [, A6 ?. k, m: d
        if($this->token === $this->token_flag)
    6 U: B- d; V5 X& l        {
    $ M% y" g* }8 b$ L5 B! d                if(isset($this->file)){
    ; b1 d' C& N( V3 h9 _% r' `1 N                        echo @highlight_file($this->file,true); - l( N+ F2 K+ d+ t6 }
            }  
    " ]6 P3 `9 t$ h% G    }% E' X* W! _+ a/ B9 U( O! \/ p  y
    }+ U; w7 `; a) @8 ^2 Y3 P
    19 i$ H9 d7 X1 }' F5 T
    2( H4 j6 w0 |7 s" e: W, @0 O, X+ a- _
    3
    8 d  X/ J4 G) d' A$ b( [  \  o9 B5 C4
    / L# L% J& ]9 i5 t& A52 w# J6 d9 v% Q6 I* b% V
    6! x! W+ |* S. x0 e. @7 Z7 R
    7+ z3 }( q0 j% e
    8* i2 @4 s% K4 G2 t' w6 g+ j
    9* ~: D! H7 f) Y, ?8 B( p) |2 C2 p2 w
    10
    $ a& Q" u8 x" U  Q: R, ?112 L% u/ Q. y$ m$ I( k6 X; z$ O# D! ?
    12( B  o+ Y1 i* E. M9 X1 i: H/ P
    13
    % c7 G5 O) L8 ^3 @: f1 L. n14
    - I1 X7 e8 k: o$ J% L# f}
    3 }+ D& n' E7 s& p?>  v2 F$ d2 O) @. z$ d
     大佬说: 可以看到Handle类有个__destruct函数,该函数可以触发getFlag函数,但是__wakeup函数会将所有东西清空,这里改下属性个数就能绕过,参考SugerCRM漏洞,然后getFlag函数的条件可以用指针绕过,以前安恒的月赛也考过,最后flag的匹配可以利用parse_url漏洞,三个斜杠就能绕过了! b  Y9 W+ F  J7 V4 a
    exp- c4 f& h) R; o7 @2 |1 U% L

    ! K9 A! y5 j$ i: M+ p& JView Code+ X4 l4 n: {2 y1 `1 e' D

    ! l0 q# b9 s# P! M7 [- Q% H
    8 i8 N' V) s+ m2 l8 E
    ( o/ s! u: R3 j: P4 ~( _https://xi4or0uji.github.io/2019/04/22/2019-4-22-2019-全国大学生信息安全竞赛-writeup/#more
    9 e8 d9 z4 X5 [% D  M4 A1 F- C3 E5 F. o) {* y
    总结:本次比赛只是做了misc的题,web的题目打的也太少了,要继续加油,多进行php的审计,同时多做一些web题总结经验,下次争取多打几道web题$ |2 q6 d7 R4 f
    --------------------- - t* B" B1 {; P4 b# {
    作者:Jeff King
    1 P  S. r# i5 m, c+ Z8 P来源:CSDN
    ! }% A1 j" g# ^, V1 X; z. b' ]6 Y8 n: X2 r4 L
    / S+ P# `1 I/ o/ e% f1 I
    # B8 x4 j3 Z9 ~% ^) ?
    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-7-31 18:33 , Processed in 2.485155 second(s), 51 queries .

    回顶部