有些古老网站,或者一些新手程序员所开发的页面,都可能存在sql注入漏洞,甚至漏洞直接出现在登陆页面,导致不需要账号密码也可以成功登陆后台,进行管理员操作。
以下通过google hacking来实现此漏洞的简单利用,此操作需要google搜索,这对于很多朋友来说是一堵难以逾越的墙。
因此,按照惯例,会在文末提供笔者自己搭建的测试网站供有兴趣的朋友操作,换句话说,黑我的网站是合法的。 本文以尽力对新手友好的展现过程来讲解基本原理,高手和百事通请避免观看,以免徒耗时间。
首先打开google,在搜索栏输入adminlogin.asp
利用google hacking可以直接搜索出很多可能存在漏洞的攻击点,比如此处的adminlogin.asp,将会搜索出大量asp网站的后台登陆页面,类似的搜索字符还可以有admin_login.asp,admin.asp,logon.asp,admin/login.asp等等,如下图所示:
其中一些古老的网站,如上图中红框所示页面,经过测试,就存在着注入漏洞,打开后,出现后台登陆页面:
账号与密码输入相同的注入字符串
点击登陆后,成功登陆后台:
那么注入字符串
达到目的的过程是怎么样的?
可以猜测,登陆过程中,后台检测账号密码,最简单的sql语句为:
通过直接查询数据库中用户名和密码验证,正常输入正确的用户名和密码后,经过验证便可正常登陆,然而,一旦后台没有过滤单引号空格之类的特殊符号,那么,如
这样的字符串,带入上面的sql语句中的xx和yy后,就变成了
由于
令筛选条件成立,始终都会查询到数据,便登陆成功了。
在此网站后台中,可以添加新闻页,更改新闻页,修改管理员账号密码,如下图所示:
其中的上传图片功能,便是上传木马的输入点,但遗憾的是,服务端写权限被关掉了,无法成功上传,这应该是网站管理者做的,但也可能是黑客干的,因为这样的网站早已经被无数黑客入侵过了,比如最新这条添加的新闻,便是在笔者操作过程中最近3分钟内被其他黑客加进去的,说明了黑客在这个网站的活跃程度
于开发者在后台编写的代码不同,便有不同的注入语句。
例如,后台sql语句有可能是:
从前例中的单引号变为双引号,此时的注入语句就应该变为
后台sql语句有可能是:
在前例基础上加了括号,此时注入语句应该变为
最终语句变为
同样,当后台使用双引号时,此处注入语句需要随后台改为双引号。
后台sql语句有可能是:
有时候后台开发者可能会在筛选条件后再加入其他子语句,例如这里的没有意义的排序,这时就需要在注入语句后加入注释符号,并且可能只能在username或password中的一个里面加入注释符号,变为
或
总之,随着后台语句的不同,注入语句也会产生不同的变体,这需要黑客对sql语句有一定的了解。
但所有的一切,都建立在网站存在sql注入漏洞的基础上,当确定一个网站的登陆页面存在注入漏洞时,就可以一个一个组合着去试。
操作页面:
http://bugs.hackyjs.com/sqlinjection/select/login1.php
另外附一种挑战性的注入,有兴趣的朋友可以尝试:
http://bugs.hackyjs.com/sqlinjection/select/login2.php
领取专属 10元无门槛券
私享最新 技术干货