黑客实录(3)——网站有密道 潜入无人晓
安全维护
黑客代号:Silic_小雨(简称小雨)
擅长技术:寻找漏洞、密码破解
本期知识点:利用万能密码登录网站后台
故事提要:入侵某服务器删除服务器上保存的所有色情资源,三石哥顺利完成第二个任务。下一个任务就是删除某病毒传播网站中的所有病毒,由于该网站有黑客保护,三石哥请队友小雨帮忙……
“小雨,我叫你半天了,你现在才出来!”三石哥抱怨道。
“昨天研究脚本病毒很晚,怎么了?”小雨精神不振地回应。原来小小给了三石哥第三个任务,这个任务就是入侵某病毒传播网站,将该网站中保存的病毒都删除,该网站是某挂马集团的毒窝,有专门的黑客守护。
三石哥在该网站尝试手工注入时,被守护的黑客发觉,双方交上手,一时间不分胜负。这时,三石哥决定召唤帮手,让擅长寻找漏洞和密码破解的小雨帮忙。
“小雨,我去缠着那个家伙,你来检测这个病毒传播网站,别让我失望!”
“三石哥,我办事你放心!”
发现敏感信息
三石哥如何缠着那位黑客,小雨一点也不担心,他担心的是该网站的安全防护太高,需要耗太多的时间。小雨调出啊D扫描工具,在工具的地址栏中输入目标网址,进行SQL注入点的寻找。
十多分钟过去了,一点收获也没有,中间小雨还换了两款其他扫描工具。“嘿嘿,工具扫描不行,那只能手工进行检测了!”小雨摩拳擦掌。小雨凭借着自己丰富的手工注入经验,在多个页面尝试入侵,结果都不成功。
“这该死的网站过滤做得真好,看来保护该网站的黑客也是一名入侵经验丰富的高手。”小雨暗自念叨。没有办法,小雨不得不针对网站的源代码进行逐句阅读,希望能找到未知的漏洞,然后利用未知漏洞攻陷该网站。
喜剧的事情出现了,小雨在网站的源代码中看到一句关键的代码“<!—login name is qiangujuedui3721-4624 ——>”,这句代码的意思是网站后台登录用户名是“qiangujuedui3721-4624”。
这是怎么回事?怎么会将网站后台登录用户名写入源代码中?这是网站设计者故意留下的误导信息,还是无意中造成的漏洞呢?接着查看源代码,小雨确信这是网站设计者故意留下的“后门”,方便他自己以后进入该网站。
猜解密码
隐藏得很深的网站后台地址在源代码中也找到了,小雨尝试猜测密码,用用户名“qiangujuedui3721-4624”、密码“123456”登录,系统提示“密码错误”,又换了几个常见密码都不成功。
一个密码一个密码地尝试?小雨可没有这个闲工夫,他决定用暴力破解的方式猜解密码,当调查工具暴力破解时,又出现问题,原来此页面有防范暴力破解的措施,看来暴力破解的方法行不通。
“为什么网站设计者只留下用户名?用户名太长了,时间长了他记不住,这说明密码应该比较简单或者是不需要记忆的密码。不需要记忆的密码?不就是后台登录万能密码吗?”小雨想到这里豁然开朗。
小雨填写用户名“qiangujuedui3721-4624 '='or'”(不含双引号)、密码“'or'='or'”(不含双引号),回车后系统返回如下错误信息:
ADODB.Field 错误 '80020009'
BOF 或 EOF 中有一个是"真",或者当前的记录已被删除,所需的操作要求一个当前的记录。
/meme/2/admin/login/logind.asp,行 31
错误信息说明网站管理登录的身份验证有逻辑错误,也就是有漏洞,这也证实了小雨的猜想,网站设计者给自己留下的是万能密码。用户名填写“qiangujuedui3721-4624”(不含双引号),密码填写"'or'='or'"(不含双引号),小雨成功进入后台,查看用户名权限,居然是最高权限,连提权的工作都省下了。小雨不费吹灰之力就删除了网站中的大量病毒,悄然离开……
延伸阅读>>
万能密码为什么能起作用
一般来说,网站会将用户的登录密码放到数据库中,在登录验证时用sql="select * from user where username='"&username&"'and pass='"& pass&'"查询数据库,如果用户提交的用户名和密码跟数据库里面的一样就允许登录,反之则阻止登录。
or是“或者”的意思,也就是说这个或者那个中如果有一个是对的,那么整句话就是对的。所以'or'='or'的意思是,从数据库中查找密码为空且等于空的登录信息,空当然等于空了,这样就绕过了登录限制。这种漏洞在中小网站,特别是中小企业的网站,时常可以找到。