ctfshow MengXIn misc&web 上

目录

杂项1

杂项2

杂项3

杂项4

杂项5

杂项6

杂项7

杂项8

杂项10

杂项11

web1-7

web8

web9


杂项1

小明想给心爱的妹子表白很久,可是不知道怎么开口,你能帮帮小明吗?

已知 md5(表白的话+ctf)=ed400fbcff269bd9c65292a97488168a

提交flag{表白的话}

去提示的链接中解密,得到 helloctf 所以表白的话为hello

flag为flag{hello}

杂项2

 binwalk分离出来两个文件。拖到桌面上记事本打开。看见flag。

杂项3

大家好我是小萌新羽,前不久我的一个朋友给我了一张银行卡,他说里面有一大笔钱,但是他只告诉我他的生日是九七年十月一日,你能帮我猜猜他的银行卡密码是多少吗,哦对,这个朋友有个小名叫小五。

flag格式:flag{银行卡密码}

银行卡密码为6位,据题目给出 可能存在 97 10 01 15

试一下,971015即为密码。

杂项4

小明心爱的图片在压缩包中,可是小明夜深人静的时候,孤枕难眠,想打开图片排遣寂寞,可是忘记了密码了,小米依稀记得9位的密码都是数字,前3位是372,你能帮助小明吗.

flag{372xxxxxx}

这个题需要用到ARCHPR工具来爆破一下压缩包密码 372619038

杂项5

小明如愿以偿的打开了压缩包,可是眼前的文字自己只能认识FBI,其他的都不认识,而且屏幕出现了一句话,你能帮小明找到这句话的意思吗?

小明如愿以偿的打开了压缩包,可是眼前的文字自己只能认识FBI,其他的都不认识,而且屏幕出现了一句话,你能帮小明找到这句话的意思吗?

FBI    No under 18

i was always Fond of visiting new scenes, and observing strange characters and manners. even when a mere chiLd i began my travels, and made mAny tours of discovery into foreiGn {parts and unknown regions of my native City, to the frequent alarm of my parents, and The emolument of the town-crier. as i grew into boyhood, i extended the range oF my obServations. my holiday afternoons were spent in rambles about tHe surrounding cOuntry. i made myself familiar With all its places famous in history or fable. i kNew every spot where a murder or robbery had been committed, or a ghost seen. i visited the neighboring villages, and added greatly to my stock of knowledge,By noting their habits and customs, and conversing with their sages and great men.}

看一下,里面所有的大写字母应该就是我们的FLAG。

 得到flag:flag{CTFSHOWNB}

杂项6

小明的压缩包又忘记密码了?他去电脑维修店去修,人家扔出来说这个根本就没有密码,是个假密码。小明懵了,明明有密码的啊,你能帮帮小明吗?

伪加密。

 把09改为00.再保存后打开,就没有加密了。

详细可以看一下这个师傅的博客:zip 伪加密学习,压缩包十六进制数据含义分析_Goodric的博客-CSDN博客_zip十六进制

杂项7

小明小心翼翼的打开压缩包,竟然是个图片,什么鬼?

要是图片能继续往长一点该多好啊,小明暗暗的想。

你能帮小明完成这个朴素的梦想吗?

图片继续长一点,就是010修改图片高度。

得到flag{beautiful}

杂项8

图片宽高被修改破坏了..需要找到准确的宽和高才可以。

自己手动找不到。

这里借用其他师傅的脚本跑一下 :CTF-图片隐写-PNG图片修改宽高值的py3爆破 - 简书

crc为:91918666

import zlib
import struct
crc32key = 0x91918666 #补上0x,winhex下copy hex value。
data = bytearray(b'\x49\x48\x44\x52\x00\x00\x01\xF4\x00\x00\x01\xF1\x08\x06\x00\x00\x00')   #winhex下copy grep hex。
n = 4095 #理论上0xffffffff,但考虑到屏幕实际/cpu,0x0fff就差不多了
for w in range(n):#高和宽一起爆破
    width = bytearray(struct.pack('>i', w))#q为8字节,i为4字节,h为2字节
    for h in range(n):
    height = bytearray(struct.pack('>i', h))
        for x in range(4):
            data[x+4] = width[x]
            data[x+8] = height[x]
        crc32result = zlib.crc32(data)
        if crc32result == crc32key:
            print(width,height)
            exit(0)

