BUGKU Write Up

 

  • 杂项

1.签到题略

2.是一张单纯的图片

Winhex查看发现如下一段编码

而我们知道以&#开头的是 HTML、XML 等 SGML 类语言的转义序列,所以使用urlencode得到flag

3.隐写

用了一遍winhex,stegslove,都没有发现问题,尝试使用winhex更改图片高度

BUGKU Write Up_第1张图片

第二行0123是宽度,4567是高度,我们将第6列的01更改为11得到flag

4.telnet

下载下来是一个.pcp文件,标题已经暗示了做法,过滤telnet,追踪tcp流得到flag。有关telnet的知识https://baike.baidu.com/item/Telnet/810597?fr=aladdin

5.眼见非实(iscc)

下载后打开更改后缀名为zip,打开后发现有个docx文件,但是打开后并非docx,再次更改后缀名为zip,查看有一堆文件,其实flag在documents.xml里,现在反过来想是对的,因为开始文件夹打开就有一个docx文件,而docx一般就是documents,本人在其他一个.xml里糊涂了,找到了一个像flag的东西,因为是{}格式就怎么提交也不对,后来发现蠢了。

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

BUGKU Write Up_第2张图片

通过binwalk分析发现里边还有jpg,对其进行分离得到flag

 

  • Web

1.web 2 看源代码

2.文件上传测试

尝试上传php文件,显示要求jpg文件,反过来也一样,抓包,修改后缀名为.jpg.php get到flag

3.计算器

修改maxlength

4.web基础$_get

  1. web 5

查看源代码,控制台跑一下

BUGKU Write Up_第3张图片

6.矛盾

BUGKU Write Up_第4张图片

分析代码,is_numeric语法要求num不能是数字或者是字符串,但是有要求num值为1,这时候需要用到科学计数法,构造?num=1*10^0得到flag。相似的360的一道题目

$num = $_GET['num'];

if(is_numeric($num)){

echo "Fuck it!";

}else{

if($num == 8){

echo "You got it!";

}

echo $num;

}

?>

这里也用到了这个函数,bypass方法:test.php?num=8 在 8 后面加任何除数字之外的字母或者符号即可绕过。比如 test.php?num=8a,甚至test.php?num=8%20,加一个空格就可以绕过。具体的可以参考这篇文章Ddctf.didichuxing.com/challenges

7.web3

查看源码,Unicode

8.sql注入

查看源代码gb2312应该是存在宽字节注入,也就是注入的时候会将’转义为\’,通过输入%df’转移之后为%df%5c’,%df%5c这两个字节就会被合并成汉字 運,后面的’就被释放出来了。 宽字节注入nctf平台也有到题目,有兴趣的可以看下,宽字节漏洞分析:https://blog.csdn.net/wy_97/article/details/77389088

题目已经说了是一道注入题,那么我们则需要找到注入点,一般思路’闭合导致注入,使用?id=1等数字进行测试,发现除了0,1之外其他数字都会导致页面的改变。

BUGKU Write Up_第5张图片

我们进行测试输入%df’会报错如下图所示

BUGKU Write Up_第6张图片

%df' union select 1,2 %23

BUGKU Write Up_第7张图片

Key值为2的地方则是注入点

%df' union select 1,database() %23

BUGKU Write Up_第8张图片

根据题意查询key表,id=1的string字段构造url?id=%df' union select 1,string from sql5.key %23或者%df' union select 1,string from sql5.key--+得到flag

9.域名解析

听说把 flag.bugku.com 解析到120.24.86.145 就能拿到flag,意思是将flag.bugku.com 解析到120.24.86.145,打开hosts文件,路径为C:\Windows\System32\drivers\etc ,如果出现了没有权限的情况,点击文件-windowspowershell-以管理员身份运行,输入cmd-回车-notepad hosts,打开hosts文件,这是修改后就可以保存,运行网站,即可拿到flag

BUGKU Write Up_第9张图片

BUGKU Write Up_第10张图片

 

10.你必须让他停下

Bp抓包,go

11.变量1

