gethostbyname_r01库函数问题分析文档

gethostbyname_r01库函数问题分析文档

ID:35478007

大小:103.79 KB

页数:7页

时间:2019-03-25

gethostbyname_r01库函数问题分析文档_第1页
gethostbyname_r01库函数问题分析文档_第2页
gethostbyname_r01库函数问题分析文档_第3页
gethostbyname_r01库函数问题分析文档_第4页
gethostbyname_r01库函数问题分析文档_第5页
资源描述:

《gethostbyname_r01库函数问题分析文档》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Gethostbyname」问题分析文档测试用例代码0033003700400042004?0044000470004800049000500005100052000530005400055000560005700058000590006000061000620006300064staticstruct{charbuffer[1024];charcanary[sizeof(CANARY)];':teny={^buffer",CANARYr};char-TCIDwgethostbyname_r01n;intTST_TOTAL=1;mtmain(intac,cha

2、rw*av){——intla;tst_parse_opts(acfav#NULL,NULL);setup();for(lc=0;TESTLOOPING(lc);lc**)tst_count=0;check^vulnerable();}tst_exit();}_staticvoidSetup(void){tst_sig(NOFORK,DEF_HANDLER,NULL);TEST^PAUSE;}_00066□Qstaticvoidcheck_vulnerable

3、errno;mrretval;charname[sizeof(temp・buffer)];size^tlen;/**

4、eM,sizeof(temp・buffwr)r^resuIt#&herrno);if(strcmp(tewqp・uanaryzCANARY)!=0){tst^resm(TFAILr'•vulnerable;return;)if(retval=ERANGE){tstresm(TPASS,Fotvulnerable");return;}tst_resm(TFA1L,wgetho3tbyname_r()returned%3,expectedERANGEtst_strermo(retval));}?endcheckvulnerable?测试结果经过测试,会在上述测试用

5、例的88行处打印TFAIL信息,表明该阳函数gethostbyname_r是脆弱的(vulnerable)。代码分析先看测试用例代码逻辑,在check_vulnerable函数中以定义的全局静态结构体变量temp来调用gethostbyname_r库函数retval=gethostbyname_r(nameF&resbuf,temp.bufferfsizeof(temp・buffer)f&result^&herrnc);其中temp的值为staticstruct{charbuffer[1024];charcanary;sizeof(CAI^ARY):;}tem

6、p={”buffer”,CANARYr};比较來判断if(strcn^j(temp.canary,CANARY)!=0)tst_resm(TFAILr^vulnerable11);return;)1因为是以temp来调用的gethostbyname_r,所以预期的temp变量中的canary(ft应该为初值CANARY(in_the_coal_mine),实际的结果是temp.canary值在调用之后被改写,与初始值不同。接着从glibc库中的库函数实现源代码中來分析该成员变量被改写的原因。使川的是glibc2.5库版本。在glibc库中的digits_dot

7、s.c中有个函数—nss_hostname_digits_dots,而调用该函数的代码中,都会以•个宏为询捉#ifdefhandle_digits_dotsI,而这个宏的定义只有在文件getXXbyYY.c文件中冇,而gethostbyname*函数族在getXXbyYY.c文件中实现,所以只有也只有gethostbyname*函数族才会调用_nss_hostname_digits_dots没有找到关于gethostbyname*函数族的实现,而该函数族的实现乂会条用—nss_hostname_digits_dots,所以來分析该函数的内部实现。00036:i

8、nt_nss_hostname_dig

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。