Skip to content

ctkqiang/TestSiteSQLinjection

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🧨 SQL 注入测试站点(TestSiteSQLinjection)

⚠️ 中华人民共和国网络安全法律警告

根据《中华人民共和国网络安全法》、《中华人民共和国刑法》等相关法律法规:

  1. 严禁非法入侵计算机信息系统

    • 违反者可处3年以下有期徒刑或者拘役
    • 后果严重的可处3年以上7年以下有期徒刑
  2. 禁止制作、传播黑客攻击程序

    • 提供黑客攻击程序和工具属违法行为
    • 可能承担刑事责任
  3. 禁止从事危害网络安全的活动

    • 包括但不限于未经授权的渗透测试
    • SQL注入等攻击行为均属违法
  4. 本项目仅供安全研究使用

    • 必须在合法授权范围内使用
    • 禁止对未经授权的系统进行测试
    • 使用者需承担全部法律责任
  5. 遵守网络安全"七条底线"

    • 遵守宪法法律
    • 维护国家利益
    • 保护公民个人信息
    • 传播正能量
    • 维护公序良俗
    • 履行社会责任
    • 保护未成年人

使用本工具即表示您已完全理解并同意:

  • 仅将其用于合法的安全研究与学习
  • 不会用于任何未经授权的测试
  • 造成的任何损失由使用者承担

如有违反,甘愿接受法律制裁。

这是一个专为教育 SQL 注入(SQLi)设计的易受攻击 Web 应用程序。

⚠️ 本项目故意存在 SQL 注入风险,仅供本地学习研究,禁止生产环境部署。违反者后果自负。


✨ 项目亮点(不止教你 payload,而是教你“理解”)

  • SQL 注入原理彻底搞懂(不仅仅是背 payload!)
  • SQLMap全自动武器化演练
  • 防御意识提升:知道漏洞怎么来的,才知道怎么修。
  • 思辨式学习:不盲信任何"安全"——哪怕是预处理语句。

🛠️ 前置环境要求

组件 版本要求
PHP ≥ 7.0
SQLite3 任意版本
Python ≥ 3.x
SQLMap 最新稳定版推荐

🚀 快速开始

  1. 克隆项目:

    git clone https://github.com/ctkqiang/TestSiteSQLinjection.git
    cd TestSiteSQLinjection
  2. 启动 PHP 服务器:

    php -S 0.0.0.0:3000
  3. 浏览器访问:

    http://localhost:3000
    

    就能看到超简洁(故意弱爆安全性)的登录界面了!


🧬 数据库结构揭秘

内部使用超简单的SQLite3,表结构一览:

CREATE TABLE IF NOT EXISTS users (
    id INTEGER PRIMARY KEY,
    username TEXT,
    password TEXT
);

已预置账号:

用户名 密码
admin admin123
admin secretpass123
john.doe pass123
jane.smith mypassword

🔥 SQL 注入实战教程


🧐 核心教学(质疑一切"安全")

虽然 index.phpdashboard.php 表面上使用了预处理语句,但是妳学会质疑:

  • 真的防住了吗?
  • 有没有漏掉的细节?
  • 万一开发者写错,留了个洞呢?

所以,我们先学攻击,再学验证防御


🐣 手动注入(Noob Mode)

可以直接在登录框里试这些:

类型 注入 payload 解释
认证绕过 ' OR '1'='1 直接永远为真
基于注释的绕过 admin' -- 注释掉后面条件
UNION 查询注入 ' UNION SELECT username, password, id FROM users-- 联表查询拿用户数据

注意: 如果妳改代码去掉预处理(拼接 SQL),效果会更炸裂!


💣 高阶玩法:自改源码版

如果想体验最原始 SQL 注入,(仅限本地教学!) 可以把登录逻辑改成直接拼接 SQL

// 非预处理版:易被注入
$sql = "SELECT * FROM users WHERE username = '$username' AND password = '$password'";
$stmt = $pdo->query($sql);

然后再打,就能轻松注入爆破了。👾


🎬 推荐视频:想更直观了解SQL注入与SqlMap实战?强烈推荐B站视频:揭秘!从黑客视角看数据泄露,SqlMap 竟如此神通广大!


🤖 SQLMap 自动化注入

如果想偷懒用工具?
用 SQLMap 一键爆破!

命令示范:

python3 sqlmap.py -u "http://localhost:3000/index.php" --data="username=admin&password=' OR 1=1--" --dbms=sqlite --dump

参数说明:

参数 作用
-u 指定目标 URL
--data 提交的 POST 数据
--dbms 告诉 SQLMap 我们是 SQLite
--dump 爆出数据库内容

🎯 验证成功的指标

  • 页面跳转到 Dashboard
  • 数据库用户数据被打印出来
  • 浏览器控制台出现"hacked"字样

(妳如果不够狠,可以自己再加点 payload,比如盲注、时间延迟注入,嘎嘎刺激)


⚔️ 安全警告

  • 绝对禁止部署到公网
  • 绝对禁止使用真实密码
  • 不要用真名或个人隐私做测试数据
  • 本地练习后,及时关闭服务,清理数据

📚 学到的东西(你要学会的,不只是"打穿")

  1. SQL 注入到底是怎么形成的
  2. 不是所有"预处理"都万无一失(配置错误/漏防)
  3. 怎么用 SQLMap 武器化测试
  4. 怎么通过错误信息/回显推断数据库结构
  5. 未来真正做红队/渗透测试时,如何绕过 WAF、防御系统

🤝 贡献指南

想成为更硬核的 girl/boy?欢迎 pr:

  • 增加新型注入案例(比如基于布尔的盲注,时间盲注)
  • 加新页面(比如上传漏洞、RCE 训练场)
  • 写更详细的攻击流程

🚀 Bonus:要成为 SQL 注入大师?

我打磨了 10 年经验,整理成超详细手册了:

【SQLMap 武器手册 · 深度指南】点我购买

掌握黑客攻防,不做表面功夫!👑


标签

#SQL注入 #Web安全 #EthicalHacking #信息安全 #渗透测试


About

A Public App for Test Site SQLinjection

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages