web:
签到:,更改学号,找规律,用笔记本记录出现的数据。
我太喜欢哔哩哔哩大学啦--中北大学:就往下面翻找flag,就会看见一个flag的语句,这个就是答案。
ezgame-浙江师范大学:这个就是一个简单的卡牌游戏,直接玩通关就可以。
pwn:
welcomeUNCTF2022-云南警官学院:用file命令查看附件格式,可知道这是32位文件,用32位的ida打开,进行静态分析,pwn的题目的基本思路,首先看main函数,然后进行f5反编译,看c语言伪代码,发现这main函数就只有一个func函数的调用,就没有其他东西了,然后我们点进func函数看看,
发现func函数里面调用了strcpy()函数,百度了一下,知道了strcpy()函数是初始化函数,是将后面的字符初始化给s2,就相当于s2=后面的字符。然后看见gets函数,由于看见gets函数容易上头我就点进去看了一下,然后发现gets函数并没有什么后门,我有去看了一下是不是需要栈迁移,然后发现根本没用,我就在怀疑是不是这个题不需要溢出,gets函数只是单纯的输入,然后我又看见了if,发现if里有个system函数,我就懂了,原来他是只要符合if,直接就进入后门。看了一下i判断,发现里面有个strcmp()函数,我又百度了一下,知道了strcmp()函数是比较异或,相同时返回0,小于时返回值小于0,大于时大于0,然后看见if判断里面有!,原来是判断是否存在,这里科普一下,0相当于不存在,所以就直接输入s2的值就可以直接出flag了。
石头剪刀布-西华大学:用file命令查看附件格式,可知道这是64位文件,用64位ida打开,静态分析,,看见if要判断v4是不是等于121,发现scanf,知道了v4是我们输入的值,又看见%c,知道了要输入的是字符,然后查了一下ascll表知道了121是y,往下看,又看到了playgame函数,点进去,看见了rand,结合main函数的srand函数,可知这题是考的伪随机数,seed为10,又看了一下题目,还有一个for循环由此可知,是要我们写脚本,胜利100把,接下来就好办了,但是还要注意,我们用file命令发现这是一个elf文件,所以要注意windows和linux产生的伪随机数是不同的,要用linux系统运行脚本,,,得到随机数,接下来看ida,发现if,这就是规则,由此我们得知0胜1,1胜2,2胜0,由这可以写脚本,
#include<stdio.h>
#include<stdlib.h>
int main() {
    int a;
    srand(10);
    for (int i = 0; i < 100; i++) {
        scanf("%d", &a);
        switch (a)
        {
        case 1:printf(" 0"); break;
        case 2:printf(" 1"); break;
        case 0:printf(" 2"); break;
        }
    }
    putchar('\n');
    return 0;
}
运行,获得胜利数据,直接在靶机输入即可获得flag,此题无溢。
Reverse:
whereisyourkey-广东海洋大学:用file命令查看附件格式,可知道这是32位elf文件,用32位ida打开,f5,发现v5数组输入了字符是ascll值的转换一下vgpkcmhnci,看见printf里面有flag{%s},s,由此可知s数组的字符就是我们要的flag,发现if里有strlen函数,百度了一下,知道是计算字符个数,由此可知是要我们输入十个字符,又发现for循环里有一步计算oooo函数,点进去看看,发现了一步计算,将v5的字符的ascll带进去计算一下得到flag。
ezzzzre-广东海洋大学:打开软件发现要我们输入key,随便输个值,发现会直接关闭,这步就直接忽略,我们先用exeinfope查看一下,发现是64位的pe文件,且加了upx的壳,我们用kali的upx解一下壳,upx -d ezzzzre.exe
用ida打开,f5查看一下伪代码,发现scanf语句,有%s,代表要我们输入一串字符,要我们输入8个字符,看见if语句,有个helloctf[]数组点进去,发现了数组的字符,HELLOCTF,用ascll转换一下通过if语句的计算,获得flag。
Crypto:
md5-1-西南科技大学:在网上找一个md5解码的网站,一句一句的转换,获得flag。
dddd-西南科技大学:摩斯电码,1是. 0是- /是空格
caesar-西南科技大学:去网上找base64的表,结合凯撒密码的特点(偏移字符),偏移量为19,进行转换,即可获得flag。
Misc:
magic_word-西南科技大学:打开文件发现是一种乱码字体,转换一下字体然后复制,https://www.mzy0.com/ctftools/zerowidth1/,进行解密。
社什么社-湖南警察学院:打开压缩包发现是一个txt文件打开发现是一堆#,缩小后发现是一张图片,然后去看了一下出题人的位置是在湖南,就搜了一下湖南的著名景点,找到了近似相同的图片,地点在凤凰古城,然后MD5转换一下,获得flag
找得到我吗-闽南师范大学:这打开文件,发现弹出来一个wps的广告,头名为flag,半信半疑的输了进去,没想到真是,wpsnb。
syslog-浙江师范大学:打开压缩包,发现里面还有一个压缩包,点进去,发现要密码,然后又看见旁边有句话,代表密码在另一个文件里,用记事本打开看看,发现里面有很多字符,查找一下password,发现了密码,感觉很怪,试了一下,发现密码不对,用base64解码,获得密码,得到flag。
巨鱼-河南理工大学:修改了一下宽高,发现密码无所谓我会出手,然后将图片改成zip,输入密码,发现有个flag文件,提交,发现不对,应该不是这个,还有一个压缩包,打开发现是损坏的修复一下,打开发现里面有一个氯苯的图片和一个ppt文件,百度了一下氯苯,发现根本找不到什么有用的信息,就用软件直接爆破了得到密码666,打开后,得到flag,但是发现最下面有一块白的貌似有字,换一下颜色,发现原来这才是flag,出题人真nb。

