D0g

我愿乘风破浪,踏遍黄沙海洋

©D0g
Powered by LOFTER
 

第五季极客大挑战解题报告

本次比赛共分为杂项、渗透、逆向、编程、Linux五个方向,现在就记录和分享一下自己做题目的思路。渣渣一枚,大牛勿喷 。

队伍:到底该取个什么名字好呢    得分:3401

一、杂项

1、bilibili

 
坑。在度娘的助攻下,一次性80分飘过。 
 
2、too young too simple
 
把图片下载下来打开,提示图片损坏,于是想着去修复它应该就能得到key了,于是把图片丢进010Editor。发现这其实是个png的图片。png的标志就是IHDR,再百度正常的png图片的文件头的十六进制数据(89 50 4e 47 0d 0a 1a 0a),再改变原图片的文件头的十六进制数据为此保存即可得到修复后的图片。 
 
 
 
  
 
  
 
  
 
图片提示去appleu0学长的博客找flag,因为比赛之前就逛过了学长的博客,看到一个很有趣的能与人互动的网页应用萝莉。。。根据图片提示告诉与这个萝莉聊天并告诉她flag就能得到flag了。 
 
  
3、你喜不喜欢萌萌哒的姐姐 
一张完整的图片,就想到是不是图片里还有另外一张图片呢?(因为之前看到了appleu0学长的一篇文章讲到就是这个= =) 
 
放到Stegsolve神器里并分析,发现本来图片该结束的地方后面却跟着一大群base64编码,于是复制,再找个在线base64编码转成图片,就得到了flag。 
 
  
 
  
 
  
 
  
 
  
4、史上最困难的题目 
没错,史上最困难的题目。。。 
5、开胃小菜 
在队伍信息页面查看网页源码,发现一个提示, 
 
  
 
于是先试试直接在地址后加upvoice,结果把原来的口号改没了,再回头看看题目说存在接口,于是尝试upvoice?id=xxx,未果,后来进行多次尝试终于找到该口号的接口 
 
Upvoice?voice=xxx, 
 
  
6、白神的假期 
直接百度题目提示,就可以发现图片可以隐藏rar文件,于是下载图片用解压方式打开,发现txt文本,打开是一段很简单的base64加密,解密即得key。 
 
  
 
  
 
  
7、reg
^(?<w>t)wi\k<w>{2}[syclover]+\.com\/asd(la){5}$ 
 
正则表达式,这道题我学了一点正则再加上参考iscc的一道题做出来的, 
 
匹配出来的结果是 twitter.com/asdlalalalala
 
要上推特必须翻墙,百度在线代理,输入网址,打开就见到了key。 
 
  
 
  
二、渗透 
1、HTTP Base1
当时开着kali,于是在终端输入命令curl -i http://syc.myclover.org/pentest/http1/ 
 
查询网站http header信息 ps(百度网站header查询也行) 
 
  
2、HTTP Base2
很明显是要我们伪造自己的IP来访问网站,因为之前做过类似黑客游戏,所以我先想到了用火狐插件X-Forwarded-For来改变IP为127.0.0.1,但是走不通,于是我又想到了火狐的另一个强大的插件TAMPER DATA,这个也可以改变IP。 
 
  
 
访问网址,开启start tamper,然后添加客户端ip,在确定访问,就会在页面上发现flag。 
 
  
3、HTTP Base3
访问题目连接发现如下提示,肯定要提升权限, 
 
  
 
首先查看cookie,发现一个userlevel为2,果断用firebug修改成1,刷新访问啥也没有, 
 
  
 
再回来尝试性的把userid修改成1,刷新访问成功拿到flag。 
 
  
4、CrackPWD1
#小B#: 求助捏,这是什么东东呢?小菜看不懂,哪位大牛能帮帮忙~~~~ 
 
================================================================================== 
 
Syclover:1004:11B083126EA3D6E13C442716B42E315B:37D193FE685E7DBFFBE664CAA38C3E5D::: 
 
================================================================================== 
 
百度了解以及由crackpwd2知道是这是hash加密,百度在线hash解密,放进去解密就得到了明文flag。 
 
http://www.objectif-securite.ch/ophcrack.php
 
  
5、CrackPWD2
NTHASH: E8EE249F622D4EB68BA076633BD89119
 
小B说过:这个管理员喜欢用8位密码,而且总是以SYC#开始呢。。。 
 
