网络安全 | SQL手工注入漏洞测试(MySQL数据库)
发布网友
发布时间:2024-09-06 22:22
我来回答
共1个回答
热心网友
时间:2024-09-07 20:45
安全工程师“墨者”最近在练习SQL手工注入漏洞,自己搭建了一个靶场环境,包括Nginx、PHP和MySQL。PHP代码对客户端提交的参数未做任何过滤,允许用户进行SQL手工注入练习。
实训目标包括:掌握SQL注入原理,了解手工注入的方法,了解MySQL的数据结构,以及了解字符串的MD5加解密。
解题方向是手工进行SQL注入测试,以获取管理密码登录。
判断是否存在注入点时,使用sqlmap工具进行检测。以该题目为例,使用sqlmap检测后的输出结果显示了几个工具/系统信息,并确认存在SQL注入点。
解答过程中,首先获取数据库名和数据库版本,通过在注入代码中添加id=-1,使用UNION SELECT语句来获取目标数据库信息。结果显示数据库名为mozhe_Discuz_StormGroup,数据库版本为5.7.22-0ubuntu0.16.04.1。
接下来获取数据库用户名和数据库路径,结果显示数据库用户名为root@localhost,数据库路径为/var/lib/mysql/。
获取操作系统信息显示为Linux。然后获取数据库列表,整理后的数据库列表显示mozhe_Discuz_StormGroup数据库可能包含答案。
获取该数据库下的数据库表列表,整理后的数据库表列表显示StormGroup_member表可能包含所需信息。
获取StormGroup_member表的列列表,整理后的列列表结果显示需要的信息。获取该表的数据,用户名为mozhe,密码为一串MD5加密的数据。解密后得到密码为dsan13,但尝试登录时发现用户被禁用。
尝试读取第二条用户数据,用户名同样为mozhe,密码为另一串MD5加密的数据。解密后得到密码为601663,成功登录。
使用sqlmap进行表数据获取用户数据时,在已知数据库名和数据库表的情况下,执行相应的命令。
其他知识点包括:在MYSQL5.0以上版本中,内置系统数据库information_schema,包含了MySQL服务器中存在的所有数据库、表、列、约束等相关元数据信息。展示数据库列表可以使用show databases;命令。
热心网友
时间:2024-10-05 10:38
安全工程师“墨者”最近在练习SQL手工注入漏洞,自己搭建了一个靶场环境,包括Nginx、PHP和MySQL。PHP代码对客户端提交的参数未做任何过滤,允许用户进行SQL手工注入练习。
实训目标包括:掌握SQL注入原理,了解手工注入的方法,了解MySQL的数据结构,以及了解字符串的MD5加解密。
解题方向是手工进行SQL注入测试,以获取管理密码登录。
判断是否存在注入点时,使用sqlmap工具进行检测。以该题目为例,使用sqlmap检测后的输出结果显示了几个工具/系统信息,并确认存在SQL注入点。
解答过程中,首先获取数据库名和数据库版本,通过在注入代码中添加id=-1,使用UNION SELECT语句来获取目标数据库信息。结果显示数据库名为mozhe_Discuz_StormGroup,数据库版本为5.7.22-0ubuntu0.16.04.1。
接下来获取数据库用户名和数据库路径,结果显示数据库用户名为root@localhost,数据库路径为/var/lib/mysql/。
获取操作系统信息显示为Linux。然后获取数据库列表,整理后的数据库列表显示mozhe_Discuz_StormGroup数据库可能包含答案。
获取该数据库下的数据库表列表,整理后的数据库表列表显示StormGroup_member表可能包含所需信息。
获取StormGroup_member表的列列表,整理后的列列表结果显示需要的信息。获取该表的数据,用户名为mozhe,密码为一串MD5加密的数据。解密后得到密码为dsan13,但尝试登录时发现用户被禁用。
尝试读取第二条用户数据,用户名同样为mozhe,密码为另一串MD5加密的数据。解密后得到密码为601663,成功登录。
使用sqlmap进行表数据获取用户数据时,在已知数据库名和数据库表的情况下,执行相应的命令。
其他知识点包括:在MYSQL5.0以上版本中,内置系统数据库information_schema,包含了MySQL服务器中存在的所有数据库、表、列、约束等相关元数据信息。展示数据库列表可以使用show databases;命令。