用NBSI2破解电影网站会员账号

网络通信

  近日,笔者正在学习NBSI2的使用,在网上闲逛时偶遇某电影网站,决定拿它来练练手。你可别以为破解电影网站是什么高深莫测的功夫,其实很简单。今天笔者就详细地向你介绍方法和步骤。

  本文也要提醒一下某些网管,所谓“千里之堤,溃于蚁穴”,SQL Injection这种漏洞在网上极为普遍,通常是由于程序员对注入不了解,或者程序过滤不严格,或者某个参数忘记检查导致,一不小心就可能因为某个参数导致整个服务器瘫痪。

  “工欲善其事,必先利其器”,今天的主角就是NBSI2 (NBSI是网站漏洞检测工具,可以用作ASP注入漏洞检测,特别是在对SQL Server注入检测方面有极高的准确率)。该工具是由NB联盟小组开发的超级SQL注入分析器。

  当然要破解的电影网站应该是ASP程序的,这样才有SQL Injection存在的可能。

  SQL Injection可以说是一种漏洞,也可以说成是一种攻击方法,对程序中的变量处理不当,对用户提交的数据过滤不足,都可能产生这个漏洞。而攻击原理就是利用用户提交可修改的数据,把想要的SQL语句插入到系统实际SQL语句中,轻则获得敏感的信息,重则控制服务器。

  SQL Injection并不仅仅局限在MYSQL数据库中,在Access、MYSQL、ORACLE、Sybase中都可以进行SQL Injection攻击。 在大多数ASP站点中,我们并不知道其程序代码,靠任何扫描器也不可能发现SQL Injection漏洞,这时就要靠手工检测了。由于我们执行SQL语句要用到单引号、分号、逗号、冒号等,所以我们就在可修改的URL后加上以上符号,或在表单中的文本框加上这些符号。

  1.首先要确定是否存在漏洞。打开网站随便点击某个页面,例如http://www.cpcwtest.com/movie.asp?id=4378,我们在这个地址后面加个单引号,提交后看到了什么(图1)?

  2.聪明的你一定知道网站采用的是SQL Server数据库。当然有些网站是把单引号过滤掉的,这样你用单引号测试是测试不到注入点的。那么我们就应该用经典的1=1,2=2测试法了。简单地说就是在其地址后面加and 1=1和and 2=2,提交后用和原地址的区别来判断,例如:

  http://www.cpcwtest.com/movie.asp?id=4378 and 1=1

  http://www.cpcwtest.com/movie.asp?id=4378 and 2=2

  3.可以注入的表现是加上and 1=1后和原地址基本相同,加上and 2=2后提示BOF或EOF(程序没做任何判断时),或提示找不到记录(判断了rs.eof时),或显示内容为空(程序加了on error resume next)。了解了原理和判断方法,Let’s go。

  4. 拿起NBSI2开工。在注入地址上添上http://www.cpcwtest.com/movie.asp?id=4378并点击检测,如图2所示;然后点击猜解表名,会出来很多网站的表名,在已经猜解出来的表名里点USER,再点猜解列表,会出现一些列表,然后选择一个Userid和Password,点击自动猜解,这样就能得到网站会员的账号和密码了,如图3所示。

  其实我们本文入侵利用的就是SQL Injiection这个漏洞。首先利用网站程序漏洞结合注入利器NBSI2拿到会员账号和管理员账号,从而拿到整个网站的Webshell,然后再开启Telnet和3389进而拿下其网站服务器。