轻松打造HTM星号密码查看器
文/图 牵着蜗牛去散步
===================================
不知大家有过这样的Hacking经历吗?当你扫到一堆ADSL Modem成功登录后,查看路由密码时显示的是一排星号密码,当我们尝试用Ctrl+C复制这一串星号密码在粘贴时才发现根本没有复制上,这是因为Windows阻止了我们复制这种星号类型的密码。有时还可能注册了某些网站,登录时使用了自动完成,时间久了忘记原始密码……今天我们要做的就是获取星号密码的原始内容。浏览器中的星号密码是比较特殊的,它的获取原理和Windows程序截然不同,超级兔子的“星号密码探测”功能无法获取密码,因为网页中的星号密码是IE窗体中的元素,普通的软件是无法找到的,这使我萌生了写个小工具解决这类头疼的问题。
最近正好研究浏览器插件,但编写ActiveX插件显得有些麻烦,并且现在的插件有些让人谈虎色变的感觉(其实是我COM太差技术不过关^-^),还是找个实用的方法实现吧。对浏览器使用VBScript脚本控制是再方便不过的事了,简单又强大,而且大家还有ASP基础,做个HTM是不在话下的。
首先我们要考虑如何定位密码框,通过分析VBScript库函数,没有找到像Windows程序那样丰富的函数,最终还是选择了类似迅雷的右键菜单获取鼠标坐标。打开文本编辑器,这里推荐使用UltraEdit,它支持HTM语法高亮显示,毕竟使用记事本不容易看出拼写错误。下面的代码是经过层层精简优化,注释也很详细,大家直接输入就可以使用了。
<Script language="VBScript">
On Error Resume Next 设置错误陷阱
Dim ObjDocument,ObjEvent,ObjElement 声明对象
Set ObjDocument = external.menuArguments.document
使用DOM方式枚举元素
Set ObjEvent = external.menuArguments.event
Set ObjElement=ObjDocument.elementFromPoint(ObjEvent.clientX,ObjEvent.clientY )
通过当前鼠标指针坐标得到网页元素
If ObjElement.type ="password" then
如果网页元素类型为密码框
If ObjElement.value="" then
Alert("获取文本为空")
else
Alert("获取文本为:"+ObjElement.value) 显示密码
End If
End If
</Script>我们保存这段代码为“显示密码.htm”文件,这里我保存在C盘的根目录下。然后打开注册表编辑器(regedit),定位到“HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerMenuExt”分支,单击鼠标右键,在弹出的菜单中新建一个“项”,这里就命名为“查看星号密码”,接着在右边新建一个“字符串值”,值为刚才保存“显示密码”文件的完整路径,即“C:显示密码.htm”,如图1所示。
图1
以上就是浏览器辅助程序即BHO的添加方法。现在在浏览器中单击鼠标右键,就会发现菜单中多出了“查看星号密码”功能选项。为了让大家看清楚实际获取效果,这里我们就用Baidu空间的登录页面测试。在密码输入框中单击鼠标右键,点“查看星号密码”就可以看到成功地获取了输入的真实密码,如图2所示。
图2
使用VBScript程序实现这个功能几乎是最简单的方法了,第一步就是编写VBScript网页,并没有用到复杂的COM技术;第二步就是在注册表中注册BHO对象。制作方法简单高效,大家不妨试一下,对于获取网页中的星号密码实在是屡试不爽啊
补充:综合编程 , 安全编程 ,