flag In the variable ! 
error_reporting(0);
include "flag1.php";
highlight_file(__file__);
if(isset($_GET['args'])){
    $args $_GET['args'];
    if(!preg_match("/^\w+$/",$args)){
        die("args error!");
    }
    eval("var_dump($$args);");//$$可变变量涉}
?>

代码审计,发现最后一行$$,在php中$$是可变变量,可变变量可以参考https://www.jb51.net/article/68950.htm

BUGKU Write Up_第11张图片

在这个时候我们要用到$GLOBALS ,引用全局作用域中可用的全部变量,$GLOBALS 这种全局变量用于在 PHP 脚本中的任意位置访问全局变量(从函数或方法中均可)。PHP 在名为 $GLOBALS[index] 的数组中存储了所有全局变量。变量的名字就是数组的键。构造url?args=GLOBALS得到flag。

12头等舱

抓包

13web4

解密得到

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").οnsubmit=checkSubmit;

提交67d709b2b54aa2aa648cf6e87a7114f1得到flag

14flag在index里

可以看到关键词file,所以应该是文件包含,构造url得到base64加密的内容解密得到flag

http://120.24.86.145:8005/post/index.php?file=php://filter/read=convert.base64-encode/resource=index.php

15输入密码查看flag

提示说请输入五位数密码,而且url写到了baopo,所以我们使用bp进行爆破

网页随意输入一个五位数进行抓包,send to intruder进行暴力破解,

BUGKU Write Up_第12张图片

Clear不需要破解的内容,对我们需要破解的加上标识,

BUGKU Write Up_第13张图片

由于已经说是五位数字了,所以我们选择数字,变量只有一个所以payload set为1,设定范围,开始attack

BUGKU Write Up_第14张图片

在结果里找到与其他不一样的那一个则是我们需要的内容。

三、社工

1.密码

猜测flag为姓名+生日

2.信息查找

百度bugku.cn然后看你找到了什么

3.信息查找

百度一个社工库然后翻下墙找下flag

四.加密

1.滴答~滴

摩斯码了解一下?

2.聪明的小羊

栅栏密码了解一下?

3.Ook!

开始也不知道这个是什么,问了下度娘,原来是一种编程语言,解码一下得到flag

https://www.splitbrain.org/services/ook

 

几道数据包题目

1.flag被盗(签到题目)
题目链接:https://ctf.bugku.com/challenges#flag被盗
题目提示flag被盗,赶紧溯源!分析数据包,在105号数据包中直接获取flagBUGKU Write Up_第15张图片2.中国菜刀(签到x2)
题目链接:https://ctf.bugku.com/challenges#中国菜刀
分析数据包,追踪HTTP流后发现这里记录了一些入侵的数据,在这里我们发现这样一个压缩包: flag.tar.gz图片描述于是放到binwalk之下查看确认存在此数据包BUGKU Write Up_第16张图片最后我们使用-e命令进行分离得到一个压缩包,对其进行提取便可以得到flag
BUGKU Write Up_第17张图片3.这么多数据包(小技巧)
题目链接:https://ctf.bugku.com/challenges#这么多数据包
题目中提示说道

这么多数据包找找吧,先找到getshell的流

根据个人经验getshell被捕获的数据一般出现在tcp里,并且会有command,所以我们直接在过滤栏里输入tcp contains "command"即可,如下图所示
图片描述接下来导出tcp流可以看到一段base64编码解码即可getflag。
4.手机热点(蓝牙传输协议应用)
题目链接:https://ctf.bugku.com/challenges#手机热点
题目描述:httppan.baidu.coms1cwwdVC 有一天皓宝宝没了流量只好手机来共享,顺便又从手机发了点小秘密到电脑,你能找到它吗?
题目来源:第七季极客大挑战
根据题目提示,手机共享,那么应该是蓝牙传输,而我们知道蓝牙传输协议为obex,过滤数据包看到如下图所示内容
BUGKU Write Up_第18张图片binwalk下进行分离便可以得到flag

 

你可能感兴趣的:(CTF,信息安全)