某模拟赛部分Writeup
时间:2022-07-23
本文章向大家介绍某模拟赛部分Writeup,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
前言
这场比赛只是一次CTF培训后的模拟赛,内容也就图一乐
0x01 MISC日志分析
打开压缩包,是一个 .log
文件
解压后打开来看,是一串被sqlmap注入后的数据
直接忽略掉他注入 information_schema
库的操作,看查询的地方
因为是盲注的原因,所以不是字符串,我们只用看他的语句就好了,根据特征,定位这条语句
也就是,语句中存在 !=
的,表示当前是的 ASCII
码是正确的,所以直接上python
import re
file=open('flag.txt','r')
pattern=re.compile(r'),(.*?),1))!=(.*?),0,1')
for i in file:
check=pattern.search(i)
if check:
print(chr(int(check.group(2))),end='')
运行后,就有flag了
0x02 MISC音频分析
打开压缩包,是一个压缩包和音频文件
secret.zip
需要密码,先看rain.wav
拖入软件 Audacity
查看频谱图
得到密码 CONGR4Ts!:)
,拿去解压缩
发现图片不完整,再把图片拖入HxD中
发现后半段的flag就在这里,直接拼合提交就好了
0x03 MISC_xorzip
打开压缩包
one.zip需要密码,看一下mtpxor.txt的内容
写个python异或
![12](C:Userselap_Desktop模拟赛题目12.png)import binascii
c1 = '24161a1d1c0317100c240f1818001e06120c03170e'
c2 = '380e04533e4f050b1529040154121a0e120100071c'
c3 = '25115312150004015b390916030a000302581c1d15'
c4 = '3c081816570e5200122c0c1c1a011b01460c07175d'
c5 = '24161a1d1c0317100c240f1818001e06120c03170e'
c6 = '380e04533e4f050b1529040154121a0e120100071c'
c7 = '2709161d571b1a01192100091d0b151c131606011a'
c8 = '2709161d5707170a1439091a1a0201070f160a0108'
c9 = '2409161d0e0007171322160a1b1000030f0c1b1e18'
c10 = '24161a1d1c0317100c240f18180013030a0c071713'
c11 = '2409161d03071710092c17161809171d0f161b1a18'
c12 = '2409121d1c1c0b0b0e2b0e010d0a071d1211010b0e'
c13 = '330e061f134f1a015b3e041654121a060510181304'
ciphers = [c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11,c12,c13]
cipher_text = "Thenyoushowyourlittlelight"
def sxor(s1,s2):
return ''.join(chr(ord(a) ^ ord(b)) for a,b in zip(s1, s2))
for cipher in ciphers:
k = sxor(cipher.decode('hex'),cipher_text)
print(binascii.a2b_hex(k.encode('hex')))
运行一下,得到密码
解压之后,发现Readme.txt的 CRC32值
和压缩包 two.zip
的值一样
说明可以明文攻击
保存文件,就没有密码了,直接解压
直接进three.zip压缩包里,解压flag就好了
0x04 Crypto_vi
打开cipher.txt,一长串字符串
维吉尼亚解密,拖去网站解就好了
- Android启动过程分析
- 单例模式
- 快速、直接的XSS漏洞检测爬虫 – XSScrapy
- 希尔排序
- RxJava2 实战知识梳理(3) - 优化搜索联想功能
- ubuntu上安装Apache2+ModSecurity及自定义WAF规则
- C++中关于指针初始化和使用NULL的理解
- ViewPager 实现 Galler 效果, 中间大图显示,两边小图展示(优化篇)
- (虚)继承类的内存占用大小
- Linux服务器数据定期同步和备份方式
- Android组件化搭建
- ECMAScript 6 入门简介
- RxJava2 实战知识梳理(2) - 计算一段时间内数据的平均值
- 用了Docker,妈妈再也不担心我的软件安装了 - 基础篇
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- PHP封装的mysqli数据库操作类示例
- PHP-FPM 的管理和配置详解
- PHP基于curl实现模拟微信浏览器打开微信链接的方法示例
- 实例讲解PHP表单验证功能
- python如何从键盘获取输入实例
- 使用Keras实现Tensor的相乘和相加代码
- php无限级分类实现评论及回复功能
- php获取手机端的号码以及ip地址实例代码
- PHP数组遍历的几种常见方式总结
- 详解php协程知识点
- php curl简单采集图片生成base64编码(并附curl函数参数说明)
- PHP通过get方法获得form表单数据方法总结
- PHP filesize函数用法浅析
- PHP中创建和编辑Excel表格的方法
- php二维数组按某个键值排序的实例讲解