SqlMap简单使用

有时候我们得到的 网站后台的登录密码 = 网站服务器的远程桌面服务登录密码 = FTP服务登录密码 (有几率)

sql注入 mysql

可使用综合性扫描软件扫描,在配合手工检测确认注入点,得到注入点后用sqlmap

参数选其讲解

参数:-r

sqlmap可以从一个文本文件中获取HTTP请求,这样就可以跳过设置一些其他参数(比如cookie,POST数据,等等)。

比如文本文件内如下:

POST /vuln.php HTTP/1.1

Host: www.target.com

User-Agent: Mozilla/4.0

id=1

当请求是HTTPS的时候你需要配合这个--force-ssl参数来使用,或者你可以在Host头后门加上:443

参数:-m

文件中保存url格式如下,sqlmap会一个一个检测

www.target1.com/vuln1.php?q=foobar

www.target2.com/vuln2.asp?id=1

www.target3.com/vuln3/id/1*

从文件中加载HTTP请求

参数:--cookie,--load-cookies,--drop-set-cookie

这个参数在以下两个方面很有用:

1、web应用需要登陆的时候。

2、你想要在这些头参数中测试SQL注入时。

可以通过抓包把cookie获取到,复制出来,然后加到--cookie参数里。

在HTTP请求中,遇到Set-Cookie的话,sqlmap会自动获取并且在以后的请求中加入,并且会尝试SQL注入。

如果你不想接受Set-Cookie可以使用--drop-set-cookie参数来拒接。

当你使用--cookie参数时,当返回一个Set-Cookie头的时候,sqlmap会询问你用哪个cookie来继续接下来的请求。当--level的参数设定为2或者2以上的时候,sqlmap会尝试注入Cookie参数。

HTTP User-Agent头

参数:--user-agent,--random-agent

默认情况下sqlmap的HTTP请求头中User-Agent值是:

