- 在线时间
- 1630 小时
- 最后登录
- 2024-1-29
- 注册时间
- 2017-5-16
- 听众数
- 82
- 收听数
- 1
- 能力
- 120 分
- 体力
- 563322 点
- 威望
- 12 点
- 阅读权限
- 255
- 积分
- 174219
- 相册
- 1
- 日志
- 0
- 记录
- 0
- 帖子
- 5313
- 主题
- 5273
- 精华
- 3
- 分享
- 0
- 好友
- 163
TA的每日心情 | 开心 2021-8-11 17:59 |
|---|
签到天数: 17 天 [LV.4]偶尔看看III 网络挑战赛参赛者 网络挑战赛参赛者 - 自我介绍
- 本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。
 群组: 2018美赛大象算法课程 群组: 2018美赛护航培训课程 群组: 2019年 数学中国站长建 群组: 2019年数据分析师课程 群组: 2018年大象老师国赛优 |
7 Q% |, j+ V" |+ X3 S( T, \) w
2019--国赛--第一次参加线上赛的自己的整理/ [$ S, l8 N# P. q9 A
misc第一题:签到0 \% `0 @8 r5 K1 x$ u8 r7 I
/ c9 Y w* D4 m% p打开压缩包,发现一个exe文件和一个txt,要三个人一起站到摄像机,然后等软件识别,就出flag了
8 i7 c! f+ Y0 e b3 m& S h7 ~# M+ a w# N% E* j
但是我发现,你拿手机放一张照片(有三个人或比三人多)上去也可以出flag,所以推测出,该软件是甄别像素点来进行识别的
. K, I1 X1 q' i/ u3 W4 `/ V
5 m: g4 o/ x8 J8 h0 T/ gmisc第二题:saleae9 z. h9 n5 R4 K; s3 ~
5 c) M9 S3 Q- ^# V0 @- s下载压缩包,得到一个.logic的程序,都是新东西,没人知道这是用什么软件来打开的,我发现这个特别考百度能力(捂脸)就是需要logicdata软件
l0 f) A4 B* R5 L/ i/ o5 l: ^& H' z" ]* G) P% r+ W
下载后,发现其中给的是波形
# a! L5 N; a: |# O" K9 t' \3 v6 I1 E0 W+ |
然后去百度,发现这个软件是与芯片的输入输出有关,(后面是可以利用旁边的软件来读取flag的)2 z& }4 `( a$ v5 n
) r$ ^8 w3 f& t8 I5 ^
当时的我们没发现这个好办法,只能是0101010101的将flag读出来,然后进行转换成字符串, @( ]7 E: v8 p! U$ R3 k1 r
* O- u% K: Y$ Q
misc第三题:24C" m* K8 @3 T3 }- C5 e# A( [, d
* ]6 v& R3 m1 x, D, {9 G& E与第二题类似,但是需要一点脑洞,就是记得改变它的读取顺序就好了
5 z2 A- m) r) l0 B3 ^% ^
- v7 h2 W# ?" q# L% \" acrypto第一题:puzzle
# g" t) e0 T5 Q6 b& o. U; `+ t( u9 Z9 B9 J: S( s1 ]
首先是给了一个网站,心想还是不是web+密码,那就有点…舒(zi)适(nue)了吧+ T0 F5 C: w" g0 m
/ u$ I9 Q) s9 y4 D4 i. z
让我深深的感受到数学的重要性,三重积分还没学的我,简直看的如痴如醉,第一题的素数来找规律,让我懵逼好久,这是什么题哦
/ z2 y2 s! @& E2 | S1 C3 h) C+ |+ B: x$ V* l; h+ w+ T& V
所有的一切都是从0开始的感觉,于是就开启了自学之旅, C- U2 u1 K/ U7 S! A/ j
( N) O# k3 e' v3 C) v% [" r; d
提示一下:1、question0 记得化简运算,当然网上也有计算器(当时死算到无奈,后面还错了)
2 i4 H Z7 Z6 j- L: G
& P( z& k" W! A u5 K/ w& g2 ? 2、question1就是分组找规律,与素数有关
, g# F7 h- O6 w
, h. K9 o1 J" x' M$ \/ J3 { 3、question2是做的最舒服的一道题,简简单单的高数上的计算
' V) q& u$ E+ b) G9 \: y' ~& C# s$ o
4、question4是高中的知识,不过用一下大学的思想就就是大物的东西了,记住公式就没啥大问题了
$ C- d, Y# P' h- N1 l! S& E
3 ~( B3 {* Z' w" B 5、question5是三重积分,与二重积分类似,具体自己去算
% Z/ U( U, A) h1: d2 V0 ^) `, W7 \
22 p4 H3 w# j" O/ \- j! L+ R) [; }
3
4 Z- b/ F- ~# [4
* j3 s) }# @) `7 U* S$ a5 t6 k5
) `6 Y* P X9 ]- r6
. S* e7 ~3 [1 P: i% \9 _8 f7
. y! L; ~+ d; i; o' c% t总而言之,这一道题就是叫你好好的去学习高数,一定要认认真真学习高数6 {( c8 s0 d3 m: Y3 i
4 B x. N |, v; e6 {& I
misc第3题:useasp5 w l/ Q4 c5 H; h( C
! q, m/ }1 |" n5 j- G鬼知道这是东西哦,不过经过昨天的一道题发现,继续使用那个logicdata的软件,就可以了
# ^! x5 v O7 M. m7 e* b/ R q2 K6 W
首先,将文件拖入软件中,然后果然出现了波形; o, ?# U: e, X5 y
1 b0 f0 Z: \# c8 F% w
昨天那道题,是对照着题目一道一道念的,010101010101来着,结果,今天发现了一个神奇的地方,在logicdata的右部分中间,可以发现analyzers右边的加号,点进去,有个SPI,根据芯片的一些特性,确定时间线,MOSI和MISO的行,点击确定,就可以得到一个特别长的“flag”
) S; d* u5 X! a1 R9 n# c! S7 n8 p; n5 I( ^. Q: ?2 Y. n7 Q
很可惜,这是个陷阱,就是假的flag,flag{you-know-it-can-not-be-such-easy}
: j7 j% h+ b8 |7 Z4 ]
" C! h# d) o) S I于是我们进行了多种尝试,利用这个软件其他的一些工具进行解码,结果一无所获,但是,后来我们决定修改参数,因为之前的配置是可以得出flag的,于是猜测要更改SPI的某个特殊点。% e2 k( M, A; X0 p& ?
( T9 `0 d9 Y. U) r e M更改SPI的某个特殊点后,进行一个对照,发现只有将setting中最后的一个参数,改成high值,原屏幕的右下角就出现了flag。
' S3 B; m5 o5 }
: ]4 Z% L8 ^. o0 P+ Jweb第一题
* }6 @7 k: p/ P+ V4 n: g
P# Y8 z1 {0 n/ M! sJust so so
7 n `/ ^* v F, w& X1 Z
; c8 A+ B5 a" Y6 q开始时,用伪协议拿到源码,然后就是反序列化利用了+ \4 ]- n: d, e/ S" ]2 u( a) U3 a
* H+ b9 K+ r( C9 b0 j- {& R
<?php index.php error_reporting(0); $file = $_GET["file"]; $payload = $_GET["payload"]; if(!isset($file)){ echo 'Missing parameter'.') v. Y" H( w' J4 Q# N2 R4 ]5 U
'; } 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(); } }/ H, U4 A( x# @' N
class Flag{
! A) j; f# x1 n/ y. apublic $file;- c" }! u: G/ l3 c ~
public $token;
, s, j, w# r2 `! I. k: h8 apublic $token_flag;. v w7 K/ N3 ], ?
5 r( G9 K# X/ j; A* \function __construct($file){
9 M, p# _5 [+ R; V7 u, W6 h $this->file = $file;
e5 Q6 J" \1 E2 v, e. R/ Z $this->token_flag = $this->token = md5(rand(1,10000));
: ~1 ^" d' W- ^# T8 c( ?/ k}
9 W! f+ k% e. ?0 c6 S, y! v4 O) a' W/ x1 m9 \( Q
public function getFlag(){
, V( u$ S: E, N8 Y3 I $this->token_flag = md5(rand(1,10000));
( B7 H* N/ ?: k# F& y9 g3 K if($this->token === $this->token_flag)0 f6 X' X/ J5 y6 B2 Y1 P9 r$ i; G
{8 B0 R! S, G- O0 O* Y6 f2 e
if(isset($this->file)){0 `' x- W$ A/ u3 J1 J0 x
echo @highlight_file($this->file,true);
' s. B3 Y9 _9 i }
, ~% B+ F1 }4 B! l" \; H }; n+ k% h( U" G1 J1 h4 e* B8 k
}2 U$ p( d2 V: v
1
% N+ k( H9 r: [2
5 \) V2 y3 F8 q* t3
9 o4 N: j: Q: Y7 q9 X. P* ?42 J6 D) f" q+ m) _ P6 ]
5
5 B4 V& y' f* A0 T: A& _% m h- e6
S& J6 ?- J5 f7
6 ~2 Z' Q0 d' K( X* c8+ ?4 {" `3 \& N! [4 L6 _; e6 k/ }
9
4 ?1 ]; c* h' Q# R10, s7 p5 Q `3 W7 i0 b" a4 ~
11
7 q/ ?' K& j: E& X/ i- b12( q% H( b: d( l7 f
13
7 W7 P8 C! i# C# J1 n' J148 _8 F+ ?0 Q4 a3 M
}5 Q. w/ J, w- c% R0 Y; E% h" y# r
?>0 Y' t% N4 v/ Q4 G6 [, w
大佬说: 可以看到Handle类有个__destruct函数,该函数可以触发getFlag函数,但是__wakeup函数会将所有东西清空,这里改下属性个数就能绕过,参考SugerCRM漏洞,然后getFlag函数的条件可以用指针绕过,以前安恒的月赛也考过,最后flag的匹配可以利用parse_url漏洞,三个斜杠就能绕过了
0 g8 v! Y! D3 zexp
( d4 Z* h2 h0 q& D( b" X
. D, _7 V5 {/ ]4 gView Code
" @5 ]6 R$ _6 a8 d# n$ f- f& L9 ~5 n8 T: J: e* N
7 F% d8 ~! [* A3 d) o: {1 i* D2 z& D( J/ z, F3 G6 D2 w
https://xi4or0uji.github.io/2019/04/22/2019-4-22-2019-全国大学生信息安全竞赛-writeup/#more
9 Y! q/ t9 i- e
! L6 T' c7 I* {, A9 F$ \总结:本次比赛只是做了misc的题,web的题目打的也太少了,要继续加油,多进行php的审计,同时多做一些web题总结经验,下次争取多打几道web题8 @' h$ G$ e# C8 e" F |1 r; H
--------------------- & t$ F9 _! P. O3 V& ?
作者:Jeff King H# K5 n" y/ ?: L( F
来源:CSDN
* Q* M9 }+ e4 [0 ^7 X' L( X9 Q0 q1 q" Z! S# D
0 z7 f; s( [0 d( @2 L% H
( m! y( I, c' d' n- T6 u% E, q# ?
|
zan
|