Q1IQ's blog

Tags · PWN

Home

About

Archives

loading..
PWN

IOFILE题目小结

源码调试要下载源码得先把sources.list的deb-src开头的注释去掉,更新一下 sudo apt-get update sudo apt-get upgrade 下载源码 sudo apt-get source libc6-dev 会报这么一个错,但是不影响用,暂且不管。 W: Can't drop privileges for downloading as file 'glibc_2.23-0ubuntu11.dsc' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied) 在gdb里运行: directory ~/glibc/glibc-2...

Read more
loading..
PWN

vm Pwn题目小结

ez_op题目分析首先根据入口点找到main函数,一般入口点就是IDA里Export窗口的start函数。 可以看到上面main函数的逻辑是: 使用mallocinfo函数为操作数分配空间,为操作码分配空间。 读入操作码至buf中,并将其转换成整数形式保存在opcode中;操作数同理保存在oprand中 进入大循环loop函数,就是本题的虚拟机,后面详细讲解。 使用freeinfo函数释放分配的空间 loop函数就是虚拟机,主要逻辑是一个大循环,每次循环完成一个操作码对应的功能。那么怎么知道每个操作码对应什么功能呢,我觉得对我来说只能慢慢逆向+猜吧。这个题目的功能有save、load、push、pop、加减乘除,最后逆出来的效果就是下面这样: 漏洞点在于load和save都没有检查是否越界..

Read more
loading..
PWN

安洵杯 MIPS wp

题目名字就叫做mips,肯定是mips架构的了。 $ file pwn2 pwn2: ELF 32-bit LSB executable, MIPS, MIPS32 version 1 (SYSV), dynamically linked, interpreter /lib/ld-, not stripped 直接运行程序会显示下面的信息。 搭建环境的目标是:1.能运行题目程序 2.能用python脚本和题目程序进行交互 3.能够调试题目程序 所以要搭环境mipsmip汇编知识https://ray-cp.github.io/archivers/MIPS_Debug_Environment_and_Stack_Overflow#mips-%E6%B1%87%E7%BC%96%E5%9F%BA%E7%A..

Read more
loading..
PWN

湖湘杯 wp

历时12h,两道pwn。比赛如何不评价,默默做题。 HackNote题目有add、delete、edit 啥保护也没开,有问题 edit里平白无故多算一次size,很有问题,可以构造off by 好几个 此外这题的难点还在于这题是静态编译的,shellcode不知道往哪写,我一开始找了几个静态的地方,等我想调用它的时候吧,内容就变了。反正后来就随便找到一40的size位就用上了,是IOFILE前面的地方。 from pwn import * context.log_level = 'debug' context(arch = 'amd64', os = 'linux') shellcode=asm(shellcraft.sh()) debug=1 if d..

Read more
loading..
PWN

how2heap学习小结

本文是自己的一点心得,没有特别地总结整理。 编译找了半天编译的方法,结果突然发现文件夹里有个Makefile,一键make就全编译了,我觉得我就是个憨憨。 first_fitchar* a = malloc(512); 经过对齐后 chunk size 为 0x210 free(a); 后块a被放到 unsorted_bins 中 执行 c = malloc(500); (500+8)经过16字节对齐后 chunk size 为 0x200 ,此时small bins是空的,就从unsorted bins中找,找到了大小为0x210的块a。而0x210 的块切割后剩下的块大小为0x10,小于MINSIZE(0x20),所以不切直接分配。 然后自己测试了一下 c = malloc(512-0x20+8)..

Read more
loading..
PWN

巅峰极客 ichunqiu wp

记录一下巅峰极客的两道pwn,比赛只出了第一道,第二道PWN是赛后复现的,感觉很值得一学,对理解IOFILE很有帮助。 Pwn题目分析保护全开,乍看add、delete、show、change全有 然而仔细一看这个change往块里读的是stream的内容 而stream是fopen("/dev/urandom", "r");得到的fd delete存在UAF add要求块数量<=0xF,大小>0x7F,块的地址必须在[heapbase,heapbase+0x600] show,没什么特别的 利用 泄露libc和heap base 构造overlap改top的size,利用house_of_force在堆基地址分配块,改stream的内容 改st..

Read more
123