type
date
status
slug
summary
tags
category
password
icon
做了一些题目,简单记录下
Mobile
Crackme
密码就是flag,jeb反编译分析就可得到flag
python
REVERSE
美国队长
分析可以发现关键是在sub_401000()这个函数

异或拼接就是flag

python
re
IDA64载入
查看main函数 分析如下图所示


dwfsxe::dwfsxe函数与handvfiu::handvfiu函数可以得到两个字符串


m = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()_+'


enc = 'hP&p0!5L^#3NXLs@*QR%L&UN!L)0%Q^'
最后在B::cewrwe23rf这个函数进行比较


动态调试可以分析出


总结就是
- 我们输入的字符串长度 = 31
即len(flag) = 31
- 字符串每一位 - 0x30 = 下标(下边这个表)
0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()_+
- 下标对应的位置的字符 需要等于 这串字符中的hP&p0!5L^#3NXLs@*QR%L&UN!L)0%Q^
逆推一下就可以得到flag
python
Web
Dream II
根据提示 burpsuit发送内容是message的put请求
就可以得到一串字符
base64解码就是flag


Welcome
F12查看源代码可以看到flag前半段


抓包可以在响应头发现后半段 拼接就是flag


Code Php
F12查看源代码可以看到注释有code.txt


访问得到php代码
php
审计代码可以发现 题目考察两个点
- php在进行比较时如果遇到"0e"开头的字符串,会当成科学技术法,因为0的不管多少次方都是0,也就造成了hash比较缺陷
- strcmp函数只会处理字符串类型参数,如果是数组的话,就会返回NULL,而判断使用的是==,NULL==0为真
由此可以构造Payload
Include
访问发现页面空白 查看源代码 发现注释include1.php
尝试把index换成include1构造伪协议访问得到base64加密的include1.php源代码
解密得到
php
审计代码发现过滤了flag,但是有一个include2.php,同样构造得到源码
php
发现include2没有过滤flag字符串,但是过滤了base,没办法直接得到flag源码
经过一番百度了解到可以使用rot13过滤器,详情看这里
查看源代码就可以得到rot13编码后的flag


XSS
输入">123<" 页面显示123<""> 于是可以插入
plain
得到flag (ps:提交注意格式)


Upload
题目信息
上传可执行的php文件。flag格式:flag{xxx}。 http://192.144.182.32:8001/abf20c91a442da48/6/index.phphint1: 系统是Windows hint2: 磁盘为NTFS格式
根据提示,使用windows系统特性进行绕过
原理
php在window系统运行时,如果文件名+"::$DATA"会把::$DATA之后的数据当成文件流处理,不会检测后缀名.且保持"::$DATA"之前的文件名
效果

Crypto
签到题
010 Editer打开就是flag


解密吧
题目给了一个shadow文件,直接使用john shadow破解得到hello123
所以flag{hello123}
解密
三位一组分开 就可以得到flag
plain
flag{OOPCOISOKLGDSDP}
加密的压缩包
zipinfo命令查看zip文件信息,可以发现有4个txt
plain
使用python获取crc32值
python
得到关系(ps:也可以使用winrar或者bandzip直接查看)
文件名称 | CRC32 |
1.txt | 0x4b10deba |
2.txt | 0x1fd8a07a |
3.txt | 0xe7f7e18c |
flag.txt | 0x88940fde |
接着使用crc32.py项目碰撞crc32
bash
可以得到PassisWe1c0meT0CTF
解压密码就是We1c0meT0CTF,解压得到flag
一般难度的加解密
常规RSA题目,先求d就可以得到m,就是最后解码有点烦
python
凯撒
题目给出很多ASCII,整理转成字符,遍历凯撒
python
得到flag{e57b9e18b08bff0d05a3c59900b10???}md5:29c1dd3af5bb698efd81ca5bc1178e5f
开始还以为是
md5(e57b9e18b08bff0d05a3c59900b10???) = 29c1dd3af5bb698efd81ca5bc1178e5f
然后发现跑不出来,somd5一下得到9a4,才意识到是后三位爆破
脚本如下
python
最后flag{e57b9e18b08bff0d05a3c59900b109a4}
MISC
reverse
下载得到一flag.png,发现无法显示,用010 Editer打开发现十六进制数据进行了翻转
脚本处理生成cc.png,打开就是flag
python


参考链接