CTF-练习平台部分writeup

CTF-练习平台writeup

CTF-练习平台

MISC

滴答~滴

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

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

聪明的小羊

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

这是一张单纯的图片??

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

telnet

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

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

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

多种方法解决

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

猜?

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

宽带信息泄露

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

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

linux ??????

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

key{feb81d3834e2423c9903f4755464060b}

中国菜刀,不再web里?

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

flag应该在挂马之后才拿到,找到下一个http包,wireshark追踪一下http流:
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();
Ü

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

CTF-练习平台部分writeup_第9张图片

然后把前后的“X@Y”删去,解码为压缩格式:
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协议的包,过滤一下:
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);
}

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

妹子的陌陌

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

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

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

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

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

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

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

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

就五层你能解开吗

待更。。。

WEB

签到题

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

Web2

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

文件上传测试

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

get flag!
这里写图片描述

计算题

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

页面设置了输入长度限制,只能输入一位。
还说什么呢?firebug来改页面html代码吧
CTF-练习平台部分writeup_第16张图片
验证得flag:
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}


暂且写这些,后面的部分会后续跟上。。。。。。

你可能感兴趣的:(CTFwriteup)