BugkuCTF writeup

  • 前言
  • web方面
    • web2
    • 计算器
    • web基础$_GET
    • web基础$_POST
    • 矛盾
    • web3
    • 域名解析
    • 你必须让他停下
    • 本地包含
    • 变量1
    • web5
    • 头等舱
    • 网站被黑
    • 管理员系统
    • web4
    • flag在index里
    • 输入密码查看flag
    • 点击一百万次
    • 备份是个好习惯
    • 成绩单
  • 杂项
    • 签到题
    • 这是一张单纯的图片
    • 隐写
    • telnet
    • 眼见非实(ISCCCTF)
    • 啊哒
    • 又一张图片,还单纯吗
    • 宽带信息泄露
    • 隐写2
    • 多种方法解决
    • 闪的好快
  • 结语

前言

最近,刚学一点ctf,想找点题做一下,于是同学推荐了bugkuctf平台。做的时候,才发现自己有多水,想把做题过程记录下来,供自己再浏览。

web方面

web2

这道题没啥说的,直接查看源代码就可以得到flag。

计算器

这道题也没什么,直接F12,将button的maxlength值改成2,就可以了。

web基础$_GET

这道题也比较简单,直接get传参就行。
url:http://123.206.87.240:8002/get/?what=flag

web基础$_POST

这道题用post传参,我用的是火狐浏览器的max hackbar(因为hackbar要收费,所以换了一个)。

矛盾

这道题是php代码审计,它要求你传入一个num,要求num不是数字,但是还要等于1.这时,就需要知道php中在PHP中,当数字与字符串作比较时,系统会先将字符串转化为数字,再与数字进行比较。字符串在转化成数字时,会取字符串前边的数字,例如:123abc 转化成数字就是123.因此,我们构造1abcd(后边的字母随便啥都行)。

web3

这道题,它会一直弹窗,你直接拒绝弹窗就行,然后查看源代码,就会发现有一行注释,是用ASCII编码的,直接解码,就可以得到flag。
推荐一个解码网站:程序员在线工具

域名解析

其实,之前并没有接触过域名解析,于是就去搜了其他人写的writeup。我就再在这里复述一下。
可以在目录C:\Windows\System32\drivers\etc找到hosts,因为在C盘下无法修改,所以拖到桌面进行修改后在放回C盘。

再打开浏览器输入flag.bugku.com,就能发现flag啦。
writeup来源:bugku-web-域名解析(wp)

你必须让他停下

这道题,打开后发现页面一直在刷新,我是直接用burpsuite直接抓包看它的源代码,多抓几次就会发现flag。

本地包含

额。。。不知道为啥我的这道题的网站打不开,以后再写吧。

变量1

这道题又是代码审计,首先它会对你的参数进行正则匹配。但是一个有意思的是它有一个$$args,这时,php有一个变量$GLOBALS,一个包含了全部变量的全局组合数组。变量的名字就是数组的键。于是我们可以传入GLOBALS。便得到一个数组,里边就包含flag。

web5

首先,查看网页源代码,发现有一场串的符号,我们不知道是啥,然后,我猜测可能是一个js代码,于是全部复制下来,到控制台运行一下,果然出来了flag,然后他提示是大写,于是再弄成大写就行了。

头等舱

打开网页,什么都没有,查看源代码,还是什么都没有,只好burp suite进行抓包,查看response,发现flag。

网站被黑

刚开始拿到,没什么想法,啥都尝试了,还是没有地方下手,甚至连robots.txt都试了。嗯~~,robots.txt?是不是要找后台,于是用御剑扫后台,发现了shell.php。

密码登陆,直接用burp suite爆破。最后,密码是hack,拿到flag。

管理员系统

先查看源代码,发现一个base64加密的字符串,解密后是test123。这会不会就是密码?然后,输入admin test123.给我个这:
IP禁止访问,请联系本地管理员登陆,IP已被记录.
然后本地,那肯定是改包,用burp suite抓包,增加X-Forward-For:127.0.0.1,得到flag。

web4

它提示你取看源代码,然后发现一个JavaScript函数,再控制台中解码,得到:

function checkSubmit(){var a=document.getElementById("password");
if("undefined"!=typeof a ){if("67d709b2b54aa2aa648cf6e87a7114f1"==a.value)
return!0;
alert("Error");
a.focus();
return!1}
}
document.getElementById("levelQuest").onsubmit=checkSubmit;

直接输入密码:67d709b2b54aa2aa648cf6e87a7114f1就可以。

flag在index里

