p32
  • 2024-06-18BUUCTF PWN
    ripchecksec分析一下,发现没有开NX,PIE。栈段可执行,还有RWX的段看了一下main函数存在栈溢出,然后有一个fun函数很奇怪跟进看一下,发现是后门,很简单的ret2text,但是做64位题的时候要注意堆栈平衡frompwnimport*#io=process('./pwn1')io=remote("node5.buuoj.cn",25429)
  • 2024-06-17用动态链接动态泄露system地址并利用
    已知libc库的情况在动态编译的程序中,如果没有对system函数的直接调用,在plt中就不会存在system函数,也就是不能直接知道system函数的地址在解决动态编译的二进制文件之前,需要了解动态链接的基础知识,这个过程叫作lzy-binding。程序对外部函数的调用要求在生成可执行文件时将外部函
  • 2024-06-16编写多个函数的ROP链
    我们已经学会了编写单个和两个简单函数的ROP链,在这里我们说一下,编写ROP链多个需要注意的问题之前我们在学习两个函数的ROP时,编写了这样的payload我们当时没有考虑,参数冲突和栈溢出大小,现在我们来说一说举个例子,如果我们上次学习的两个函数的ROP中没有gets函数,而是read函数我们
  • 2024-06-04[Black Watch 入群题]PWN 1
    frompwnimport*fromLibcSearcherimport*#p=remote('node4.buuoj.cn',25986)p=process('./a')context(arch='i386',os='linux',log_level='debug')e=ELF('./a')level_ret_addr=0x08048511bss_add
  • 2024-05-18CTFshow pwn075
    CTFshowpwn075题目描述:栈空间不够怎么办?首先检查保护:32位开启NX保护,部分开启RELRO,放入ida中看有两次输入点,输入只能到返回地址,所以考虑用到栈迁移exp:frompwnimport*p=remote("pwn.challenge.ctf.show",28276)elf=ELF("./pwn75")#p=process([elf.path])#l
  • 2024-05-11buuctf-pwn-ciscn_2019_es_2
    checksecida我们看到在vul函数中,有两个read函数,每个都读取了0x30(48)大小的字符,并放入字符数组s中,也就是说我们能溢出的只有8个字节,刚好覆盖到ebp和返回地址所以我们需要栈迁移,使我们能溢出更多字节首先利用第一个read,输入40字节的数据,刚好覆盖到ebp,然后printf就会顺带打印
  • 2024-05-08buuctf-pwn-[OGeek2019]babyrop
    查看一下保护情况丢进ida里分析主函数调用了一个含有alarm的函数,这个函数会设置一个定时器,到时间自动退出程序为了方便调试,我们直接patch掉这个函数接着分析,主函数读入了一个随机数,并将其传入sub_804871F函数sub_804871F函数读取输入,并检查输入的是否和随机数相同,不相同
  • 2024-03-22GOT表和PLT表
    GOT表和PLT表一.引入目地操作系统通常使用动态链接的方法来提高程序运行的效率。在动态链接的情况下,程序加载的时候并不会把链接库中所有函数都一起加载进来,而是程序执行的时候按需加载,如果有函数并没有被调用,那么它就不会在程序生命中被加载进来。这样的设计就能提高程序运行
  • 2024-03-07CTFshow pwn49
    Pwnmprotect()函数以CTFshowpwn49为例。学习mprotect函数mprotect函数可以将内存权限进行修改为可读可写可执行。intmprotect(constvoid*start,size_tlen,intprot);mprotect()函数把自start开始的、长度为len的内存区的保护属性修改为prot指定的值。一般prot直接修
  • 2024-03-04CTFshow pwn47-48
    CTFshowpwn47-48ret2libc的两道简单练习。还是很不熟练。pwn47已经给出了\bin\sh的字符串,还有输出了许多函数的地址,所以很容易拿到libc。frompwnimport*fromLibcSearcherimport*context(os='linux',arch='i386',log_level='debug')io=remote("pwn.challe
  • 2024-02-14迟来的HIT2024和reaworld2024体验赛WP
    目录前言碎语2024.2.14中午rwctf2024体验赛vision哈工大青训营2024结营赛计算器小技巧神奇玩意gdb!再也不用苦哈哈往回翻跟踪fork赛后复现rwpwnhttp搜索字符串,github找源码具体构造GET路径穿越POST栈溢出构造ROP前言碎语2024.2.14中午过年玩也玩了,休息也休息了,终于把之前
  • 2024-01-19CTF学习记录pwn篇
    作为一个CTF初学者,在这里记录自己学习刷题的过程,不定期更新。此为pwn篇,有关pwn方向的题目会放在这里,目前来说,这篇会主要更新,其他方向也许会有,敬请期待。目录一、formatstring1.[HUBUCTF2022新生赛]fmt-NSSCTF2.test_format-PolarD&N二、ROP1.03ret2syscall_32-PolarD&N
  • 2024-01-16xdctf2015_pwn200
    xdctf2015_pwn20032位泄露了ibcmain函数中输入vuln函数中存在溢出漏洞非常常规的泄露libc,直接上代码frompwnimport*elf=ELF('./bof')Lib=ELF('/lib/i386-linux-gnu/libc.so.6')io=process('./bof')padding=b'A'*112payload1=padding+
  • 2023-12-31ciscn_2019_es_2
    ciscn_2019_es_2栈迁移read()存在溢出,但是只有0x30个位置不能拿到shell,所以考虑栈迁移通过泄露参数s在栈上的位置,将payload写入栈上迁移栈到参数s的位置,运行写入的payload拿到shellleaved=>movesp,ebppopebp#清除栈帧,初始化到执行前的样子ret=>popeipj
  • 2023-12-30铁人三项(第五赛区)_2018_rop
    铁人三项(第五赛区)_2018_rop函数参数劫持32位泄露libcfrompwnimport*context.log_level='debug'#io=gdb.debug('./2018_rop','break*0x8048474')io=process('./2018_rop')elf=ELF('./2018_rop')Lib=ELF('
  • 2023-12-30PicoCTF_2018_rop_chain
    PicoCTF_2018_rop_chain函数参数劫持整数型绕过\x00绕过len()函数vuln中存在栈溢出flag是后门函数,只要满足win1&&win2和a1=0xDEADBAAD就可以得到flag3.win1&win2存在于.bss段上,但是可以利用win_function1&win_function2两个函数构造win1win2fro
  • 2023-12-30pwn2_sctf_2016
    pwn2_sctf_2016lib地址泄露vuln()程序对输入的v2做了限制首先要利用整数绕过if(v2>32)的限制程序中没有现成的shell所以要通过printf泄露lib手动构造shellfrompwnimport*context.log_level='debug'io=process('./pwn2_sctf_2016')#io=gdb.debug('./
  • 2023-12-30jarvisoj_level3
    jarvisoj_level3函数参数劫持32位泄露libc32位程序的传参是栈的后四位开始,要注意的是,32位下write,put的ret位置是紧跟函数后面的payload1=b'A'*(0x88+0x4)+p32(elf.plt['write'])+p32(elf.sym['main'])+p32(1)+p32(elf.got['write'])+p32(4)这段代码中的p32(elf.sy
  • 2023-11-27BUU get_started_3dsctf_2016
    先checksec一下32位程序,没开PIE,再观察一下主函数gets函数有可能是栈溢出,再观察一下后门函数方法一:考虑栈溢出后直接跳转到if判断后面的语句,进而跳过if条件判断frompwnimport*#p=process('/home/miyu/Desktop/PWN/111/get_started_3dsctf_2016')#context.log_level
  • 2023-11-22buu第二页
    2、wustctf2020_getshell32位,NX保护,RELEO半开 gdb动态调试一下,是一道简单的栈溢出Exp:fromstructimportpackfromLibcSearcherimport*frompwnimport*#context(os='linux',arch='amd64',log_level='debug')context(os='linux',arch=�
  • 2023-11-22HWS山大专区PWN双一血 & CRYPTO-WP
    2023.11.18两天半的比赛,就打了半天(因为要赶去打香山杯决赛了),不过结果还算好,人生第一次拿了两个一血hhh。写wp的时候人在中大南校北门的酒店里:)controller格式化字符串泄露canary之后打ret2libc即可。fromevilbladeimport*context(os='linux',arch='amd64')context(os=
  • 2023-08-08 铁人三项(第五赛区)_2018_rop
    铁人三项(第五赛区)_2018_rop经典ret2libc3expfrompwnimport*fromLibcSearcherimport*context(os='linux',arch='i386',log_level='debug')#p=process('./pwn')p=remote('node4.buuoj.cn',28146)elf=ELF
  • 2023-08-01 Java面试题 P32:数据库篇:MySql篇-MySql优化-索引-索引创建原则有哪些?
             
  • 2023-07-28not_the_same_3dsctf_2016
    0X01和get_started_3dsctf_2016类似大概思路是先控制程序流到get_secret函数读取flag到f14g变量,再控制返回地址为write函数输出f14g变量的内容frompwnimport*p=remote("node4.buuoj.cn",25684)elf=ELF(./not_the_same_3dsctf_2016)write_addr=elf.sym['write']
  • 2023-07-28get_started_3dsctf_2016
    0x00最近持续学习栈溢出,努力熟悉各种利用方法,争取这周和下周把栈溢出这块结束发现自己的WP好久没有更新了,BUUCTF也攒了好多于是,为了让自己更进一步熟悉栈溢出攻击,温故知新,同时方便自己查找(希望不是浪费时间),WP补完计划,启动!(我可不是看了孙导的奖励临时起意的)0x01IDA分析``