您现在的位置是:休闲 >>正文
flash账号密码登录
休闲35791人已围观
简介Flash登录框弹出来的那一秒,我盯着那个灰扑扑的输入框,心里其实很清楚——这玩意儿早就该进博物馆了。但没办法,公司那套老旧的内部培训系统还在用Flash,账号密码登录是唯一的入口。鼠标移到输入框上, ...
Flash登录框弹出来的号密那一秒,我盯着那个灰扑扑的码登输入框,心里其实很清楚——这玩意儿早就该进博物馆了。号密但没办法,码登公司那套老旧的号密内部培训系统还在用Flash,账号密码登录是码登唯一的入口。鼠标移到输入框上,号密光标闪烁的码登频率都带着一股2008年的味道。
账号密码登录,号密听起来简单得不能再简单。码登两个输入框,号密一个提交按钮,码登背后无非是号密拿输入的用户名去数据库里比对一下密码哈希。可真动手去拆Flash的码登登录逻辑,你会发现事情一点都不简单。号密Flash本身不直接操作数据库,它靠的是URLLoader或者navigateToURL把数据发给后端,中间还夹着一层crossdomain.xml的跨域策略。我见过一个系统,登录请求发出去三次才成功一次,原因是策略文件里只写了allow-access-from domain="*.example.com",而实际请求走的是IP地址。这种坑,文档里不会写,只有抓包才能看见。
更麻烦的是密码加密。Flash时代流行过一阵子MD5加盐,盐值硬编码在SWF文件里。反编译工具一跑,盐值就赤裸裸地躺在代码里。我拆过一个培训系统的SWF,盐值是"flash_2009",密码是md5(password + "flash_2009")。这种设计放在今天跟裸奔没区别,但在当年,写代码的人觉得自己挺聪明。登录请求发出去的时候,URLLoader的dataFormat设成URLLoaderDataFormat.TEXT,后端返回一个"ok"或者"fail",整个流程就结束了。没有token,没有session刷新,登录状态靠一个SharedObject存在本地。你清一下浏览器缓存,登录态就没了。
我印象最深的一次,是帮一个客户恢复他们Flash后台的登录。管理员密码忘了,数据库里存的是SHA1哈希,但盐值不知道。我翻了半天SWF,最后在一个叫com.utils.Crypto的类里找到了盐值生成逻辑——它用的是new Date().getTime()的前八位。也就是说,盐值每天变一次。客户说系统是五年前部署的,那盐值就有1825种可能。写了个脚本跑了一遍,三分钟就撞出来了。登录进去一看,后台最后一条操作记录停在2017年。
Flash的账号密码登录还有一个隐蔽的问题:SharedObject默认存在%APPDATA%\Macromedia\Flash Player\#SharedObjects\下面,文件名是一串随机字符。你可以在那里找到.sol文件,用sol Editor打开,里面经常明文存着用户名,有时候连密码都在。我见过一个电商后台的Flash登录,SharedObject里直接写了username:"admin"和password:"admin123"。开发的人大概觉得本地文件没人看。
现在浏览器全面弃用Flash,这些登录框要么被重写成HTML5,要么就彻底消失了。但那些老系统还在跑,用Ruffle或者CleanFlash模拟着运行。你点登录的时候,请求还是发往十年前的服务器,返回的"ok"还是那个"ok"。只是输入框里的光标,闪得越来越慢了。
Tags:
上一篇:知乎的小说哪里可以怎么免费
下一篇:偶像梦幻祭卡面网站
相关文章
afrog漏洞扫描工具下载
休闲GitHub上afrog项目的release页面,就是下载它的唯一正确入口。别去搜什么“官网”,这工具压根没有官方站点,作者只把代码和编译好的二进制文件放在GitHub上。你直接访问github.co ...
【休闲】
阅读更多栈溢出后 如何利用漏洞
休闲攻击者把数据塞进栈缓冲区,直到它溢出,覆盖掉返回地址。这不是什么高深魔法,本质上就是一场精心策划的“地址篡改”游戏。当函数执行完毕,CPU 会跳回那个被改写的地址——如果那里恰好是攻击者布置的 she ...
【休闲】
阅读更多think php5
休闲PHP5时代留下的东西,现在看像老照片。我去年接手一个2013年的电商项目,代码里全是ThinkPHP 3.2的痕迹。那套系统还在跑,每天处理几千单,偶尔报个错,改起来得翻半天文档。说不上多优雅,但 ...
【休闲】
阅读更多