unctfWP的更多相关文章

  1. Win10 UWP开发:摄像头扫描二维码/一维码功能

    这个示例演示整合了Aran和微软的示例,无需修改即可运行. 支持识别,二维码/一维码,需要在包清单管理器勾选摄像头权限. 首先右键项目引用,打开Nuget包管理器搜索安装:ZXing.Net.Mobi ...

随机推荐

  1. 对线面试官:浅聊一下 Java 虚拟机栈?

    对于 JVM(Java 虚拟机)来说,它有两个非常重要的区域,一个是栈(Java 虚拟机栈),另一个是堆.堆是 JVM 的存储单位,所有的对象和数组都是存储在此区域的:而栈是 JVM 的运行单位,它主 ...

  2. 各种排序算法实现(JAVA)

    转载: https://blog.csdn.net/qq_42453117/article/details/100036347 Exer010Sort01BubbleSortV1  import ja ...

  3. allure环境搭建

    allure环境搭建 在搭建之前你应该有python.pycharm jdk也需要(文中忽略,可以参考网上文档安装,可以用jdk1.8) 以windows为例,mac.linux你用到这些操作系统,这 ...

  4. tomcat8 性能优化参考

    https://www.jianshu.com/p/c770c1e97531 tomcat8 性能优化参考

  5. 笔记本电脑有WIFI,但不可上网

    有时候我们玩电脑时发现连上的WiFi在自己的电脑上不可用,但别人的却好好的,这要怎么办呢? 我们不妨试一试这个方法: 1 打开控制面板 2 点击网络和Internet,点击里面的Internet选项 ...

  6. JZOJ 4299. 【NOIP2015模拟11.2晚】舳舻牌

    题目 思路 倒序 \(DP\) 设 \(f_{i,j}\) 表示 \(A\) 先手,当前 \(A\) 报出的值为 \(i\),\(B\) 报出的值为 \(j\),\(A\) 取诱惑值大于等于 \(i\ ...

  7. JZOJ 3252. 【GDOI三校联考】炸弹

    思路 注:上图只是个例子,其实建图时 \(5\) 是不会连向 \(6\) 的 \(Code\) #include<cstdio> #include<cstring> #incl ...

  8. 在线工具帮助医生在社区转诊时甄别SpA患者

    在线工具帮助医生在社区转诊时甄别SpA患者 Habibi S, et al. Rheumatology 2016. Present ID: 202. 背景:目前已开发了多种转诊策略以优化脊柱关节炎(S ...

  9. Vue框架整理:computed计算属性设置与缓存

    简单的一些小计算可以直接用模板内的表达式计算,比较复杂一点的就建议使用"计算属性来运算了",也方便后期的维护:vue所有的计算属性都以函数的形式写在Vue实例内的computed里 ...

  10. Flutter:StatefulWidget 怎么传参

    定义好一个有状态(或无状态)的组件之后,需要为其传递一些参数,希望组件能够更加灵活使用.那么,在 Flutter 中如何为其传递参数呢? 以下是 StatefulWidget 传递值的步骤,一共三步: ...