一、小白剧场小白:东哥|警惕!钓鱼WI-FI可能让手机变“砖头” | 大东话安全

一、小白剧场
小白:东哥 , 麻烦你帮我看看 , 我的代码总是报错 , 但是又找不着原因 。
大东:哦?在学C语言呐 , 好的我帮你看一下 。
小白:刚学没多久 , 要是犯了低级错误你可别笑话我 。
大东:不怪你 , 别说初学者 , 老程序员都还会犯错呢……bug找着了 , 你看一下这个文件路径 。
小白:嗯?没错啊 。
大东:但D:estihao.txt是不能直接放在双引号里面的 , 你忘了C语言有转义字符这一说了吗?“”实际上代表的是tab键 , “”则代表换行 。
小白:啊我想起来了 , 谢谢东哥 , 在“”前面再加一个“”进行转义就好了 。
大东:吃一堑长一智 , 下次别犯这种错误啦 。
小白:嗯嗯 , 谨记东哥教导 。
大东:说到这儿 , 我想起来之前被曝出的一个bug , 其存在的原因跟你遇到情况类似 。
小白:哈哈 , 还有跟我有相同问题的人呀 , 东哥快说说看吧!
二、话说事件
大东:一位逆向工程师CarlSchou在推特上说 , 他用手机连接个人热点“%p%s%s%s%n”时发现 , 一旦连接了该热点 , Wi-Fi功能就会无法开启 , 手机的部分功能也无法使用 , 每次尝试开启 , 系统都会迅速将其关闭 , 重启手机或重新命名热点也无济于事 。
一、小白剧场小白:东哥|警惕!钓鱼WI-FI可能让手机变“砖头” | 大东话安全
文章图片
CarlShou推特的内容(图片来自网络)
小白:糟了 , 我也是同款手机 , 不会也有这个漏洞吧?
大东:当时他使用的是较低的系统版本 , 但他也注意到 , 该问题在最新的版本上也存在 。
小白:还好 , 我手机不是这两个版本的 。 不过一个小小的字符串怎么会引发Wi-Fi等功能崩溃呢?
大东:此款手机系统最底层的语言是C语言 , 你不是在学C语言吗 , 你看看这个百分号眼熟不?
小白:难道是……格式控制符?在C语言的输入和输出中 , 常常用%加特定数字和字母控制字符格式 , 回到刚才说的这串字符 , %p代表输出指针 , %s代表输出字符串 , %n的含义稍微复杂一些 , 代表输出%n之前的字符长度 。
大东:没错 , 操作系统会将未经过滤的Wi-Fi名称传递给一些执行格式化字符串的内部库 , 这个普通字符串最终被当成特殊字符串处理 , 引发了系统错误 , 操作系统的看门狗随即终止该进程 , 导致Wi-Fi等功能禁用 。 实际上 , 操作系统的错误日志记录下了这个错误 。
一、小白剧场小白:东哥|警惕!钓鱼WI-FI可能让手机变“砖头” | 大东话安全
文章图片
操作系统错误日志(图片来自网络)
小白:那这个问题的最终的解决办法是什么呢?
大东:其实解决方法并不复杂 , 用户只要把手机的网络设定用手动的方式重新设置即可 。 操作路径为:设置-->通用-->还原-->还原网络设置 。 网络还原完成后手机就会恢复正常 , 这样做只会让其“忘记”之前保存的Wi-Fi密码 , 其他不受影响 。
小白:以前连过的Wi-Fi不能自动连接了 , 还得再输入一次密码 , 也怪麻烦的 。
三、大话始末
大东:虽然如此 , Carl发布的消息还是激起了大家的好奇心 , 大家纷纷效仿 。 不过也有人反应刚才说的办法行不通 , 需要重刷手机操作系统才能够解决 。
小白:啊 , 这样的话付出的代价就有点大了 。 最后相关公司补好这个漏洞了吗?
大东:安全研究员已经把这一安全错误上报给相关公司 , 预计会在下一版本的系统更新中修正这项错误 。
小白:不过话说回来 , Carl怎么会想到把Wi-Fi名称设得如此奇怪?
大东:人家可不是闲着没事干 , 他只是用这种方式来寻找所有存在问题的设备 。

经验总结扩展阅读