CWE-122: Heap-based Buffer Overflow
查看自定义信息:
该表显示了与该弱点相关的弱点和高级类别。这些关系定义为childof,parentof,ementof,并深入了解可能存在于较高和较低抽象水平的类似项目。此外,定义了诸如Peerof和Canalsobe之类的关系,以显示用户可能想要探索的类似弱点。
与观点“研究概念”相关(CWE-1000)
该清单显示了可能出现的弱点的可能区域。这些可能适用于特定的命名语言,操作系统,体系结构,范式,技术或一类此类平台。该平台与给定弱点出现在该实例的频率一起列出。
语言 C(不确定的患病率) C ++(不确定的患病率)
该表指定与弱点相关的不同个人后果。该范围确定了违反的应用程序安全区域,而影响描述了如果对手成功利用这一弱点,就会产生负面的技术影响。其可能性提供了有关预期相对于列表中其他后果的特定后果的可能性的信息。例如,可能会利用弱点来实现一定的影响,但很可能会利用它来实现不同的影响。
示例1 虽然缓冲区溢出示例可能很复杂,但可能具有非常简单但仍然可利用的基于堆的缓冲区溢出:
(不良代码)
示例语言:C
#define bufsize 256
int main(int argc,char ** argv){
char *buf; }buf =(char *)malloc(sizeof(char) *bufsize); strcpy(buf,argv [1]); 缓冲区分配给具有固定尺寸的堆内存,但不能保证ARGV [1]中的字符串不会超过此大小并导致溢出。 示例2 此示例将编码过程应用于输入字符串,并将其存储到缓冲区中。
(不良代码)
示例语言:C
char * copy_input(char *user_supplied_string){ }
int i,dst_index; }char *dst_buf = (char*)malloc(4*sizeof(char) * MAX_SIZE); if ( MAX_SIZE <= strlen(user_supplied_string) ){
死(“用户字符串太长,死亡邪恶黑客!”); }dst_index = 0; for(i = 0; i
if('&'== user_supplied_string [i]){
dst_buf [dst_index ++] ='&'; }dst_buf[dst_index++] = 'a'; dst_buf [dst_index ++] ='m'; dst_buf[dst_index++] = 'p'; dst_buf [dst_index ++] =';'; 否则if('<'== user_supplied_string [i]){ /* encode to < */ else dst_buf [dst_index ++] = user_supplied_string [i]; 返回dst_buf; 程序员试图在用户控制的字符串中编码AMPERS和字符,但是在应用编码过程之前验证了字符串的长度。此外,程序员假设编码扩展只会将给定字符扩展为4倍,而anmpersand的编码则以5。攻击者提供了许多&aspers的字符串。
此成员关系表显示了其他CWE类别和视图,将此弱点称为成员。该信息通常可用于理解弱点适合外部信息源的何处。
提供更多信息 - 请选择其他过滤器。
|
使用共同弱点枚举(CWE)和本网站的相关参考使用条款。CWE由美国国土安全部(DHS)网络安全和基础设施安全局(CISA),由国土安全系统工程和开发研究所(HSSEDI) which is operated bymanbetx客户端首页(MITER)。版权所有©2006–2022,Miter Comanbetx客户端首页rporation。CWE,CWSS,CWRAF和CWE徽标是Miter Corporation的商标。manbetx客户端首页 |