关于这道题我在appleu0学长的博客里看到过关于hashcat使用以及介绍,a于是我想到了kali里有hashcat,打开hashcat,各种百度hashcat的用法并根据hashcat的使用说明,用掩码攻击破解获得了明文即flag。 
 
命令:hashcat -a 3 -m 1000 1.txt SYC#?a?a?a?a
 
  
 
  
 
  
6、美男子 
查看cookie发现diaosi,既然想做美男子那么我们就把它变成meinanzi,这道题跟去年的极客里的一道饼干题差不多,用burp抓包修改cookie。 
 
抓包得到如图信息, 
 
  
 
于是修改user为meinanzi,isboy为1。Forward之后就可以在原页面下面看到flag了。 
 
  
7、Login
  
 
首先是很简单的社工,帐号appleU0,密码syclover,进去之后是这个页面, 
 
我用WSExplorer抓包发现提示是: tip:coverage login
 
  
 
这个困扰了我很久,后来无意中看到乌云的一篇关于php各种漏洞的帖子,里面提到了覆盖登录,并给出了源码, 
 
  
 
于是我尝试在登陆的url地址后面加上login=1再登录,结果成功找到key。 
 
  
8、白神的shell
白神小学六年级的时候在这个网站留了一个shell,他现在准备把这个shell赠送给你,但是他只告诉了你white_god_s_webshell_***.php,没有后三位,你能找到吗?(本题要求使用脚本,推荐php,python,拿到shell地址后,发送脚本和地址到736540362@qq.com,审核通过将会得到flag,shell地址并没有flag,所以请不要用工具扫^-^) 
 
首先我想确定一下shell地址到底是什么,等下写脚本好知道能不能扫出来或者扫出来的是否正确。于是我用骨灰字典生成了地址为aaa-zzz的shell地址,然后放到御剑里扫描,扫到了shell地址。 
 
  
 
  
 
接下来就安心去写脚本了。因为自学了一点php,所以决定用php写,我用的是dos命令下的php运行环境。 
 
自己写个循环,但是关于网页是否存在的200响应写不来,于是就百度。 
 
  
 
最后自己组合了一下代码如下, 
 
 
 
 

1

 

2

 

3

 

4

 

5

 

6

 

7

 

8

 

9

 

10

 

11

 

12

 

13

 

14

 

15

 
 


<?php

 

for($url1=a;$url1<=zz;$url1++)

 

{

 

$url2="http://syc.myclover.org/pentest/findshell/white_god_s_webshell_";

 

$url3=".php";

 

$url="$url2$url1$url3";

 

$array = get_headers($url,1);

 

if(preg_match('/200/',$array[0]))

 

{

 

echo "<pre/>";

 

print_r($array);

 

echo "$url";

 

}

 

}

 

?>

 
 
 
 
 
然后运行脚本得到shell地址,发送审核邮箱,300分到手。 
 
  
9、德玛西亚 
syclover_1031.dhs 文件有时候会更新的 做题时请下载最新的文件来进行测试 
登陆失败的请联系客服更新文件 tips:dsploit
 
百度dsploit知道是安卓渗透软件,下载并安装,同时把文件放入手机。 
10、Web Base1
直接上胡萝卜,一发带走。 
 
  
11、Web Base2
再次用胡萝卜结果检测不出来,看到题目那里有个搜素框,于是想到了POST注入。搜索框输入’,用burp抓包,抓包内容保存为txt文件。 
 
  
 
然后用sqlmap检测。直接检测字段。 
 
  
 
  
 
在检测字段内容。 
 
  
 
得到flag。 
 
  
12、Wireless
这题其实就是破解wifi密码,根据提示用骨灰字典生成了syc19600101-syc20141231的字典,然后在Aircrack-ng GUI中载入无线数据包和字典就开始进行破解,就能得到key了。 
 
  
 
  
13、F4ck
Jsfucke编码,直接复制放到控制台确定就得到了flag。 
 
  
三、逆向 
1、VeryEasy_ELF
放到whinhex里,在中间发现一串有点像key的字符串, 
 
  
 
只要字母+下划线组合就可以得到KEY了。 
 
SYC{Welcome_to_GeekChallenge} 
2、如花姐姐 
如花姐姐。。。flag为syclover的注册码flag加上SYC{} 
 
PEID查壳,没有发现壳,载入OD搜索字符串,定位到congratulations,发现前面的call,在此下断点,F9运行至断点输入帐号syclover,密码1, 
 
  
 
