“强网杯”网络安全挑战赛是面向国内信息安全企业(团队)和高等院校的一次国家级网络安全赛事,旨在通过激烈的网络竞赛对抗,培养和提高国家网络安全保障能力和水平,发现网络安全领域优秀人才,提升全民网络空间的安全意识和能力水平。此次挑战赛将按照“公平、公开、公正”的原则,邀请国内优秀信息安全企业和高等院校参加,为他们提供展示能力和水平的竞技舞台。
第一届“强网杯”网络安全挑战赛由中国网络空间安全协会(筹)竞评演练工作委员会主办的面向信息安全人才的全国性比赛。该项比赛对于进一步发掘、培养国家网络安全人才具有深远意义。
第一届“强网杯”网络安全挑战赛将采取线上、线下相结合的方式进行,赛程分两个阶段。
第一阶段的资格赛为线上进行的公开赛,第二阶段为线下进行的封闭赛。通过“资格赛”的团队可进入第二阶段的“封闭赛”。资格赛已经于5月30日至31日结束。
大致题目列表如下,有部分未解出,持续更新~
密码
古典密码的安全性不高,但仍然十分美妙,请破译下面的密文。
Os drnuzearyuwn, y jtkjzoztzoes douwlr oj y ilzwex eq lsdexosa kn pwodw tsozj eq ufyoszlbz yrl rlufydlx pozw douwlrzlbz, ydderxosa ze y rlatfyr jnjzli; mjy gfbmw vla xy wbfnsy symmyew (mjy vrwm qrvvrf), hlbew rd symmyew, mebhsymw rd symmyew, vbomgeyw rd mjy lxrzy, lfk wr dremj. Mjy eyqybzye kyqbhjyew mjy myom xa hyedrevbfn lf bfzyewy wgxwmbmgmbrf. Wr mjy dsln bw f1_2jyf-k3_jg1-vb-vl_l
注:本题 flag 并非 flag{可见字符} 的形式。
猜测是字符变换类的加解密,尝试凯撒等算法暴力破解无果。
最后找到这个网站http://quipqiup.com/index.php
这个网站进行解密,Puzzle中填入密文,
根据段落猜测dsln应该为flag,因此在Clues中填入dsln=flag,进行破解:
So the flag is n1_2hen-d3_hu1-mi-ma_a
Web渗透
大家都说 PHP 是世界上最好的语言,你也这么认为吗?
服务器请访问 http://119.254.101.197:22230/fca269b68b1efd69dd022764cd1d3ac0/index.php
看url没看出来啥 测测备份文件啥的 发现:http://119.254.101.197:22230/fca269b68b1efd69dd022764cd1d3ac0/index.php.bak
获得源码:
<?php //TODO: connect to DB $id = $_GET['id']; //TODO: sqli filter $secretId = 1024; if($id == $secretId){ echo 'Invalid id ('.$id.').'; } else{ $query = 'SELECT * FROM notes WHERE id = \''.$id.'\';'; $result = mysql_query($query,$conn); $row = mysql_fetch_assoc($result); echo "notes: ".$row['notes']."</br>"; } ?>
然后就很简单 知道是考php这种弱类型语言 构造访问得flag
http://119.254.101.197:22230/fca269b68b1efd69dd022764cd1d3ac0/index.php?id=1024.00000000001
notes: flag{php_is_so_awesome_ever_ever_ever###}
溢出利用
这里有一个看图猜谜的游戏,猜猜看有没有漏洞?
下载题目文件:guess
连接破解服务器:nc 119.254.101.197 10000
逆向
这是一款最新软件的序列号验证程序,你能破解它吗?
下载题目文件:sn_download
连接破解服务器:nc 119.254.101.197 10005
最后据上述分析,分析算法写出keygen,生成不同的10个sn号,获得flag flag{b1nary-1s-e3zy}
取证与隐写
这是一段美妙的音乐,但是余音绕梁中,似乎又隐藏着些什么?
下载题目文件:ringtone
溢出利用
这里有一个 shellcode 管理程序,也许你可以管理更多?
连接服务器:
$ nc 119.254.101.197 10002
漏洞利用
最后flag为:flag{y0ur_f1rst_h3ap_0verflow}
密码
很多人都曾问我,知道多少明文和哈希后,就能算出 salt。做出这题你就知道答案。
文件下载:saltserver.py
连接服务器:
$ nc 119.254.101.197 10004
逆向
请输入 FLAG,下面的页面会告诉你 FLAG 是否正确。
下载题目文件:flag-checker.html
Flag为:flag{wh47_my5ter10us-do3s,the+phe45ant/c0nta1n}
取证与隐写
我们找到一个可以启动的磁盘镜像,可是启动之后告诉我们 It's BROKEN!
,怎么办?
下载题目文件:broken
下载镜像文件后,无法打开。
使用hex看一下,发现是分区表损坏了,BOOT中没有BPB参数。
上网找了很多资料,终于还原了BOOT分区。
还原了之后就可以直接加载img文件。
磁盘中有一个flag文件,通过16进制查看,发现是张图片,但是少了png头,加上后图片就可以正常打开了。
对图片进行各种变换无果,后来发现删除图片文件后面的数据不影响图片显示,于是尝试修改图片分辨率,终于显示出了flag。
Web渗透
最近全国上下都流行起了写俳句的风潮,我写了一个给俳句自动打分的系统,你要试试吗?把你的俳句保存在txt里提交给我就好啦。
服务器请访问 http://119.254.101.197:22231/13152f79f9264731da9fa16846449d80/index.php
猜测考上传截断 各种试了不行
nginx/1.4.6 (Ubuntu) nginx这个版本也试了 没解析漏洞
也确实发现存在xss 但是未果
扫到根目录robots文件
http://119.254.101.197:22231/13152f79f9264731da9fa16846449d80/robots.txt
Disallow:
/upload_paiju/*
得知自己上传的txt位置了
如:
index.php?page=view&id=IXNXy6QXUsfiqVDb http://119.254.101.197:22231/13152f79f9264731da9fa16846449d80/upload_paiju/IXNXy6QXUsfiqVDb.txt index.php?page=view&id=k0ysqS8UT6Jl0wTd http://119.254.101.197:22231/13152f79f9264731da9fa16846449d80/upload_paiju/k0ysqS8UT6Jl0wTd.txt
有经验的小伙伴丢了一个连接
http://blog.ourren.com/2015/03/16/phar_include_exploit/
利用 Phar突破文件包含
Build_phar.php:
<?php class BuildPhar { private $_sourceDirectory = null; private $_stubFile = null; private $_outputDirectory = null; private $_pharFileName = null; /** * * @param * @param * @param * @param $pharFileName string * // Name of your final *.phar file. */ public function __construct($_sourceDirectory, $stubFile, $_outputDirectory = null, $pharFileName = 'myPhar.phar') { if ((file_exists ( $_sourceDirectory ) === false) || (is_dir ( $_sourceDirectory ) === false)) { throw new Exception ( 'No valid source directory given.' ); } $this->_sourceDirectory = $_sourceDirectory; if (file_exists ( $this->_sourceDirectory . '/' . $stubFile ) === false) { throw new Exception ( 'Your given stub file doesn\'t exists.' ); } $this->_stubFile = $stubFile; if (empty ( $pharFileName ) === true) { throw new Exception ( 'Your given output name for your phar-file is empty.' ); } $this->_pharFileName = $pharFileName; if ((empty ( $_outputDirectory ) === true) || (file_exists ( $_outputDirectory ) === false) || (is_dir ( $_outputDirectory ) === false)) { if ($_outputDirectory !== null) { trigger_error ( 'Your output directory is invalid. We set the fallback to: "' . dirname ( __FILE__ ) . '".', E_USER_WARNING ); } $this->_outputDirectory = dirname ( __FILE__ ); } else { $this->_outputDirectory = $_outputDirectory; } $this->prepareBuildDirectory (); $this->buildPhar (); } private function prepareBuildDirectory() { if (preg_match ( '/.phar$/', $this->_pharFileName ) == FALSE) { $this->_pharFileName .= '.phar'; } if (file_exists ( $this->_pharFileName ) === true) { unlink ( $this->_pharFileName ); } } private function buildPhar() { $phar = new Phar ( $this->_outputDirectory . '/' . $this->_pharFileName ); $phar->buildFromDirectory ( $this->_sourceDirectory ); $phar->setDefaultStub ( $this->_stubFile ); } } // END // Class if(isset($_GET['filename'])){ $filename // $filename.'.phar' ); ?>
压缩后修改buili_phar.phptxt修改完成后上传文件,包含文件路径用 phar://{$PATH}/{$fileName}.{phar,txt}/{my.php}
Flag为:FLAG{wo_ceng_jing_kua_guo_shan_he_da_han,ye_chuan_guo_ren_shan_ren_hai}
逆向
如果你无法运行这个安卓程序,那么一定是你的手机太老啦!
下载题目文件:droidmaster.apk
注:本题 flag 并非 flag{可见字符} 的形式。
取证与隐写
甲:我这儿有个工作,得存储大量数据,借个移动硬盘用一下?
乙:磁盘倒是有,不过存过秘密信息,不方便借啊。
甲:那盘里的数据还有用吗?
乙:主要就是一个压缩文件里面有敏感文件,已经做过备份,没什么用了。
甲:那好,你把它删了。
乙:哦,压缩口令存在另一个小文件里。
甲:直接拿个大文件覆盖一下呗。要是还不放心的话,把磁盘重新分一下区,再格式化一遍就保证没问题了。
乙:那好吧,照你说的做。
磁盘映像文件百度网盘下载链接: http://pan.baidu.com/s/1mgKfnDY 提取码: nshy
flag{ch0n9x1n_f3n9u-fu_g41_yebu4nquan}
溢出利用
这里有一个解码 URL 的程序,解码看看有没有漏洞?
下载题目文件: urldecoder, libc.so
连接服务器:
$ nc 119.254.101.197 10001
Flag为:flag{r0p_is_so0o0_c00l!}
密码
听说有顶级黑客已经可以破解 RSA 了,我只好开发了一套加强版的双层 RSA 系统,用来加密邮件。
你能破解 email2 的明文吗?
文件下载:tworsa.zip
取证与隐写
一切从 ruby 开始!
下载题目文件:doll.rb
根据doll.rb代码中最后的注释:Quine Relay,在github上找到同名项目:Quine Relay
根据提示,使用ubuntu虚拟机安装编译环境:
sudo apt-get install algol68g bash bf boo clisp clojure1.4 \
coffeescript f2c fp-compiler g++ gauche gawk gcc gforth gfortran ghc \
gnat gnu-smalltalk gobjc golang groovy icont iconx intercal iverilog \
jasmin-sable llvm lua5.2 make mono-devel mono-mcs nodejs ocaml octave \
open-cobol openjdk-6-jdk parrot perl php5-cli pike7.8 python r-base \
regina-rexx ruby2.0 scala swi-prolog tcl ucblogo valac
然后执行脚本:
ruby doll.rb > QR.scala
scalac QR.scala && CLASSPATH=. scala QR > QR.scm
gosh QR.scm > QR.bash
bash QR.bash > QR.st
gst QR.st > QR.tcl
tclsh QR.tcl > QR.unl
ruby unlambda.rb QR.unl > QR.vala
valac QR.vala && ./QR > QR.v
iverilog -o QR QR.v && ./QR -vcd-none > QR.ws
ruby whitespace.rb QR.ws > qr.adb
gnatmake qr.adb && ./qr > QR.a68
a68g QR.a68 > QR.awk
awk -f QR.awk > QR.boo
booi QR.boo > QR.bf
bf QR.bf > QR.c
gcc -o QR QR.c && ./QR > QR.cpp
g++ -o QR QR.cpp && ./QR > QR.cs
mcs QR.cs && mono QR.exe > QR.clj
clojure QR.clj > QR.cob
cobc -O2 -x QR.cob && ./QR > QR.coffee
coffee QR.coffee > QR.lisp
clisp QR.lisp > QR.fs
gforth QR.fs > QR.f
f2c QR.f && gcc -o QR QR.c -L/usr/lib -lf2c && ./QR > QR.f90
gfortran -o QR QR.f90 && ./QR > QR.go
go run QR.go > QR.groovy
groovy QR.groovy > QR.hs
ghc QR.hs && ./QR > QR.icn
icont -s QR.icn && ./QR > QR.i
ick -bfO QR.i && ./QR > QR.j
jasmin QR.j && CLASSPATH=. java QR > QR.java
javac QR.java && CLASSPATH=. java QR > QR.ll
llvm-as QR.ll && lli QR.bc > QR.logo
logo QR.logo > QR.lua
lua QR.lua > QR.makefile
make -f QR.makefile > QR.il
ilasm QR.il && mono QR.exe > QR.js
nodejs QR.js > QR.m
gcc -o QR QR.m && ./QR > QR.ml
ocaml QR.ml > QR.octave
octave -qf QR.octave > QR.pasm
parrot QR.pasm > QR.pas
fpc QR.pas && ./QR > QR.pl
perl QR.pl > QR.php
php QR.php > QR.pike
pike QR.pike > QR.prolog
swipl -q -t qr -f QR.prolog > QR.py
python QR.py > QR.R
R --slave < QR.R > QR.rexx
rexx ./QR.rexx > QR2.rb
最后得到一行ruby代码:
[26,20,31,25,5,9,27,79,29,80,19,27,83,12,80,83,12,24,77,83,9,17,14,79,28,83,80,26,83,15,11,79,18,27,3].map{|a| (128-a).chr}.join
print出来就可以得到答案:
flag{we1c0me-t0-th3-wor1d-0f-qu1ne}
溢出利用
这里有最新最全的电影!如果你是黑客的话,也许你可以看到更多。
下载题目文件:imdb
连接服务器:
$ nc 119.254.101.197 10003
密码
古典密码的安全性确实不高,但是如果结合起来使用,强度也不小,请根据给出的加密解密程序,破译给出的密文。
下载题目文件:old-fashion-2.zip
注:本题 flag 并非 flag{可见字符} 的形式。
提示:key.num = 7
逆向
有一个输入可以得到正确答案,它到底是什么呢?
提示:正确输入的 md5 值以 f7b2dc4e 开头。
下载题目文件:domino
注:本题 flag 并非 flag{可见字符} 的形式。
溢出利用
域名服务器作为互联网的关键系统,其重要性不言而喻,一旦域名服务器存在漏洞,那么后果不堪设想。请测试下面的域名管理服务程序是否存在漏洞。
连接服务器:
$ nc 119.254.101.197 10006
Web渗透
这里有一个很有趣的技术博客,一起看看吧。
服务器请访问 http://119.254.101.197:22233
【本writeup来自某团队投稿 安全脉搏首发 转载请注明来自安全脉搏 分享技术 悦享品质 】