2017年网络空间安全技术大赛部分writeup
作为一个bin小子,这次一个bin都没做出来,我很羞愧。
0x00 拯救鲁班七号
具体操作不多说,直接进入反编译源码阶段
可以看到,只要2处的str等于a就可以了,而str是由1处的checkPass返回,于是进入checkPass函数。
从代码看,这是调用了so库里的函数,并且我们知道so库的名字叫humen
于是找到so库,拖进ida静态分析
找到checkPass函数,直接F5,通过分析,2中的代码最为关键
这段代码把我们输入的密码做了非常复杂的变换,变换后得到的字符串为S!@#@1FD23154A34
于是我找了16张纸,将flag变换出来了。。。。。
0x01 取证密码
反编译
进入encrypt函数
找到XTU.so拖进ida静态分析。
这段代码很简单,脚本如下
dest = [0x39,0x20,7,0xA,0x20,0x29,0x13,2,0x3A,0xC,0x11,0x31,0x3B,0xB,7]
str = 'Welc0meT0XTUCTF'
str1 = 'yInS567!bcNOUV8vwCDefXYZadoPQRGx13ghTpqrsHklm2EFtuJKLzMijAB094W'
a = len(str)
b = ''
for i in range(a):
b += str1[dest[i]]
print b
运行,得到flag.
0x02 人民的名义-抓捕赵德汉1
是个jar文件,直接反编译。
分析逻辑,直接进入checkPassword分析
很明显只要MD5解密就行
0x03人民的名义-抓捕赵德汉2
是个jar文件,直接反编译
好多乱码,很方,但还是继续分析,进入这个不知名的函数
看到两个关键函数,先进入第一个函数分析,一路追踪
复现这段代码
得到字符串JsnatterrtJuaththovacke
然后进入开始的第二个函数
代码逻辑很简单,下面是脚本
# -*- coding: utf-8 -*-
def f1(a,b):
return f2(a) % len(b)
def f2(b):
if b > 2:
return f2(b - 1) + f2(b - 2)
else:
return 1
x = 'JsnatterrtJuaththovacke'
b = ''
z = 0
for i in range(0,4):
for j in range(0,4):
b += x[f1(z + j,x)]
z += 5
print b
运行得到flag.注意格式flag{xxxx-xxxx-xxxx-xxxx} .
2017年网络空间安全技术大赛部分writeup的更多相关文章
- 2017年陕西省网络空间安全技术大赛——种棵树吧——Writeup
2017年陕西省网络空间安全技术大赛——种棵树吧——Writeup 下载下来的zip解压得到两个jpg图片,在Kali中使用binwalk查看文件类型如下图: 有两个发现: 1111.jpg 隐藏了一 ...
- 2017年陕西省网络空间安全技术大赛——一维码——Writeup
<!doctype html> 2017年陕西省网络空间安全技术大赛——一维码——Writeup 先判断下载的文件flag.png确实是png格式的图片后(binwalk, file命令均 ...
- 2017年陕西省网络空间安全技术大赛——人民的名义-抓捕赵德汉2——Writeup
下载下来的文件是一个jar包,用die和binwalk检查,确实是一个纯正的jar包 java -jar FileName运行jar包,观察文件的外部特征,发现也是判断password的题目 用查 ...
- 陕西省网络空间安全技术大赛部分题目writeup
签到-欢迎来到CSTC2017 10 欢迎来到CSTC2017 ZmxhZ3tXZWlTdW9GeXVfQmllTGFuZ30= Base64解密:flag{WeiSuoFyu_BieLang} 种棵 ...
- 2016第二届陕西省网络空间安全大赛WriteUp
2016年5月28号(正式比赛) 有选择题和实践题,俩队员在弄选择题时,我去拿了web1的一血. 0x01 web 是一道代码审计题,发包,返回了源代码: <?php if (isset($_G ...
- 2018~第三届南宁市网络安全技术大赛~nnctf~write-up
Web 1.超简单 分值:100 类型:WEB 已解决 题目:超简单的web题 http://gxnnctf.gxsosec.cn:12311/ 代码审计 <?php $white_list ...
- 第一届合天杯河北科技大学网络安全技术大赛 web6 writeup
- 第三届“百越杯”福建省高校网络空间安全大赛_Do you know upload?
题目在i春秋的ctf训练营 既然是上传,那就直接抓包 二话不说上来先给个00截断传个一句话助助兴 直接就成功了.... 赶紧操起菜刀去连接 进去之后发现ctf.sql是个空文件,那么flag应该在数据 ...
- 第三届“百越杯”福建省高校网络空间安全大赛writeup--Do you know upload?
一打开网址,可以看出应该是文件上传漏洞,查看源码,也有可能是文件包含 上传个图片,成功,然后上传一句话木马 通过bp进行上传绕过 , 开始菜刀连接http://e00b6eca3c9c4e14a31c ...
随机推荐
- CodeForces599D【数学】
题意: 给出一个x,求有多少个矩阵中满足存在x个不同的正方形. 思路: (数学渣+推理渣) #include<bits/stdc++.h> using namespace std; typ ...
- HDU1597【二分瞎搞】
题意: 求第n个数: 思路: 可以看到一种序列: 1 12 123 1234 12345 123456 1234567 12345678 123456789 1234567891 1234567891 ...
- 2016CCPC东北地区大学生程序设计竞赛
吧啦啦啦啦啦啦啦啦啦啦啦能量,ACM,跨!变身!变成一个智障! http://blog.csdn.net/keyboarderqq/article/details/52743062
- Java对象池示例
单例模式是限制了一个类只能有一个实例,对象池模式则是限制一个类实例的个数.对象池类就像是一个对象管理员,它以Static列表(也就是装对象的池子)的形式存存储某个实例数受限的类的实例,每一个实例还要加 ...
- 笔记-JavaWeb学习之旅4
JDBC: 概念:Java DataBase Connectivity Java 数据库连接,Java语言操作数据库 本质:其实是官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口,各个数 ...
- bzoj1142:[POI2009]Tab
传送门 考虑每次交换都不会改变每个数所在的行和列(不是指编号,而是指和它在同一行或者同一列的数不会发生变化) 由于每个数互不相同,所以记录下每个数所在的行和列,暴力判断就好了 代码: #include ...
- Git - .gitignore文件的用法
.gitignore文件的作用 .gitignore文件用来忽略被指定的文件或文件夹的改动,被记录在.gitignore文件里的文件或文件夹,是无法被git跟踪到的,换句话说,被忽略的文件是不会被放入 ...
- JavaScript 原生提供两个 Base64 相关的方法
JavaScript 原生提供两个 Base64 相关的方法. btoa():任意值转为 Base64 编码 atob():Base64 编码转为原来的值 var string = 'Hello Wo ...
- socket编程模拟linux下的ssh代码实现
实现思路: 1.提供输入指令的客户端: 2.提供返回执行指令结果的服务端 3.寻找服务端返回结果一次无法全部接收的解决思路 服务端代码(ssh_server.py) #coding=utf-8 imp ...
- JS面向对象方法(一): 使用原生JS 实现导航栏下多级分类弹出效果
利用二级菜单的onmouseover/out事件 重新构建一级菜单 ".hover" 样式类 代码如下: CSS部分: 在原来的目标:hover样式中 增加 .hover状态 li ...