进入网页,发现只有一个链接,直接点进去,观察url有file传参,所以应该是文件包含。于是,构造file=php://filter/read=convert.base64-encode/resource=index.php。
这个payload的含义:php://filter是一种访问本地文件的协议,/read=convert.base64-encode/表示读取的方式是base64编码后,resource=index.php表示目标文件为index.php。
于是我们就可以得到index.php的源代码(base64加密的),再base64解密,就可以找到flag。
base64解密:BASE64加密解密

输入密码查看flag

输入密码,提示密码是五位数,那么范围就是00000-99999,直接burp suite进行爆破。
最后密码是:13579。

点击一百万次

首先,你可以点击一百万次来获得flag,不过那是不可能的。它提示JavaScript,于是就看一下源代码,找到一段js代码。查看后发现,它是用post来传参clicks,根据clicks数来判断的。那么直接post一个clicks=1000000就可以得到flag。(我用的是火狐的max hackbar来post传参的。)

备份是个好习惯

进去后有一串字符,看起来像是md5加密,于是解密后是空密码,这就有点尴尬了。再看一下备份,试了一下index.php.bak。没想到真把他的备份给下载下来了。(在这里还是推荐用一下脚本去扫一下)。源码是:

11行strstr获得URI从’?‘往后(包括’?’)的字符串,12行去掉’?’,13行把字符串中的’key’替换为空。
于是我们可以构造?kkeyey1[]=1&kkeyey2[]=0来绕过md5验证。就得到了flag。

成绩单

进入后,就是一个查成绩的输入框。当时,就想到了sql注入,于是先输入1’ ,发现没有返回值,再输入1 ’ #就有了返回值,那肯定存在单引号闭合。于是就可以进行注入了。(我用的是手工注入)
第一步:
1 ’ order by 5 # 没有输出。
1 ’ order by 4 # 有输出。
于是可以判断有四个字段。
第二步:
’ union select 1,2,3,4 # 有2,3,4回显。
’ union select 1,2,3,database()# 爆出数据库名:skctf_flag
第三步:
’ union select 1,2,3,group_concat(table_name) from information_schema.tables where table_schema=‘skctf_flag’#
爆出表名:fl4g和sc。很明显,flag肯定在fl4g中。
第四步:
’ union select 1,2,3,group_concat(column_name) from information_schema.columns where table_name=‘fl4g’#
爆出列名: skctf_flag
第五步:
’ union select 1,2,3,skctf_flag from fl4g#
就得到了flag。

一些朋友也可以用sqlmap来进行自动化注入。

杂项

签到题

额,直接扫码关注就行。

这是一张单纯的图片

用winhex打开,在最后发现了一些东西:

以&#开头的,应该为HTML编码,直接进行解码,就可以得到flag。

隐写

下载是个压缩包,解压后是个图片,查看后发现,图片的高度好像少了一截。于是用winhex打开,将高度改为和长度一致。:

前边是宽度,后边是高度。将A改为F,就可以了。保存,就可以看到flag。

telnet

下载,解压,是个数据包。用wireshark打开,追踪TCP流,就可以得到flag。

眼见非实(ISCCCTF)

下载后提示你是zip,于是重命名为1.zip。解压是个docx文档。但是,打开后开头是PK,说明还是个zip压缩包,重命名。解压,得到个文件夹。里边是xml文件。
然后去找文件里的内容。最后在:

这个文件中发现了flag。

啊哒

首先查看属性,发现了这玩意:

有E、F说明应该是16进制数,将其转换成字符串:sdnisc_2018
然后用binwalk跑一下:

发现捆绑了一个zip压缩包。用foremost提取压缩包。
解压时,发现有密码,那可能就是我们之前得到的那个字符串。输入后,得到flag.txt。

又一张图片,还单纯吗

用binwalk跑一下,发现里边捆绑了一张图片:

然后foremost提取,就得到了flag。

打开后,是一个女生的半张脸。。。我将我能想到的方法都试了一遍,毫无收获。看到题目是,难道要猜她是who?
于是用百度识图,发现是:

刘亦菲。将拼音写入,就可以了。

宽带信息泄露

下载得到了个bin文件,应该是配置文件,用notepad打开,发现加密了:

那么,就用routerpassview打开:

发现是xml,搜索userame就可以了。

隐写2

用binwalk跑一下,发现有个压缩包:

用foremost提取。
发现需要密码,不过他给了提示:
但是,我是不想去解。因为只有三位,所以写脚本来破解:

最后是:

得到一个图片,用notepad打开,在最后得到flag。

多种方法解决

解压后是个exe文件,但是打不开。用winhex打开,发现右边好像是图片的base64编码:

用在线的base64转图片来将base64转成二维码:

扫一下就可以得到flag。

闪的好快

