int_overflow 攻防世界
file checksec

ida32,进入login

输入一个用户名,再输入一个passwd,都无法直接栈溢出,进入check_passwd

发现v3是输入passwd的长度,v3是unsigned __int8类型范围是0~255
如果s的长度超过255,会变为(对s长度取模运算)得到的值。而s的长度不能大于0x199(409),取模后 v3>3&&v3<=8 ,所以输入260个字符就可以绕过if

查字符串可以找到cat flag

通过交叉引用列表可以找到调用system的地址

strcpy(dest,s)时进行溢出

脚本
#!/usr/bin/env python3
from pwn import*
context(os="linux",arch="i386",log_level="debug")
content=1
def main():
if content==0:
io=process("./int_overflow")
else:
io<

这篇博客探讨了整型溢出的概念,通过攻防世界的案例分析了如何利用整型溢出来绕过安全检查。文章提到了在不同场景下,如`checksec`和`r2t3 BUU`,通过控制输入长度来触发溢出,从而影响程序执行。作者还分享了使用ida32和ida64进行逆向工程分析的方法,并提供了相关脚本以辅助理解整型溢出漏洞的利用方式。
最低0.47元/天 解锁文章
6880

被折叠的 条评论
为什么被折叠?



