论文部分内容阅读
摘要:将微软操作系统下的漏洞捕捉利用的方法为研究对象,侧重分析和捕捉旁注入侵的利用方法,为WEB站点漏洞修补提供更多迅速、便利的侦测捕捉利用。
关键词:结构化查询语句旁注;漏洞捕捉;木马页面
中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2018)03-0037-02
改革开放不断深入,互联网的体量和增量速度不断发展壮大,高速互联网日益普及,网络终端应用不断普及,计算机网络安全问题越来越受到关注,信息安全在计算机网络中扮演的角色越来越重要。
计算机网络安全问题在基于微软视窗平台的应用方面更加值得关注,某些方面不安全也确实令人担忧,拒绝服务攻击、基于数据库平台的代码注入、操作系统漏洞捕捉利用、木马插件、木马邮件、垃圾信息等安全防范领域困扰层出不穷[1]。探讨漏洞捕捉和利用方法,发现其共同特性,能够帮助解决问题和克服困难,在指导计算机网络安全方面的工作有所帮助。我们将谈论计算机系统漏洞捕捉利用,结构化查询语句注入、木马页面利用、分布式拒绝服务等方面的入侵和攻击方法,并企图通过分析来探讨计算机网络形成的高速互联网的安全问题。
1 结构化语句旁注入侵
旁注入侵通过正常访问3W端口来进行侦测。表面上和正常访问网站网页没什么不同的,主流的防火墙安全系统并不会对旁注入侵进行警报,也无法进行鉴别,在网站系统管理者未查web服务器日志的情况下造成被入侵很久都未必会他们发现[2]。
虽然这样,注入是一种灵活有效的方法,但在操作时往往会遇到这样那样的特殊情形。应该依据具体不同情况具体分析,能否构建一句精巧的旁注侦测结构化查询语句,获得提取到预期的信息和数据,则要依靠入侵操作者的平时知识积累水平和运气情况。
1.1 注入的原理
请看一个实例:在网站上,如果有一个链接,地址如下:http://www.aaa.com/../showInf.asp?idd=2,注入者可以在地址后加一个单引号’,网站WEB服务器计算机将会应要求反馈如下的错误提示:
[Microsoft JET Database Engine 错误 ’80040e14’
字符串的语法错误 在查询表达式 ’IDD=2’’ 中。
/showInf.asp,行4]在上面这一错误提示信息,可以发现下面几点有意义的信息:
1) 网络Server上安装微软的MS-Access数据库并设置JET-OLE链接。
2) 编程人员在代码中未判断用户端提交的数据对于程序的合规性。
3) 网站的结构化查询语句所查询的表中存在名为“IDD”的字段。
通过上面例子可知,旁注侦测的基本原理是通过分析客户端提交的代码行,然后分析服务器的反馈信息,获取旁注侦测信息及资料。
1.2 分析注入可行性
要分析是否存在漏洞,使用如下测试方法是较为准确的:
1) http://www.kkk.com/showdet.asp?idd=2
2) http://www.kkk.com/showdet.asp?idd=2 and 1=1
3) http://www.kkk.com/showdet.asp?idd=2 and 1=2
此法是常用的測试法。观察以上的网址返回的结果,通常可以知道是否可以注入。
可注入时,反馈内容表现如下:
1) 网页能够正常显示;
2) 网页基本能正常显示,但格式异常,内容与1)大致相同;
3) 出现BOF或EOF提示、或提示未找到记录(已判断但记录溢出时)、或显示网页内容为空(代码程序中做了on error resume next)。
若是不存在入侵条件则通过反馈异常来反映,观察网页程序定义的出错提示类型甚至跳转到的指定页面信息。
以上是传入数字型参数的判断方法,实际应用的时候会有字符型和搜索型参数,后面会在“结构化查询注入一般步骤”做讨论。
1.3 数据库判断和注入方法
不一样的数据库的函数采用的侦测注入法是有不同的,在注入侦测之前,应判断数据库类型。一般ASP动态网页程序代码经常采用的数据库为微软的数据库,大部分网站用这两种数据库。
获取数据库类型方法如下:
通过MS-SQL数据库系统特有内置变量,WEB SERVER提示停且MS-SQL返回错误提示则可直接从出错信息中获知。采用如下方法:
http://www.kkk.com/showdet.asp?idd=2 and user>0
MSSQL注入方法是一种效率高的侦测方法。语句通过在正常语句后面加上and user>0产生特殊用意。使用MSSQL的内置变量nvarchar的取值与int比较,系统将转型变量并导致显示出错信息。出错提示类似是:将xxxx值 ”xxx” 转换数据类型为 aaa 的列时发生语法错误,实际上,xxx暴露了用户名的值,这样,相当于显示了数据库的用户名。
MS-SQL的超级用户等同于管理员权限的角色,得到了sa权限,就可以拿到主机的管理权了。以上方法可很方便的测试出是否是用sa登录,是sa登录的话则提示的是:将“dbo”转换成int的列发生错误,而不是直接显示超级管理员用户名“sa”。
如果互联网信息服务器禁止返回错误提示,则可采用从Access和MSSQL间的区别入手。它们都有自己的系统表,MS-Access是在系统表[msysobjects]在网络环境下读该表会提示“没有权限”,MS-SQL是在表[sysobjects]中,在网络环境下能正常获得[3]。 可以注入时用下面语句:
注入点链接后面加上“?idd=2 and (select count(*) from sysobjects)>0”
注入点链接后面加上“?idd=2 and (select count(*) from msysobjects)>0”
若数据库是MSSQL,则前一网址的页面与原页面大致相同;而后一网址则找不到表msysobjects,将提示有错,有容错处理的页面也将会不同。
只指定旁注入侵的判断方法要拿到网站的保密内容还是不够的。要从数据库中获取想要的内容,先要看看SQL注入的一般步骤:
先要判断环境寻找注入漏洞侦测点,判断数据库类型,接着再根据参数类型,重构结构化查询语句。按参数类型分如下几种:
(A) IDD=2 这类注入的参数是数字型
(B) Class=电影 这种参数是字符型
(C)没过滤参数的
将查询条件替换成结构化查询语句猜解表名,如:
IDD=2 And (Select Count(*) from Adm)>=0
若两者反饋页面信息是相同的那说明附加条件是成立的,那判断出数据库的表Adm是存在的,若不同则肯定不存在Adm表。通过字典不断猜测,直到表名存在为止。表名猜解出后,可以将Count(*)替换成Count(字段名),用同样的方法通过字典不断猜解字段名。
2 注入型系统漏洞捕捉利用设计
2.1 系统漏洞捕捉系统设计
自主设计一个注入攻击工具系统,主要包括以下子系统:旁注侦测、木马页面上传、结构化查询语句旁注、数据库管理。功能是注入点智能化的发现系统漏洞,包含注入利用,ASP木马文件上传等入侵方法的系统设计和实现原理、方法。
2.2 系统设计
工具系统是根据微软操作系统平台的特点来设计的,专门针对广泛流行的WEB服务器和ASP语言在数据库查询中常有的系统漏洞,采取相应操作,实现对微软系统的漏洞捕捉注入入侵。系统有如下设计流程:
1) 采用国外http://whois.webhosting.info/网站提供的免费服务,通过域名查得IP,也可以通过IP查域名。存在于同一服务器的虚拟网站可能受到相邻网站漏洞波及而遭受入侵。
2) 旁注入侵注入点智能发现。将MSHTML的get_links 获取 IHTMLElementCollection 接口,再通过它的 IHTMLAnchorElement接口的get_href就可以得到网页的所有链接了。得到这些链接后,观察其中是否包含类似“.asp?id=”的语句,有则进行注入检测,最终智能获得可以注入的网站链接。
3) 对注入点数据库实施猜解,判断目标网站数据库类型。然后根据不同类型采取不同的方法猜解,获取表和其中的字段和记录。
4) 尝试猜解网站后台管理员入口。多数网站的管理员登录入口都是admin.asp,login.asp,manage.asp等等。
5) 尝试猜解数据库,可以获取管理员账号,结合管理员入口就可以进入网站的后台。
6) 上传木马页面WEBSHELL,利用数据库备份功能,可以用它来把我们所上传的经过改装成形如XXX.GIF的WEBSHELL恢复原型成XXX.ASP,让网页木马真正起作用。
2.3 工具软件实现
SQL注入模块界面如图SQL注入界面所示。包含批量扫描注入点、SQL注入猜解检测、辅助工具,管理入口扫描四个子模块。在SQL注入猜解模块中包含了旁注入侵的精华思想。
3 系统漏洞智能发现实现与验证
东莞搜房网www.dgsoufun.com和搜房网www.soufun.com是放在同一个虚拟服务器中的,也是子母公司的网站。搜房网的访问流量很大,约为5000IP/天,论坛每天的新帖子达到1500篇以上,各方面比较完善。但是,在www.jxuf.com这个网站中,系统工具智能扫描到存在了注入点,东莞搜房网注入检测:http://www.jxuf.com/../market_view.asp?id=14。得到金信联行的网站控制权,再通过这个网站来控制东莞搜房网www.dgsoufun.com的系统管理权。
4 小结
本文通过分析微软系统常用注入漏洞捕捉,设计一个智能检测攻击工具。浅谈微软系统漏洞入侵检测的完整过程。从主机扫描开始,把域名解释到IP,再通过IP查询,发现主机上面存在的所有虚拟主机,即查询出该IP上绑定了若干域名。增加扫描的漏洞的全面性,增加漏洞捕捉的可能性。针对不同主机,逐一扫描,发现各自存在漏洞可能。系统实现SQL注入漏洞发现智能化,避免人工干预,系统能将可入侵、可利用的漏洞链接显示出来。
参考文献:
[1] Shan Rongsheng, Li Jianhua, Wang Mingzheng. Anomaly detection for network traffic flow[J]. Journal of Southeast University(English Edition), 2004, 20(1):16-20.
[2] 薛丽军.分布式拒绝服务攻击检测与防护[D]. 电子科技大学, 2003(05).
关键词:结构化查询语句旁注;漏洞捕捉;木马页面
中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2018)03-0037-02
改革开放不断深入,互联网的体量和增量速度不断发展壮大,高速互联网日益普及,网络终端应用不断普及,计算机网络安全问题越来越受到关注,信息安全在计算机网络中扮演的角色越来越重要。
计算机网络安全问题在基于微软视窗平台的应用方面更加值得关注,某些方面不安全也确实令人担忧,拒绝服务攻击、基于数据库平台的代码注入、操作系统漏洞捕捉利用、木马插件、木马邮件、垃圾信息等安全防范领域困扰层出不穷[1]。探讨漏洞捕捉和利用方法,发现其共同特性,能够帮助解决问题和克服困难,在指导计算机网络安全方面的工作有所帮助。我们将谈论计算机系统漏洞捕捉利用,结构化查询语句注入、木马页面利用、分布式拒绝服务等方面的入侵和攻击方法,并企图通过分析来探讨计算机网络形成的高速互联网的安全问题。
1 结构化语句旁注入侵
旁注入侵通过正常访问3W端口来进行侦测。表面上和正常访问网站网页没什么不同的,主流的防火墙安全系统并不会对旁注入侵进行警报,也无法进行鉴别,在网站系统管理者未查web服务器日志的情况下造成被入侵很久都未必会他们发现[2]。
虽然这样,注入是一种灵活有效的方法,但在操作时往往会遇到这样那样的特殊情形。应该依据具体不同情况具体分析,能否构建一句精巧的旁注侦测结构化查询语句,获得提取到预期的信息和数据,则要依靠入侵操作者的平时知识积累水平和运气情况。
1.1 注入的原理
请看一个实例:在网站上,如果有一个链接,地址如下:http://www.aaa.com/../showInf.asp?idd=2,注入者可以在地址后加一个单引号’,网站WEB服务器计算机将会应要求反馈如下的错误提示:
[Microsoft JET Database Engine 错误 ’80040e14’
字符串的语法错误 在查询表达式 ’IDD=2’’ 中。
/showInf.asp,行4]在上面这一错误提示信息,可以发现下面几点有意义的信息:
1) 网络Server上安装微软的MS-Access数据库并设置JET-OLE链接。
2) 编程人员在代码中未判断用户端提交的数据对于程序的合规性。
3) 网站的结构化查询语句所查询的表中存在名为“IDD”的字段。
通过上面例子可知,旁注侦测的基本原理是通过分析客户端提交的代码行,然后分析服务器的反馈信息,获取旁注侦测信息及资料。
1.2 分析注入可行性
要分析是否存在漏洞,使用如下测试方法是较为准确的:
1) http://www.kkk.com/showdet.asp?idd=2
2) http://www.kkk.com/showdet.asp?idd=2 and 1=1
3) http://www.kkk.com/showdet.asp?idd=2 and 1=2
此法是常用的測试法。观察以上的网址返回的结果,通常可以知道是否可以注入。
可注入时,反馈内容表现如下:
1) 网页能够正常显示;
2) 网页基本能正常显示,但格式异常,内容与1)大致相同;
3) 出现BOF或EOF提示、或提示未找到记录(已判断但记录溢出时)、或显示网页内容为空(代码程序中做了on error resume next)。
若是不存在入侵条件则通过反馈异常来反映,观察网页程序定义的出错提示类型甚至跳转到的指定页面信息。
以上是传入数字型参数的判断方法,实际应用的时候会有字符型和搜索型参数,后面会在“结构化查询注入一般步骤”做讨论。
1.3 数据库判断和注入方法
不一样的数据库的函数采用的侦测注入法是有不同的,在注入侦测之前,应判断数据库类型。一般ASP动态网页程序代码经常采用的数据库为微软的数据库,大部分网站用这两种数据库。
获取数据库类型方法如下:
通过MS-SQL数据库系统特有内置变量,WEB SERVER提示停且MS-SQL返回错误提示则可直接从出错信息中获知。采用如下方法:
http://www.kkk.com/showdet.asp?idd=2 and user>0
MSSQL注入方法是一种效率高的侦测方法。语句通过在正常语句后面加上and user>0产生特殊用意。使用MSSQL的内置变量nvarchar的取值与int比较,系统将转型变量并导致显示出错信息。出错提示类似是:将xxxx值 ”xxx” 转换数据类型为 aaa 的列时发生语法错误,实际上,xxx暴露了用户名的值,这样,相当于显示了数据库的用户名。
MS-SQL的超级用户等同于管理员权限的角色,得到了sa权限,就可以拿到主机的管理权了。以上方法可很方便的测试出是否是用sa登录,是sa登录的话则提示的是:将“dbo”转换成int的列发生错误,而不是直接显示超级管理员用户名“sa”。
如果互联网信息服务器禁止返回错误提示,则可采用从Access和MSSQL间的区别入手。它们都有自己的系统表,MS-Access是在系统表[msysobjects]在网络环境下读该表会提示“没有权限”,MS-SQL是在表[sysobjects]中,在网络环境下能正常获得[3]。 可以注入时用下面语句:
注入点链接后面加上“?idd=2 and (select count(*) from sysobjects)>0”
注入点链接后面加上“?idd=2 and (select count(*) from msysobjects)>0”
若数据库是MSSQL,则前一网址的页面与原页面大致相同;而后一网址则找不到表msysobjects,将提示有错,有容错处理的页面也将会不同。
只指定旁注入侵的判断方法要拿到网站的保密内容还是不够的。要从数据库中获取想要的内容,先要看看SQL注入的一般步骤:
先要判断环境寻找注入漏洞侦测点,判断数据库类型,接着再根据参数类型,重构结构化查询语句。按参数类型分如下几种:
(A) IDD=2 这类注入的参数是数字型
(B) Class=电影 这种参数是字符型
(C)没过滤参数的
将查询条件替换成结构化查询语句猜解表名,如:
IDD=2 And (Select Count(*) from Adm)>=0
若两者反饋页面信息是相同的那说明附加条件是成立的,那判断出数据库的表Adm是存在的,若不同则肯定不存在Adm表。通过字典不断猜测,直到表名存在为止。表名猜解出后,可以将Count(*)替换成Count(字段名),用同样的方法通过字典不断猜解字段名。
2 注入型系统漏洞捕捉利用设计
2.1 系统漏洞捕捉系统设计
自主设计一个注入攻击工具系统,主要包括以下子系统:旁注侦测、木马页面上传、结构化查询语句旁注、数据库管理。功能是注入点智能化的发现系统漏洞,包含注入利用,ASP木马文件上传等入侵方法的系统设计和实现原理、方法。
2.2 系统设计
工具系统是根据微软操作系统平台的特点来设计的,专门针对广泛流行的WEB服务器和ASP语言在数据库查询中常有的系统漏洞,采取相应操作,实现对微软系统的漏洞捕捉注入入侵。系统有如下设计流程:
1) 采用国外http://whois.webhosting.info/网站提供的免费服务,通过域名查得IP,也可以通过IP查域名。存在于同一服务器的虚拟网站可能受到相邻网站漏洞波及而遭受入侵。
2) 旁注入侵注入点智能发现。将MSHTML的get_links 获取 IHTMLElementCollection 接口,再通过它的 IHTMLAnchorElement接口的get_href就可以得到网页的所有链接了。得到这些链接后,观察其中是否包含类似“.asp?id=”的语句,有则进行注入检测,最终智能获得可以注入的网站链接。
3) 对注入点数据库实施猜解,判断目标网站数据库类型。然后根据不同类型采取不同的方法猜解,获取表和其中的字段和记录。
4) 尝试猜解网站后台管理员入口。多数网站的管理员登录入口都是admin.asp,login.asp,manage.asp等等。
5) 尝试猜解数据库,可以获取管理员账号,结合管理员入口就可以进入网站的后台。
6) 上传木马页面WEBSHELL,利用数据库备份功能,可以用它来把我们所上传的经过改装成形如XXX.GIF的WEBSHELL恢复原型成XXX.ASP,让网页木马真正起作用。
2.3 工具软件实现
SQL注入模块界面如图SQL注入界面所示。包含批量扫描注入点、SQL注入猜解检测、辅助工具,管理入口扫描四个子模块。在SQL注入猜解模块中包含了旁注入侵的精华思想。
3 系统漏洞智能发现实现与验证
东莞搜房网www.dgsoufun.com和搜房网www.soufun.com是放在同一个虚拟服务器中的,也是子母公司的网站。搜房网的访问流量很大,约为5000IP/天,论坛每天的新帖子达到1500篇以上,各方面比较完善。但是,在www.jxuf.com这个网站中,系统工具智能扫描到存在了注入点,东莞搜房网注入检测:http://www.jxuf.com/../market_view.asp?id=14。得到金信联行的网站控制权,再通过这个网站来控制东莞搜房网www.dgsoufun.com的系统管理权。
4 小结
本文通过分析微软系统常用注入漏洞捕捉,设计一个智能检测攻击工具。浅谈微软系统漏洞入侵检测的完整过程。从主机扫描开始,把域名解释到IP,再通过IP查询,发现主机上面存在的所有虚拟主机,即查询出该IP上绑定了若干域名。增加扫描的漏洞的全面性,增加漏洞捕捉的可能性。针对不同主机,逐一扫描,发现各自存在漏洞可能。系统实现SQL注入漏洞发现智能化,避免人工干预,系统能将可入侵、可利用的漏洞链接显示出来。
参考文献:
[1] Shan Rongsheng, Li Jianhua, Wang Mingzheng. Anomaly detection for network traffic flow[J]. Journal of Southeast University(English Edition), 2004, 20(1):16-20.
[2] 薛丽军.分布式拒绝服务攻击检测与防护[D]. 电子科技大学, 2003(05).