打开时一些二维码一直在闪。直接用stegsolve来一帧一帧的查看,分别扫一下,然后拼成flag:

结语

持续更新中。

BugkuCTF writeup相关推荐

  1. BugkuCTF Writeup——Web

    文章目录 web2 计算器 web基础$_GET web基础$_POST *矛盾 web3 域名解析 你必须让他停下 *本地包含 *变量1 web5 头等舱 网站被黑 *管理员系统 web4 flag ...

  2. BugkuCTF~Misc~WriteUp

    1.签到 get flag: Qftm{You should sign in} 2.这是一张单纯的图片 查看图片十六进制 提去特殊字符串进行解码 get flag: key{you are right ...

  3. bugkuctf 江湖魔头Writeup

    bugkuctf:https://ctf.bugku.com 靶机地址:http://123.206.31.85:1616/ 进入靶机后,选择你要的人物属性,开始游戏 看了其他的游戏功能,发现我们需要 ...

  4. 【CTF练习平台】BugkuCTF部分misc writeup

    签到题 扫描二维码关注得到flag 这是一张单纯的图片 拖进notepad,在末尾发现密文 unicode解码得 key{you are right} 隐写 拖进winhex,发现高度不对 修改成11 ...

  5. 【BugKu-CTF论坛writeup(杂项)】妹子的陌陌

    呵呵呵,看到这个图片,突然想起来,这是上个学期刚开始接触CTF的时候,班里的大神应老师的要求讲解的一个图片隐写的题目,当时觉得好难哎这么复杂.但是今天自己做了一下,觉得,也就,嗯,还可以吧. ==== ...

  6. 【BugKu-CTF论坛writeup(杂项)】图穷匕见

    图穷匕见.看这个名字就知道,图片后面肯定还有东西,所以我们用HxD打开图片,找到JPG图片的结尾 发现结尾后面有一大串很有规律的十六进制数据. 复制到notepad++里打开(注意不是复制十六进制数据 ...

  7. 【BugKu-CTF论坛writeup(杂项)】细心的大象

    解压之后得到一个大象图片,很可爱.图片体积很大,吓了一跳,打开属性看一下,发现了一段编码 BASE64解码一下,得到 MSDS456ASD123zz 一串字符. 还是扔进binwalk里面看一下吧,里 ...

  8. BugkuCTF web18_秋名山车神 writeup

    web18_秋名山车神 原题链接 key:python脚本 ①题目环境里的网页长这样式的

  9. BugkuCTF web11_网站被黑 writeup

    web11_网站被黑 原题链接 key:御剑后台扫描+burpsuite密码爆破 知识补充: webshell就是以asp.php.jsp或者cgi等网页文件形式存在的一种命令执行环境,也可以将其称做 ...

最新文章

  1. 技术经理:求求你,别再乱改数据库连接池的大小了!
  2. 滴水穿石--Pydoop 架构和模块包介绍
  3. 微软牛津计划介绍——屌爆了的自然数据处理解决方案(人脸/语音识别,计算机视觉与语言理解)...
  4. 28 | 案例篇:一个SQL查询要15秒,这是怎么回事?
  5. 数据结构分类概述【转载】
  6. OpenCV人脸识别之三:识别自己的脸
  7. [Oracle]行列转换(行合并与拆分)
  8. 前后端分离提交多次验证
  9. kubernetes视频教程笔记 (13)-容器start、stop、相位
  10. 关于SQLyog创建的数据库不显示的问题
  11. 计算机报名照片在线修图,详细!2020国家公务员考试报名确认专题照片处理工具使用教程...
  12. html梯形选项卡,梯形标签页
  13. 计算机主机hs编码,电脑设备的进出口品名
  14. 计算机类绘图的文献,绘图计算机论文,关于机械制图计算机绘图的有效融合相关参考文献资料-免费论文范文...
  15. 如何减少电气设备漏电问题,其解决方案有哪些?
  16. 色调映射:Edge-Preserving Decompositions for Multi-Scale Tone and Detail Manipulation
  17. 刚体“下落速度“与“质量“无关
  18. 网络编程 —— 基础理论知识
  19. C语言学习笔记(15)——结构体程序设计
  20. 从零开始学架构——异地多活架构

热门文章

  1. 出生日期与年龄python_python根据出生日期返回年龄的方法
  2. 关于坯布的面料克重问题
  3. supervisor+nginx+cesi
  4. Java 七参数计算
  5. Java调用不同的打印机实现打印不同小票
  6. storj主网挖矿指南
  7. Android——超简单悬浮窗使用教程
  8. oracle递归查询(层级查询)
  9. 极坐标变换原理和用法
  10. 用本地播放器看直播,录制高清视频streamlink的使用