根据结果修改图片宽和高

查看图片,得到flag:flag{you_are_very_well}

杂项10

眯着眼看,flag应该就是: flag{我好喜欢你}

杂项11

下载下来是一个.jpg图片,提示用的工具也是 JPHS

我们用JPHS打开之后,seek 密码为空 下载下来h.txt

 是一个类似于PNG图片头,我们更改后缀为.png试试

得到了一个二维码 微信扫码后是ctfshow平台。。从这里得不到信息

我们用QR REsearch工具扫描一下该二维码

 http://ctf.show/?ZmxhZ3vmiJjnpZ7lvZLmnaXlj5HnjrDoh6rlt7HlhL/lrZDlnKjliLfpopjvvIzkuIDmgJLkuYvkuIvlj6zllKQxMOS4h+WwhuWjq+adpeaKpeS7h30=

得到一串base64编码,解码后得到flag

web1-7

web1 :?id=100 or id=1000//就是用一个id小于999的来进行验证,然后再给他一个1000的值进行判断
web2 :相同的原理,直接为?id=100 ||id=1000
web3 :?id=100 ||id=1000
web4 :?id=100 ||id=1000
web5 :?id=~~1000
web6 :?id=~~1000   或 ?id=0b

或者进制绕过“

bin(1000)
'0b1111101000'
hex(1000)
'0x3e8'

web8

??? ?flag=rm -rf /*  删库跑路,第一季结束。。

web9

眼瞎了,不是!prematch()。。。。直接system(‘cat config.php');即可,查看源码得到flag。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这段代码定义了一个名为`enter`的函数,下面逐句解释代码的作用: 1. `void enter()`: 定义函数名为`enter`,参数为空,返回值为空。 2. `FILE* fp;`: 声明一个指向文件的指针变量`fp`。 3. `f = (char*)malloc(MEM_D_SIZE * sizeof(char));`: 动态分配`MEM_D_SIZE`大小的内存空间并将起始地址赋值给`f`,`sizeof(char)`表示分配的是`char`类型的空间。 4. `if ((fp = fopen("test.txt", "rb")) == NULL)`: 打开文件名为`test.txt`的文件,以二进制模式读取,如果打开失败则输出“无法打开文件”并返回。 5. `if (!fread(f, MEM_D_SIZE, 1, fp))`: 通过`fread`函数读取`fp`指向的文件,读取大小为`MEM_D_SIZE`,读取次数为1,如果读取失败则输出“无法打开文件”并结束程序。 6. `fat = (struct fatitem*)(f + SIZE);`: 将`fat`指针指向`f`的起始地址加上`SIZE`大小(`SIZE`为一个常量),即指向`f`的第二段内存空间。 7. `root = (struct direct*)(f + SIZE + FATSIZE);`: 将`root`指针指向`f`的起始地址加上`SIZE`和`FATSIZE`大小(`FATSIZE`为一个常量),即指向`f`的第三段内存空间。 8. `fclose(fp);`: 关闭文件。 9. `for (i = 0; i < MOFN; i++)`: 循环执行`MOFN`次,`MOFN`为一个常量,即初始化用户打开表。 10. `strcpy(u_opentable.openitem[i].name, "");`: 将第`i`个用户打开表的文件名赋值为空字符串。 11. `u_opentable.openitem[i].first = -1;`: 将第`i`个用户打开表的文件起始块号赋值为-1。 12. `u_opentable.openitem[i].size = 0;`: 将第`i`个用户打开表的文件大小赋值为0。 13. `u_opentable.cur_size = 0;`: 将用户打开表的当前大小赋值为0。 14. `cur_dir = root;`: 将当前目录指针`cur_dir`指向根目录。 15. `bufferdir = (char*)malloc(DIR_MAXSIZE * sizeof(char));`: 动态分配`DIR_MAXSIZE`大小的内存空间并将起始地址赋值给`bufferdir`。 16. `strcpy(bufferdir, "mengxin:");`: 将字符串`"mengxin:"`复制到`bufferdir`指向的内存空间中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值