数值有上下限范围,那么就不可避免会出现溢出的情况
以32位int为例,以下有四种溢出
无符号上溢出:0xffffffff+1=0
无符号下溢出:0-1变成0xffffffff
有符号上溢出:有符号正数0x7fffffff+1变成负数0x80000000
无符号下溢出:有符号数0x80000000-1变成正数0x7fffffff
原因:
1.存储位数不够
2.溢出到符号位
整数溢出一般配合别的漏洞来使用
数值有上下限范围,那么就不可避免会出现溢出的情况
以32位int为例,以下有四种溢出
无符号上溢出:0xffffffff+1=0
无符号下溢出:0-1变成0xffffffff
有符号上溢出:有符号正数0x7fffffff+1变成负数0x80000000
无符号下溢出:有符号数0x80000000-1变成正数0x7fffffff
原因:
1.存储位数不够
2.溢出到符号位
整数溢出一般配合别的漏洞来使用