用靶机简单的介绍一下数据库的注入和提权

用靶机简单的介绍一下数据库的注入和提权

先给大家科普一下什么叫计算机靶机。靶机就是网络常说的渗透类测试演练系统,是用虚拟系统软件(例如著名的VMware_workstation软件)做出来的模拟机,这些系统里面包含了一些实际安全漏洞,让安全测试人员亲身体验如何发现并利用这些个漏洞,学习漏洞的相关知识同时,加强安全防护的意识。

SQL数据库注入漏洞以微软的ASP和ASP.NET最为常见,就以最简单的ASP为例给大家讲讲如何判断识别网站系统有没有漏洞和如何入侵。

先介绍一下检测入侵过程的主要几个步骤:

1、 判断并测试ASP系统是否有数据库注入漏洞。

2、 获取数据库的表名。

3、 测试管理员ID。

4、 测试管理员的用户名长度和管理员密码的长度。

5、 从高到底一次测试出管理员用户名和密码。

6、 如果密码是明文,就直接用,如果是MD5加密的,直接导入弱密码文本库破解。

7、 用管理员账号登陆后台

8、 上传网页型控制木马,对服务器实行接管。

9、 现在基本上是你想干什么就可以干什么了。

测试ASP系统是否有注入漏洞 这很关键,我说有经验了可以直接看出来,有人还不信。现在我用模拟机告诉你,真的是很简单。打开ASP网站一个分类网页,比如这样的的/list.asp?id=11和这样/class.asp?id=18等,只要在其后面分别加入and 1=1 和and 1=2进行测试,具体形式为/list.asp?id=11 and 1=1,或者 /list.asp?id=11 and 1=2,注意一定要有空格。都学过数学,1=1肯定是正确的,1=2肯定是错误的。正确的没什么好说的,直接显示正常网页,但是你问服务器1=2是不是正确的,它肯定告诉你是错误的,那显示什么尼?结果是他显示:

Microsoft JET Database Engine 错误 '80040e14'

字符串的语法错误 在查询表达式 'ID=11'' 中。

/list.asp,行8

从这个错误提示我们能看出下面几点:

1. 网站使用的是Access数据库,通过JET引擎连接数据库,而不是通过ODBC。(注:熟悉网站的开发和哪些网站通常使用什么样的数据库。不同的网站连接数据库的方式也要了解。Access和SQLServer是ASP和ASP.NET的标配,所以对数据库的知识也要有一定的理解)

2. 程序没有判断客户端提交的数据是否符合程序要求。

当然了,不一定每台服务器的IIS都返回具体错误提示给客户端,如果程序中加了cint(参数)之类语句的话,SQL注入是不会成功的,但服务器同样会报错,具体提示信息为处理 URL 时服务器上出错。请和系统管理员联络。

如果是这样,那我们怎么办呢?从上面的例子我们可以知道,SQL注入的原理,就是从客户端提交特殊的代码,让服务器报告错误,收集程序及服务器的信息,从而获取你想到得到的资料。用1=2不行,你就用单引号,双引号,这个就涉及到你对SQL语句的了解多少了。

有了手工检测漏洞,大家有个了解了,如果再用手工去测试管理员用户名和密码就很累了,放心,有大神出的sqlmap,在python系统下直接调用源文件sqlmap.py,后面的一切就手到擒来了。

先用他检测一下有漏洞的靶机系统,如图1:

用靶机简单的介绍一下数据库的注入和提权

看到返回了 服务器的类型,web环境,数据库类型。确定存在漏洞我们开始下一步的注入。根据返回的数据库类型我们确定数据库为access数据库。使用--tables 猜解表。如图2:

用靶机简单的介绍一下数据库的注入和提权

用靶机简单的介绍一下数据库的注入和提权

猜解完表格后我们进一步猜解表的内容。命令 : python sqlmap.py -u URL -T admin --columns 注意 暴力破解的线程数 最大为10 ,其他的参数可以直接回车。如图3:

用靶机简单的介绍一下数据库的注入和提权

等待一段时间后,很快程序工作完毕,查看结果。如图4:

用靶机简单的介绍一下数据库的注入和提权

后面的基本没有什么悬念了,如果密码是明文或者MD5加密的弱密码,网上有几个比较好的MD5解码网站,服务器基本上就交出去了。

用靶机简单的介绍一下数据库的注入和提权

打了这么多字,也不是什么高深的技术,只是希望能给大家提高点网络安全意思。我说能看出来大概有数据库注入漏洞,稍加检测就能判断并确认出来,如果非要说这就叫攻击,我也就不想解释了,敲字很累的。


分享到:


相關文章: