(CVE-2018-20056)D-Link DIR-619L&605L 栈溢出漏洞.docx
《(CVE-2018-20056)D-Link DIR-619L&605L 栈溢出漏洞.docx》由会员分享,可在线阅读,更多相关《(CVE-2018-20056)D-Link DIR-619L&605L 栈溢出漏洞.docx(4页珍藏版)》请在第壹文秘上搜索。
1、(CVE-2018-20056) D-Link DIR-619L&605L 栈溢出漏洞一、漏洞简介D-LINK 的 D1R-619L Rev.B 2.06B1 版本之前和 DIR-605L Rev.B 2.12B1 版本之前的 设备,在binboa文件的formLanguage函数中存在缓冲区溢出漏洞,在调用 sprintf函数时没有对参数的长度进行检查,导致远程攻击者可以通过访问http:/ipZgoformZformLanguageChange 并指定 CurrTime 参数实现远程代码执行。固件下载地址:ftp:/二、漏洞影响D-LINK 的 DIR-619L Rev.B 2.06B1
2、版本之前和 DIR-605L Rev.B 2.12B1 版本之前的 设备。三、复现过程漏洞分析在 formLanguageChange 函数中,通过 WebsGetVar 获取 config.i 18n.language, nextPage, CUrrTime 等参数。WebSGetVar 通过 malloc、memcpy 将获取到的参数 返回给 formLanguageChange。formLanguageChange 接下来调用了 SPrintf 危险函 数向IOCaLf8变量中读入参数内容,并在下一步WebsRedirect使用了 localJ8作为 参数。void formLangua
3、geChange(undefined4 uParml)(int iVarl;char *pcVar2;undefined4 UVar3;FILE *_stream;char *_si;char local_f8 200;char acStack48 24;undefined4 local_18;int local_14;_si = (char *)websGetVar(uParmlconfig.il8n-languagejSDAT_004ac87 4)apmib_set(0x129,&local_18);_si = (char *)websGetVar(uParml ,nextPage,jSD
4、AT_004ac874);if (*_sl = 0) Var3 = WebSGetVar(UParmIJclIrrTime”,&DAT_004ac874);获取 currTime参数 else si = /index.asp;sprintf (Iocal-f8j %sPt=%s,_sl,uVar3);危险函数 sprintf 直接读入字符 LAB_00460b34:WebsRedirect(uParml,local_f8);return;)WebSRedireCt主要调用send_r_moved_perm,这个函数调用了两次危险函数 sprintf,分另IJ 向 acStack224(sp+0
5、xl9f8-0xe0)fll acStack480(sp+0xl9f8-0xle0) 输入字符。undefined4 websRedirect(int iParml,char *pcParm2) (char *pcVarl;*(undefined4 *)(iParml + 0x50) = 0;pcVarl = strstr(pcParm2japply-setting.asp);if (pcVarl != (char *)0x0) apply_setting_redirect = apply_setting_redirect + 1;)send_r_moved_perm(iParml,pcPar
6、m2);return 0;void send_r_moved_perm(int iParmlchar *pcParm2)(undefined4 uVarl;char *pcVar2;undefined auStack6624 6144;char acStack480 256;char acStack224 200;if (pcVar2 = (char *)0x0) if (*pcParm2 = /) pcParm2 = pcParm2 + 1;sprintf(acStack224,http:/%s%s?*(undefined4 *)(iParml + 0x70)jpc Parm2);pcPar
7、m2 = acStack224;sprintf(acStack4804rnttThis document has moved to a new location.rnttPlease update your documents t o reflect the newlocation.rnttrn”jpcParm2);.sreturn;)通过第二两个SPrintf修改返回地址,构造ROP链,导致程序控制流被劫持。(也 可以通过两个sprintf的配合来实现栈的迁移,漏洞作者是这么实现的)漏洞复现pocimport requestsimport sysimport structfrom pwn i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CVE-2018-20056D-Link DIR-619L&605L 栈溢出漏洞 CVE 2018 20056 Link DIR 619 605 溢出 漏洞