然后F8单步步过发现到push时,用户名发生变化,F7进去,然后发现密码算法 
 
  
 
  
 
接下来就对帐号进行逆运算,例如 s 的ascii码为115,十六进制为 73
 
(73xor3 -14)xor10 -2 = 4A  4A的十进制为74,对应的ascii字符为J, 
 
所以最后可得flag为 JtZIFo@K
3、BMW
首先用d2j-jar2dex和jd-gui反编译出apk文件的源码, 
 
找到一个theflagisnothere,发现如下代码。 
 
  
 
然后就开始撸代码了, 
 
比如当i为0时,key=v,j=32,然后可以得到key的第一个明文,s。 
 
以此类推,最后得到的key为 
 
syc{congratu1ati0ns!y0ufindm4} , 
 
此题关键要理解java代码indexof、append的意思。 
4、女神 
这道题有人做出来了写在博客里,直接百度到的,(别打我啊,T_T,正在努力学习中。。) 
 
百度第五季极客大挑战就可以找到的。 
 
四、编程 
 
编程只做了第一道题,编程太渣了。。 
XOR
WY童鞋从种子服务器上得到了一个加密的EXE程序,你能帮他解密吗?Download
TIPS:比较下加密程序和正常程序有什么不同 
 
这个程序是Xor异或加密,用二进制方式打开文件将0变为1,1变为0,再保存到文件  即可解密。 
 
编写的C语言代码如下: 
 
 
 
 

1

 

2

 

3

 

4

 

5

 

6

 

7

 

8

 

9

 

10

 

11

 
 


#include<stdio.h>

 

void main()

 

{FILE *p1,*p2;

 

char n;int flag=0;

 

p1=fopen("1.exe","rb+");

 

p2=fopen("out1.exe","wb+");

 

for(;fscanf(p1,"%c",&n)!='\0';)

 

{if(flag==0)

 

{n= n^48;flag=1;}

 

else{n=n^49;flag=0;}

 

fprintf(p2,"%c",n);}}

 
 
 
 
 
  
五、Linux
1、奇怪的txt
这道题在windows下就可以做出来的,把压缩文件下下来打开,发现一个文本, 
 
都是十六进制的数据,发现一串bz开头的字符串, 
 
  
 
百度知道是linux的bz2压缩文件,于是我就一行一行的把中间的十六进制数据放进winhex,在保存为后缀为bz2的格式。(在linux里可以随意复制任何区域的数据,要方便点吧) 
 
  
 
得到bz2的压缩文件后打开又是一个文件,再次丢进winhex里, 
 
  
 
百度文件头十六进制数据知道这是linux里gz格式的压缩文件,改后缀为gz。 
 
然后再将gz文件解压得到另一个文件,又丢进winhex,发现一串base64加密字符串,解密即可得到flag。 
 
  
 
  
2、史上第二难的题目 
这个程序会输出10000行数据,请按递增进行排序,排序后的结果中第6250行就是flag flag请自行加上SYC{} 
 
如图: 
 
  
 
  
 
Flag:SYC{593298534} 
 
  
六、比赛完后做出的题 
CodeAudit1
下载源代码查看,可以构造出注入点 index.php?syc&id=1
 
数据库名称:codeaudit1    表名:flag   字段名:flag#is#here, 
 
当时我就用sqlmap跑  www.xxx.com/index.php?index.php?syc&id=1
 
但是却跑不出来,后面比赛完了之后经基友提醒,才发现index.php里有个转义函数 
 
  
 
于是我就把&换成%26,在用sqlmap跑,结果就跑出来了,T_T
 
sqlmap -u "http://syc.myclover.org/pentest/codeaudit1/index.php?syc%26id=1" -D codeaudit1 -T flag -C flag#is#here --dump 
 
  
 
  
 
七、总结 
 
1、接触了kali系统,真心觉得这是个很牛逼的系统,要想掌握好这个东西,还得多学点linux的知识,感觉自己的linux还是太弱了。 
 
2、学习了一下dsploit,是个很强大的安卓渗透软件,所以说不能乱连wifi,说不定隐私就泄露了。 
 
  
 
3、要重视编程,编程太菜了。T_T
 
4、应该多看看各种比赛的writeup,这次就从出题人appleu0学长的博客里学到了很多知识,做对了几道题。 
 
  
 
5、20多天的比赛对于我们这些菜鸟来说是个考验,但要学会坚持,多学点东西。