整数溢出漏洞0xb

头像JC · 提问于2021.08.23浏览量:639

常规checksec,开了NX,FULL RELRO,Canary,没办法shellcode,修改got表。然后IDA打开找漏洞。
具体的漏洞查找方式如下:

全部回答 · 1
最新最热
  • 用户头像
    JC2021.08.23 19:14

    (1)整数转换漏洞: 输入message_length之后将长度返回进行atoi,将atoi的返回值给到下一个输入message的getline。中间用atoi进行了一个字符串转int的操作,而atoi是一个将数字型字符串转成数字的函数,”-1”可以转换为-1。但是getline中read的长度参数是size_t,相当于是unsigned int,是一个无符号数。 而int的表达方式是:0~2147483647(0~0x7fffffff) -2147483648~-1(0x80000000~0xffffffff) unsigned的表达方式是:0~4294967295(0~0xffffffff) 那么int的-1转换成unsigned之后就会变成0xffffffff,从而溢出。 由于程序实现了自定义的pop,push,ret,call等几个控制栈帧的汇编代码,所以这里的漏洞不太好找,汇编不太好的只能先慢慢调试验证猜想是否正确。