根据《中华人民共和国网络安全法》、《中华人民共和国刑法》等相关法律法规:
-
严禁非法入侵计算机信息系统
- 违反者可处3年以下有期徒刑或者拘役
- 后果严重的可处3年以上7年以下有期徒刑
-
禁止制作、传播黑客攻击程序
- 提供黑客攻击程序和工具属违法行为
- 可能承担刑事责任
-
禁止从事危害网络安全的活动
- 包括但不限于未经授权的渗透测试
- SQL注入等攻击行为均属违法
-
本项目仅供安全研究使用
- 必须在合法授权范围内使用
- 禁止对未经授权的系统进行测试
- 使用者需承担全部法律责任
-
遵守网络安全"七条底线"
- 遵守宪法法律
- 维护国家利益
- 保护公民个人信息
- 传播正能量
- 维护公序良俗
- 履行社会责任
- 保护未成年人
使用本工具即表示您已完全理解并同意:
- 仅将其用于合法的安全研究与学习
- 不会用于任何未经授权的测试
- 造成的任何损失由使用者承担
如有违反,甘愿接受法律制裁。
这是一个专为教育 SQL 注入(SQLi)设计的易受攻击 Web 应用程序。
⚠️ 本项目故意存在 SQL 注入风险,仅供本地学习研究,禁止生产环境部署。违反者后果自负。
- SQL 注入原理彻底搞懂(不仅仅是背 payload!)
- SQLMap全自动武器化演练
- 防御意识提升:知道漏洞怎么来的,才知道怎么修。
- 思辨式学习:不盲信任何"安全"——哪怕是预处理语句。
组件 | 版本要求 |
---|---|
PHP | ≥ 7.0 |
SQLite3 | 任意版本 |
Python | ≥ 3.x |
SQLMap | 最新稳定版推荐 |
-
克隆项目:
git clone https://github.com/ctkqiang/TestSiteSQLinjection.git cd TestSiteSQLinjection
-
启动 PHP 服务器:
php -S 0.0.0.0:3000
-
浏览器访问:
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 |
虽然 index.php
和 dashboard.php
表面上使用了预处理语句,但是妳学会质疑:
- 真的防住了吗?
- 有没有漏掉的细节?
- 万一开发者写错,留了个洞呢?
所以,我们先学攻击,再学验证防御。
可以直接在登录框里试这些:
类型 | 注入 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 一键爆破!
命令示范:
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,比如盲注、时间延迟注入,嘎嘎刺激)
- 绝对禁止部署到公网
- 绝对禁止使用真实密码
- 不要用真名或个人隐私做测试数据
- 本地练习后,及时关闭服务,清理数据
- SQL 注入到底是怎么形成的
- 不是所有"预处理"都万无一失(配置错误/漏防)
- 怎么用 SQLMap 武器化测试
- 怎么通过错误信息/回显推断数据库结构
- 未来真正做红队/渗透测试时,如何绕过 WAF、防御系统
想成为更硬核的 girl/boy?欢迎 pr:
- 增加新型注入案例(比如基于布尔的盲注,时间盲注)
- 加新页面(比如上传漏洞、RCE 训练场)
- 写更详细的攻击流程
我打磨了 10 年经验,整理成超详细手册了:
掌握黑客攻防,不做表面功夫!👑
#SQL注入
#Web安全
#EthicalHacking
#信息安全
#渗透测试