sqlmap/1.0-dev-xxxxxxx (http://sqlmap.org)

可以使用--user-anget参数来修改,同时也可以使用--random-agnet参数来随机的从./txt/user-agents.txt中获取。

当--level参数设定为3或者3以上的时候,会尝试对User-Angent进行注入。

HTTP(S)代理

参数:--proxy,--proxy-cred和--ignore-proxy

使用--proxy代理是格式为:http://url:port。

当HTTP(S)代理需要认证是可以使用--proxy-cred参数:username:password。

--ignore-proxy拒绝使用本地局域网的HTTP(S)代理。

HTTP请求延迟

参数:--delay

可以设定两个HTTP(S)请求间的延迟,设定为0.5的时候是半秒,默认是没有延迟的。

设定超时时间

修改注入的数据

参数:--tamper

sqlmap除了使用CHAR()函数来防止出现单引号之外没有对注入的数据修改,你可以使用--tamper参数对数据做修改来绕过WAF等设备。

下面是一个tamper脚本的格式:

# Needed imports

from lib.core.enums import PRIORITY

# Define which is the order of application of tamper scripts against

# the payload

__priority__ = PRIORITY.NORMAL

def tamper(payload):

'''

Description of your tamper script

'''

retVal = payload

# your code to tamper the original payload

# return the tampered payload

return retVal

注入技术

测试是否是注入

参数:--technique

这个参数可以指定sqlmap使用的探测技术,默认情况下会测试所有的方式。

支持的探测方式如下:

B: Boolean-based blind SQL injection(布尔型注入)

E: Error-based SQL injection(报错型注入)

U: UNION query SQL injection(可联合查询注入)

S: Stacked queries SQL injection(可多语句查询注入)

T: Time-based blind SQL injection(基于时间延迟注入)

SQLMap 使用心得

I. 提高SQLMap测试等级

‐‐risk 这个参数就是把测试等级提高,如是 --risk 3 那么测试就是最高,这样SQLMap会测试更加多的注⼊语句。

举个栗⼦:

没有加 ‐‐risk 3 的情况下,SQLMap 就测试 5hoanqu' and 789=789 and 'hcme'='hcme ,

但是如果加了 ‐‐risk 3 参数,就会增加测试语句, 5hoanqu') and 789=789 and ('hcme'='hcme ,对⽐起来,虽然只是加了2个字符,但是意义却相差很多了的。

II. 增加被测试的参数

‐‐level 3 假设存在注⼊的URL为: http://baidu.com/new.php?nid=5haoanqu ,在GET请求中,我们⽬前看得到的参数就⼀个:nid.但是当我们访问过⼀个⽹站之后,我们都会得到⼀个cookie,当我们继续访问⽹站的时候,浏览器就会加载我们的cookie,⼜因为cookie存在我们本地,我们⼜是可以控制这个cookie的,所以我们就可以在cookie上⾯加⼊我们注⼊测试语句。⽽像UserAgent头也是⼀样的,具体你可以看看以下⽂章:

III. 找到正确的请求页⾯

通常情况下我们直接在浏览器看到的URL上⾯的参数就是被带⼊数据库查询的参数,但是事实上并不是全部的东西都如我们眼睛看到的样⼦。

注意点:

我们在填写搜索关键词的时候,⼀定要找出那些能够搜索出内容的关键词,⽐如你在实战中搜索dark5,但是⽹站没有关于dark5的⽂章内容,就不会出现正常的搜索结果,这样我们把注⼊语句加在dark5的后⾯时,是没有办法判断我们的SQL语句是否成功执⾏,就没有办法达到我们想要的结果了。

有些⽹站不⼀定存在这么多个GET或者POST的请求包的,⽐如某个⽹站,你填写好搜索关键词后,就先请求⼀个GET再请求⼀个POST包就完事了,但是⼤多数情况是要么请求⼀个GET,要么请求⼀个POST包。主要是看⽹站是否采⽤ajax。那么阿⾔这个⽹站的注⼊点就是第3个的POST和第4个的POST请求,因为从这个2个“Response”就能反应出SQL语句执⾏的结果。

IV. 指定测试位置

* ⽤这个参数来指定测试语句的位置,这个通常⽤在注⼊伪静态页⾯。也可以⽤在正常注⼊点,在⼿⼯确认某个位置可注⼊的使⽤,使⽤该参数可提高注⼊效率。

相关伪静态注⼊⽂章和视频如下:

渗透⽇记-利⽤SQLMAP伪静态注⼊

SQLMap 配合 DNSlog

似懂非懂..

SQLMap注入伪静态

漏洞发现

经发送到 Repeater 加 ' 测试发现是注入。

注⼊看测试的位置,是在值的后⾯。 形如 http://www.baidu.com/index.php/Home/English/en_NewsDetail/id/92.html 的URL格式,⼤概率就是伪静态,即伪装成静态⽹页的动态链接。这种情况我们是可以测试注⼊的。 (92' 用来尝试测试)

SQLmap注入参数

SQLMap处理高权限的SQL Server的注入

找到注入点,用sqlmap注入,查询是否是系统权限sa,后再执行--os-shell,交互式os_shell界面,但不是真正的shell,只是像而已,手注的操作都可以使用,如果无回显,可用远程日志dnslog来判断shell是否成功执行命令结果,或者执行命令不知道; 不必太过拘泥于结果显示回来;

echo 1 > 网站地址\1.txt ,发现是可行的

--sql-shell 权限不够大,执行一些数据库命令

SQLMap处理高权限的mysql的注入

找到注入点,用sqlmap注入,查数据库、当前用户权限,爆出物理路径

是高权限,--os-shell,--sql-shell

sqlmap mysql 登录_SqlMap简单使用相关推荐

  1. sqlmap mysql案例_sqlmap简单mysql注入演示附截图

    安装教程百度一下就有了. 首先下载需要的文件,如果是windows环境直接到 看大牛的视频,学习一下,附上截图....算是转载吧...只是为了分享一下.. 下边是实例: sqlmap.py -upda ...

  2. ODBC + WIN32 API 访问MYSQL 数据库实现简单QQ用户注册和登录 的代码分析

    ODBC + WIN32 API 访问MYSQL 数据库实现简单QQ用户注册和登录 的代码分析 . /   // datadase odbc1.cpp : 定义应用程序的入口点.  //   #inc ...

  3. mysql 5.6 登录 警告_解决mysql登录出现警告问题的简单方法

    解决mysql登录出现警告问题的简单方法 发布时间:2020-05-11 11:50:39 来源:亿速云 阅读:125 作者:三月 本文主要给大家介绍解决mysql登录出现警告问题的简单方法,文章内容 ...

  4. PHP+Mysql 实现最简单的注册登录

    PHP+Mysql 实现最简单的注册登录 一.先将两个服务打开 二.创建数据库 create database test; // 创建一个叫test的数据库 use test; // 进入这个数据库 ...

  5. javaweb(servlet)+jsp+Mysql实现的简单相册管理系统(功能包含登录、管理首页、添加图片、分类管理、修改密码、图片详情等)

    博客目录 javaweb(servlet)+jsp+Mysql实现的简单相册管理系统 实现功能截图 系统功能 使用技术 代码 完整源码 javaweb(servlet)+jsp+Mysql实现的简单相 ...

  6. swing和MySQL登录注册_JavaSwing+Mysql实现简单的登录界面+用户是否存在验证

    原生Java+mysql登录验证 client login.java 功能:实现登录页面,与服务端传来的数据验证 package LoginRegister; import java.awt.Cont ...

  7. mysql入门很简单系列视频-学习笔记

    mysql入门很简单系列视频-学习笔记 视频链接:mysql入门很简单系列视频 https://www.bilibili.com/video/av14920200/ 以前主要就了解DDL.DML.DC ...

  8. php mysql 简单留言板_PHP+MySql实现一个简单的留言板

    跟着书学的,代码不是自己写的,但是都能理解,有时间自己去写个好看一点的吼吼吼-(不熟练花了一天的时间- 留言板是接触WEB开发的基础,写一个留言板需要知道前端的一些基础标签,对数据库有一个了解会基础S ...

  9. JSP+Mysql 做一个简单的学生成绩查询web系统

    IDEA基于JSP+Mysql 做一个简单的学生成绩查询web系统 目录 一.相关软件的下载和配置环境 Java环境的下载和配置 (1)IDEA的下载和安装 ​ (2)JdK的安装 Tomcat的下载 ...

最新文章

  1. 应用设计模式进行重构来消除坏味道
  2. window.location.href不打开新窗口_嘿,这条微博值得一看:不登录如何访问页面
  3. Mybatis接口注解开发
  4. 关于 Google Chrome 操作系统的 5 个问题
  5. Swift中文教程(十八) 类型检查
  6. Java虚拟机的什么周期
  7. AWS 创业背后,竟是“被迫无奈”?
  8. 77----空间直角坐标变换、平移、旋转、伸缩
  9. db2v9/9.5高级应用开发_11月26日 l FloMASTER元器件开发及高级应用公开课
  10. idea 修改前后端代码自动运行
  11. 动易 转 html5,动易系统所有标签解释5
  12. 局域网搭建Linux镜像源
  13. 我学会了用计算机作文,我学会了电脑作文
  14. 【uniapp前端组件】仿微信通讯录列表组件
  15. java是什么?好学吗?
  16. [问题]浏览器主页被劫持为2345
  17. 揭开光宇华夏高层几位伪君子炒作的真相
  18. 02笔记 离散数学——命题逻辑——基于离散数学(第3版)_章炯民,陶增乐
  19. Java-使用集合存储快递的信息
  20. CC攻击和DDoS攻击的区别是什么

热门文章

  1. 百变星君Beta分布
  2. shell简介与命令
  3. 美国ITS战略2020-2025解读及未来发展思考
  4. wr720n改无线打印服务器,tplink如何关闭dhcp
  5. 传苹果8要做配两个电池,贼萌,你怎么不配双卡双待呢?
  6. 《大道至易——实践者的思想》勘误【2012.12】
  7. 从11月11号开始我要将我儿时的梦想初步完成(2009年的回忆)
  8. Python Floyd算法求最短路径
  9. 以凡人之躯,比肩神明:“ I am iron man ”
  10. template的用法(超详细)