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 = ‘00‘
    elif i == 127:
        a = ‘01‘
    elif i == 191:
        a = ‘10‘
    elif i == 255:
        a = ‘11‘
    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了,但是周六周天都有事= =没有做了。

原文地址:https://www.cnblogs.com/xenny/p/12004752.html

时间: 2024-07-30 18:24:38

SWPUCTF 2019总结以及部分WP的相关文章

2019西湖论剑web wp

发在正文前 这应该是自己在安全圈摸爬滚打两年多以来第一次正规的ctf比赛.没解出flag,没截图,只提供了一些思路. 遥想往昔,初入大学,带着对PT的向往,一个人穿行在幽暗的图书馆,翻阅啃读一本本安全书籍(后来事实证明,纯属瞎折腾.在此也表达下对那些无师自通的大??深深的佩服之情),也从网上收集各种pt资源,弃高数而不学,视线代为无物,弱水三千唯爱我PT,虽晦涩难懂,学习过程举步维艰,仍然孜孜不倦,越发寻不得,就越发令我向往,言之痴迷不过. 兜兜转转,踏上起点,已是大二之事,没有多少窃喜,相反偶

2019红帽杯部分wp

xx 程序首先取输入的前4个字符作为xxtea加密的密钥之后进行xxtea加密.接着进行位置置换操作,然后又进行了以3个为一组的异或 首先逆向解出xxtea加密之后的结果 #include<stdio.h> #include<Windows.h> int main() { int count = 0; int b[24]; int a[] = { 0xCE, 0xBC, 0x40, 0x6B, 0x7C, 0x3A, 0x95, 0xC0, 0xEF, 0x9B, 0x20, 0x

2019 上海市大学生网络安全大赛 RE部分WP

这次比赛就做了这一道逆向题,看到队友的WP,下面的对v10的加密方式为RC4,从我提取的v4数组就能够察觉出这是CR4了,自己傻乎乎的用OD调试,跟踪数据半天才做出来,还是见得的少了... ...下面有几篇不错的RC4的文章: C语言实现:https://zhoujianshi.github.io/articles/2016/RC4%E5%8A%A0%E5%AF%86%E7%AE%97%E6%B3%95/index.html Python实现:https://specters.top/2019/

2019 安恒周周练西湖论剑特别版 pwn部分wp

pwn1 考点:构造 shellcode,patch 汇编指令 IDA 查看反汇编,程序的逻辑很简单如,如果 直接 f5 的话 IDA 可能识别不出来函数,问题出在 0x080484CF 这个地方,call eax 指令识别不出来,所以这里可以先 patch 成 nop,之后 f5 就正常了. 程序把输入当成 shellcode 直接来执行,很显然是直接往栈上写 shellcode 了.checksec 检查保护的时候也可以验证这一点. gdb-peda$ checksec CANARY : d

2019全国大学生信息安全竞赛wp(4web)

web1-JustSoso php伪协议获取源码 ?file=php://filter/read=convert.base64-encode/resource=index.php index.php 1 <html> 2 <?php 3 error_reporting(0); 4 $file = $_GET["file"]; 5 $payload = $_GET["payload"]; 6 if(!isset($file)){ 7 echo 'Mi

2019 安洵杯 Re WP

0x01.EasyEncryption 测试文件:https://www.lanzous.com/i7soysb 1.IDA打开 int sub_416560() { int v0; // eax int v1; // edx int v2; // edx int v3; // ecx int v4; // ST08_4 char v6[4]; // [esp+310h] [ebp-7E0h] char Str; // [esp+700h] [ebp-3F0h] int v8; // [esp+

刷题记录:[SUCTF 2019]Pythonginx

目录 刷题记录:[SUCTF 2019]Pythonginx 一.涉及知识点 1. CVE-2019-9636:urlsplit不处理NFKC标准化 2.Nginx重要文件位置 二.解题方法 刷题记录:[SUCTF 2019]Pythonginx 题目复现链接:https://buuoj.cn/challenges 参考链接:2019 SUCTF wp SUCTF_2019_部分复现 一.涉及知识点 1. CVE-2019-9636:urlsplit不处理NFKC标准化 https://bugs

[RoarCTF 2019]simple_uplod

[TOC] [RoarCTF 2019]simple_uplod 题目复现链接:https://buuoj.cn/challenges 参考链接:官方wp 1.ThinkPHP文件上传 参考官方文档可知并没有题目中限制后缀名的方法,所以可以无视allowext http://document.thinkphp.cn/manual_3_2.html#upload 2.upload()多文件上传 upload()函数不传参时为多文件上传,整个$_FILES数组的文件都会上传保存. 题目中只限制了$_

到处抄来的SUCTF2019 web wp

0x01 EasySQL 这是一个考察堆叠注入的题目,但是这道题因为作者的过滤不够完全所以存在非预期解 非预期解 直接构造 *,1 这样构造,最后拼接的查询语句就变成了 select *,1||flag from Flag,可以直接得到当前表中的全部内容,就能够直接获得flag 正常解题 堆叠注入,先构造 1;show tables;#可以得到当前的表信息 并且根据回显,我们可以大致判断查询语句为: ... POST['query']||flag ... 直接构造 1;select * from