sql server注入靶场搭建

admin 2025年7月1日14:10:33评论3 views字数 3097阅读10分19秒阅读模式
声明:由于传播、利用本公众号湘安无事所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关。如有侵权烦请告知,我们会立即删除并致歉。谢谢!

SQL Server数据库

测试连接数据库是否成功

sql server注入靶场搭建

SQL Server的PHP扩展

由于这边使用的是小皮面板,PHP版本为7.3.4nts版本

sql server注入靶场搭建

下载Windwos7.3扩展文件(这里的版本号一定要对得上)

https://objects.githubusercontent.com/github-production-release-asset-2e65be/19043988/23d51580-6213-11eb-897e-e3aa6e1ac680?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=releaseassetproduction%2F20250625%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20250625T072816Z&X-Amz-Expires=1800&X-Amz-Signature=2df203a2e38602acd1ae39694310ec4359023a7ac1ead47cf546592c7fbf7b22&X-Amz-SignedHeaders=host&response-content-disposition=attachment%3B%20filename%3DWindows-7.3.zip&response-content-type=application%2Foctet-stream  

下载成功后把这两个文件拉到该目录下:C:phpstudy_proExtensionsphpphp7.3.4ntsext

sql server注入靶场搭建

对应的修改C:phpstudy_proExtensionsphpphp7.3.4nts目录下的php.ini文件

extension=php_pdo_sqlsrv_73_nts           extension=php_sqlsrv_73_nts          
sql server注入靶场搭建

成功添加扩展文件后重启小皮面板服务即可

创建数据库数据

sql server注入靶场搭建

-- 1. 创建测试数据库CREATE DATABASE test;GO-- 2. 使用测试数据库USE test;GO-- 3. 创建用户表(针对字符型注入优化)CREATE TABLE users (      id VARCHAR(50PRIMARY KEY,  -- 改为字符型以支持字符型注入      username NVARCHAR(50NOT NULL,      password NVARCHAR(100NOT NULL,      email NVARCHAR(100),      is_admin BIT DEFAULT 0,      created_at DATETIME DEFAULT GETDATE());GO-- 4. 插入测试用户数据(使用字符型ID)INSERT INTO users (id, username, password, email, is_admin) VALUES('1''admin''5f4dcc3b5aa765d61d8327deb882cf99''[email protected]'1),('2''user1''5f4dcc3b5aa765d61d8327deb882cf99''[email protected]'0),('3''test''098f6bcd4621d373cade4e832627b4f6''[email protected]'0),('4''张伟''e10adc3949ba59abbe56e057f20f883e''[email protected]'0),('5''李娜''d8578edf8458ce06fbc5bb76a58c5ca4''[email protected]'0);GO

编写靶场PHP源码

WWW根目录下创建sql.php,复制以下内容进去即可

<?php    header('Content-Type: text/html; charset=utf-8');$connectionInfo array(    "Database" => 'test',    "UID" => 'sa'  "PWD" => '123456',    "CharacterSet" => 'UTF-8');$conn sqlsrv_connect('127.0.0.1'$connectionInfo);if($conn === false) {    die(print_r(sqlsrv_errors(), true));}$id isset($_REQUEST['id']) ? $_REQUEST['id'] : '';if(!empty($id)) {  // 字符型注入测试点    $sql "SELECT * FROM users WHERE id = '" . $id "'";    $data sqlsrv_query($conn$sql);    if($data === false) {        die(print_r(sqlsrv_errors(), true));    }    echo "<h2>查询结果:</h2>";    echo "<table border='1'><tr><th>ID</th><th>用户名</th><th>密码</th><th>邮箱</th><th>管理员</th><th>创建时间</th></tr>";    while($row sqlsrv_fetch_array($data, SQLSRV_FETCH_ASSOC)) {        echo "<tr>";       echo "<td>".$row['id']."</td>";        echo "<td>".htmlspecialchars($row['username'])."</td>";        echo "<td>".htmlspecialchars($row['password'])."</td>";        echo "<td>".htmlspecialchars($row['email'])."</td>";        echo "<td>".($row['is_admin'] ? '是' : '否')."</td>";        echo "<td>".$row['created_at']->format('Y-m-d H:i:s')."</td>";       echo "</tr>"  }    echo "</table>";else {    echo "<h2>字符型SQL注入测试</h2>";    echo "<form method='get'>";    echo "用户ID: <input type='text' name='id'>";    echo "<input type='submit' value='查询'>";    echo "</form>";  }  sqlsrv_close($conn);?>

测试靶场网站

打开网站

sql server注入靶场搭建

输入框输入内容:1

sql server注入靶场搭建

id追加单引号

sql server注入靶场搭建

再次追加单引号

sql server注入靶场搭建

靶场环境搭建结束。

 

原文始发于微信公众号(湘安无事):sql server注入靶场搭建

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年7月1日14:10:33
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   sql server注入靶场搭建https://cn-sec.com/archives/4203776.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息