IOT栈溢出常见漏洞函数

本文最后更新于 2023年3月25日 中午

个人挖掘技巧:
从函数列表找漏洞函数-> 按 x 交叉引用 -> 定位漏洞函数

注意输入函数:
输入函数是否支持输入’\x00’?
read(), 输入’\x00’;
gets(),不支持,同时’\n’被转换为’\x00’;
scanf() ;
vscanf() ;

漏洞函数:

gets
–>直接读取一行,到换行符’\n’为止
scanf(“%s”,s)
–>格式化字符串中的%s 不会检查长度
vscanf(“%s”, s)
–>同上
sprintf(s,”echo %s”,str)
–>将格式化后的内容写入缓冲区 s 中,但是不检查缓冲区长度
sscanf(info,”%s”,s)
–>原意是解析读取,会将格式化后的内容写入缓冲区 s 中,但是不检查缓冲区长度
strcpy(dest,src)
–>遇到\x00 停止,不会检查长度,经常容易出现单字节写 0(off by one)溢出
strcat
–>拼接到 dest 末尾


IOT栈溢出常见漏洞函数
https://k3ppf0r.github.io/2023/03/04/IOT安全/IOT栈溢出/
作者
k3ppf0r
发布于
2023年3月4日
许可协议