SWPUCTF 2019总结以及部分WP
本次SWPUCTF开赛了,一共做了5个misc+2个web,RE和Android没时间看= =,pwn完全不会,果然又是和去年一样划水。题目都出的很不错,做题的时候思路其实也容易想到,剩下几个web有思路但是最后还是没有做出来。
简单写个WP吧。
本次比赛的部分文件我已保存上传至xxx。懒得上传,需要的话找我拿吧。
一、MISC
神奇的二维码
下载之后是一个二维码,直接扫描后是一个fakeflag,直接binwalk先扫描一波
可以发现里面有几个rar,将其分离出来,其中两个rar解出来都是没有东西的,只有最后那个flag.doc下面的一大串字符,用base64解密发现可以转换。
那么就写一个简单的Py脚本吧= =,当然也可以手动一直转换。
import base64 with open('./1.txt') as f:
s = f.readlines()[0].strip()
try:
while True:
s = base64.b64decode(s)
except:
print(s)
然后加上swpuctf{}提交就可以了。这道题就算是签到题吧。
漂流的马里奥
打开直接运行会在所在目录生成一个1.txt,内容如下
还是继续使用binwalk分离内部文件,其下面有个50000.rar,打开后发现也就是1.txt的压缩包,我们使用010 editor查看一下16进制源码
发现其比普通的rar文件多了CTM部分和STM部分,搜索一下发现CMT就是压缩包的注释部分,那么STM是什么呢,同样我还发现STM部分包含flag.txt这肯定就是隐藏的flagle,在google上搜索RAR STM相关关键字后我找到了这样一篇博文,大概就满足我们所说的隐藏信息。
再继续搜索相关NTFS流的资料后我找到了获取这个数据流的方法。如下,更多关于NTFS流的信息可以自行再搜索相关资料。
伟大的侦探
从这个标题就知道和福尔摩斯相关,打开密码.txt后如下
根据提示编码错误,我们使用010 editor转换编码,最后发现密码如下
然后misc文件夹下的内容如下
果然还是和福尔摩斯有关的,这也就是归来记中的跳舞的小人,但是这只是简单的按照书中的码表进行转换,和其真正的解密方法(根据出现频率解密)不相同,最后对照网上的码表得到flag
swpuctf{iloveholmesandwllm}。
你有没有好好看网课
打开有flag2.rar,和flag3.rar,都有加密,经检测不是伪加密,那就爆破吧,flag3是可以被爆破的,然后里面就是我们人见人爱的影流之主了,flag.doc内容如下,
根据题目的提示,我们去看一下这些数字的帧数。
这两帧的灯位置都有隐藏信息,提取出来如下
..... ../... ./... ./... ../
dXBfdXBfdXA=
第二行直接可以base64解密,第一行最开始猜测是莫斯加密,可是对不上莫斯的码表,最后一个个尝试之后发现其是敲击码,得到密码
wllmup_up_up,用这个密码可以打开flag2.rar。然后010 editor打开就可以发现在末尾的flag了。
Network
下载后发现里面只有一个txt文档,而且里面只有四个数字
这道题比较误导人的地方就是,它的标题叫做Network,刚好这四个数字又对应了四个网关地址,于是方向错误,最后对比其二进制才发现端倪,这四个数字转成8位二进制后,只有最高两位二进制不同,我们尝试写一个脚本将其最高两位提取出来,并且4个一组转换位ASCII。发现写出来的16进制数开头是50 4B,应该也就是zip了,脚本如下
fp = open('t.txt','r')
a = fp.readlines()
p = []
for i in a:
p.append(int(i))
s = ''
for i in p:
if i == 63:
a = ''
elif i == 127:
a = ''
elif i == 191:
a = ''
elif i == 255:
a = ''
s += a import binascii
flag = ''
for i in range(0,len(s),8):
flag += chr(int(s[i:i+8],2))
flag = binascii.unhexlify(flag)
wp = open('ans.zip','wb')
wp.write(flag)
wp.close()
打开后发现需要密码,010查看发现全局加密和局部加密位不一,也就是伪加密了,改09 为 00后打开
然后又是一大串的字符,不说了上base64,解密得到flag
flag{189ff9e5b743ae95f940a6ccc6dbd9ab}
easy_web
打开如下,一个登陆注册界面,随意注册个账号。
可以发现可以申请广告。
然后发现其是可以实现XSS的,但是这题管理员并不上线,所以XSS没有什么用
后面经过了一些测试发现之后,广告详情的SQL是通过广告名进行搜索的,所以这里可能实现二次注入,猜测SQL为(做完题后再猜测的)
select xx from xxx where title='xxx' limit 0,1
然后尝试之后发现过滤了or,sql,join,空格,#,-等一些字符,期间最头疼的就是过滤了or,那么order和information_schema都不能使用了,查询字段我们还可以用union select,但是咋查表呢,最后我是自己手动猜出来的,数据库为web1,下面有users表,里面有name和pass字段,admin的pass就是最后的flag,构造如下广告
没错,有22列,然后点击广告详情就可以得到flag的md5了,根据题目说明使用somd5解密即可得到flag
这题的很多细节,比如查列数以及如何构造sql就不再说了,这里就只讲一下最后的payload实现。
简单的Python
比赛结束了 = =题目下线了,没法复现了。
emmm这题不知道是不是出题人失误啊,猜了个redis密码为password竟然直接连接上了。
然后就用了一波别人的session获得了flag...
WEB3弄出了secretkey了,下一步应该是个ssti了,但是周六周天都有事= =没有做了。
SWPUCTF 2019总结以及部分WP的更多相关文章
- 2019强网杯babybank wp及浅析
前言 2019强网杯CTF智能合约题目--babybank wp及浅析 ps:本文最先写在我的新博客上,后面会以新博客为主,看心情会把文章同步过来 分析 反编译 使用OnlineSolidityDec ...
- SWPUCTF 2019 web
web1 知识点 ## information_schema绕过 ##无列名注入 注入点在广告申请广告名字处,申请广告名为 查看广告详细返回错误 接下来就是常规的union注入的套路,但是发现or被过 ...
- 2019西湖论剑web wp
发在正文前 这应该是自己在安全圈摸爬滚打两年多以来第一次正规的ctf比赛.没解出flag,没截图,只提供了一些思路. 遥想往昔,初入大学,带着对PT的向往,一个人穿行在幽暗的图书馆,翻阅啃读一本本安全 ...
- 2019红帽杯部分wp
xx 程序首先取输入的前4个字符作为xxtea加密的密钥之后进行xxtea加密.接着进行位置置换操作,然后又进行了以3个为一组的异或 首先逆向解出xxtea加密之后的结果 #include<st ...
- 2019 红帽杯 Re WP
0x01 xx 测试文件:https://www.lanzous.com/i7dyqhc 1.准备 获取信息 64位文件 2.IDA打开 使用Findcrypt脚本可以看到 结合文件名是xx,因此猜测 ...
- SWPUCTF 2019 pwn writeup
来做一下以前比赛的题目,下面两个题目都可以在buu复现(感谢赵总). SWPUCTF_2019_login 32位程序,考点是bss段上的格式化字符串.用惯onegadgets了,而对于32位程序来说 ...
- 2019 上海市大学生网络安全大赛 RE部分WP
这次比赛就做了这一道逆向题,看到队友的WP,下面的对v10的加密方式为RC4,从我提取的v4数组就能够察觉出这是CR4了,自己傻乎乎的用OD调试,跟踪数据半天才做出来,还是见得的少了... ...下面 ...
- 2019“嘉韦思”杯RSA256题目wp
首先我们从网站下载了一个压缩包,解压出来一看里面有2个文件 首先我们先打开fllllllag康康,结果发现是一串乱码,这时候第一反应就是,文件被加密了,再看fllllllag下面的gy.key文件,更 ...
- 2019 安洵杯 Re 部分WP
0x01.EasyEncryption 测试文件:https://www.lanzous.com/i7soysb 1.IDA打开 int sub_416560() { int v0; // eax i ...
随机推荐
- WARNING:Your password has expired --linux 用户密码过期
今天在ssh 提示 WARNING:Your password has expired 设置用户到期时间 chage -M 36000 用户名 chage -l 用户名 #查看用户信息
- 【Python学习之十】操作数据库
环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 python3.6 操作mysql数据库 1.安装pymysql模块p ...
- Go语言中的值类型和引用类型
一.值类型和引用类型值类型:int.float.bool和string这些类型都属于值类型,使用这些类型的变量直接指向存在内存中的值,值类型的变量的值存储在栈中.当使用等号=将一个变量的值赋给另一个变 ...
- 解决ScrollView嵌套百度地图滑动冲突
一.问题描述 scrollview中嵌套百度地图时会出现滑动冲突,地图无法滑动的情况. 二.期望结果 焦点在地图上时,只有地图移动,焦点在地图外部时,可以滑动scrollview. 三.解决方法 自定 ...
- 08 Spring框架的概念、优势、体系结构、耦合性和IOC(反转控制)
1.spring介绍 Spring 是分层的 Java SE/EE 应用 full-stack 轻量级开源框架,以 IoC(Inverse Of Control: 反转控制)和 AOP(Aspect ...
- 完全卸载MySQL服务
1.控制面板——>所有控制面板项——>程序和功能,卸载mysql server! 2.删除MySQL文件,尤其是ProgramData里面的隐藏文件MySQL,我当时没有删除,重新安装My ...
- Prometheus入门到放弃(5)之AlertManager部署
alertmanager与exporters.cadvisor一样,都是独立于prometheus项目,这里我们也使用docker方式部署alertmanager. 1.下载镜像 镜像地址:https ...
- Python中的int函数
python帮组文档 class int(x, base=10) Return an integer object constructed from a number or string x, or ...
- python模块知识四 包和logging日志
11.包 包:文件夹下具有__init__.py文件就是一个包,包用来管理多个模块 包的结构如下: bake ├── __init__.py ├── api ├── __init__.py ├── p ...
- Python属性的查找顺序
属性查找顺序 关于属性描述符请看上文>属性描述符 在梳理属性查找相关知识时,查看了很多的书籍和他人的博客,发现很多讲的过于抽象,并没有一个清晰的流程呈现.特此写下我对于此方面的理解和总结. ...