危险漫步博客
新鲜的“黑客思维”就是从全新的角度看待黑客技术,从更高的层面去思考;专注于黑客精神及技术交流分享的独立博客。
文章2307 浏览22311257

当工具遇到长度瓶颈时

一、明小子和啊D——因“长度”而失败

那天受朋友之托去搞一个“简单”的网站,说它简单是真的,因为网站的页面个数是屈指可数的,而且都是静态的html;说它“简单”也是真的,因为要搞定这样“简单”的网站其实是不简单的,人家提供的服务越少,安全性能就相对越高(起码我们“下嘴”的机会少得可怜)。废话不多说了,我粗略地一看是这种情况,立刻想到了“旁注”,于是赶紧拿到114best上进行同IP地址多网站的查询,结果发现有30个网站与目标在同一IP服务器上,看来希望很大哈。都说企业网站比较好搞,于是我就从中挑选了一个xx有限公司作为间接目标,打开一看,非常标准的企业网站格式,点击“Products”(产品)中的第一个图片,它是asp的,完全是标准的注入格式。立刻复制一下,粘贴到“明小子”中进行“SQL注入猜解检测”——“恭喜,该URL可以注入!数据库类型:Access数据库。”先是暴出四个数据库,选中admin;又暴出两个表:username、password;可惜啊,在最后一步列名的猜解过程中,明小子“缴枪”了,提示“列名长度大于50,猜解失败!”。又重新检测了一回,结果依旧,换工具吧,用啊D,结果开始的“检测表段”、“检测字段”也算正常,admin数据库和username、password表都暴出来了,到最后的列名检测也卡壳了,提示“检测指定内容长度失败!”。

二、后台尝试登录,失败

危险漫步以前可从未遇到过这样的问题——明明已经探测到目标存在注入漏洞,而且数据库类型、名称及表名都成为已知条件,但却无法暴出账号和密码。明小子和啊D都是很长时间未升级了,最近自己的技术也没什么新的长进,怎么办呢?面对这两个经典工具无法突破的“长度”瓶颈,危险漫步并没有放弃,而是仔细地观察这两个中途“停摆”的检测结果,又发现了一条很有价值的信息——明小子提示“共有1条记录”,啊D提示“检测内容(1/1)”,说明目标网站的数据库中极有可能只有一条管理员账号记录。嗯,再跑一下后台吧,打开一看,我狂晕!为什么呢?人家竟然在“管理员”和“密码”输入框的下面非常显眼地提示:“管理员与密码皆为:admin”!这可是危险漫步“出道”以来从未遇到的好事啊!不过,究竟是否有效还得验证之后才说,果然,用“admin/admin”尝试登录时被告知“对不起,登陆失败!”。

晕,怎么能这样骗人呢?又试了几个“admin888、123456、or=之类的弱口令和万能密码,均以失败告终。

三、开始手工注入之旅

还是向Google大叔求助吧,很多朋友都说要碰到这样工具不给力的情况要手工注入才行。因为之前只是听说和粗浅地浏览过手工注入,注入检测工具的便利操作和思想上的懒惰已经完全取代了手工注入,废话少说,开始手工注入。

1 先用手工注入来验证一下明小子和啊D猜解出的内容是否正确:

admin表的验证

在360浏览器地址栏中构造进行访问,返回的信息与访问的没什么两样,说明目标网站的确像工具检测的结果一样,存在着admin表。

2 再来进行手工猜解字段长度、账号名称和密码:

(1) usemame字段长度的手工注入猜解  根据经验,绝大多数网站的管理登录账号都是“admin”这5个字母,因此可以直接先来猜解验证其长度是否为5。构造进行访问,结果返回正常页面,说明username字段的长度的确是5。如果返回错误信息的话,可以将最后的“=5”用“>6”和“<9”之类的字符串来代替,从而将username字段的长度快速限定在某范围内,最终得到其确切的长度。

(2) password字段长度的手工注入猜解  账号的登录密码如果是明文的话,其长度一般都是6位、8位的比较多,可以逐渐来进行手工注入猜解:如果是MD5密码的话,一般就是16位或是32位,可以很快就锁定,而且这种几率比较高。先进行访问,返回正常页面,说明password字段的长度是大于8的,是16位MD5密码的可能性很大。

四、后记

到最给力的MD5破解网站上,将密码粘贴到“请输入需要加密或解密的数值”输入框中,点击“加/解密”按钮,破解结果出来了,是“cccccc”。然后,就没有然后了,你懂的——后台登录、上传JPG格式的ASP木马、备份数据库、拿WebShell、提权……不啰嗦了吧。从工具的中途失利,到手工注入的柳暗花明,我的最深体会就是——“当你感到走投无路的时候,千万不要放弃;想想,再想想,在前进的道路上再迈进一小步;或许,迈出这看似艰难的一小步就是上台阶的一大步。”在这次入侵过程中,如果明小子或啊D直接给力地暴出admin账号和MD5密码的话,就没有我这次的进步了。或许,这就是传说中的塞翁失马吧?