首页 > 数据库 >多种数据库注入复线-墨者学院SQL手工注入漏洞测试(Oracle数据库)

多种数据库注入复线-墨者学院SQL手工注入漏洞测试(Oracle数据库)

时间:2023-05-24 20:22:58浏览次数:51  
标签:USER name 数据库 获取 user SQL table 注入

SQL手工注入漏洞测试(Oracle数据库)

fig:

1. 判断注入点

fig:

fig:

判断注入类型为数字型

fig:

fig:

2. 用order by获取列数

2时正常,3时报错,得到列数为2

fig:

fig:

3. 联合查询获取占位符

常规联合查询报错

fig:

这是由于oracle数据库语法十分严格,在后面需要指定数据表和准确的字符类型

我们使用dual表,dual 是oracle中的一个实际存在的表,任何用户均可读取

并使用null测试字符类型

fig:

测试结果如下,取得占位

fig:

4. 获取表名

构造语句select table_name from user_tables where rownum=1,获取到了第一张表

user_tables:查询oracle中所有的用户表,也可以使用all_tables获取所有表
rownum:每次只能显示一条数据

fig:

这显然不是所需要的,我们需要的是admin或者user,而经过测试得到admin并不存在

我们可以通过and table_name not in ('LOGMNR_SESSION_EVOLVE$')得到第二张表,第三张往后以此类推

fig:

但为了方便,可以构造语句,指定关键词进行模糊查询

select table_name from user_tables where rownum=1 and table_name like '%user%',得到如下:

fig:

sns_users是我们需要的

5. 获取列名

构造语句select column_name from all_tab_columns where rownum=1 and table_name = 'sns_users'

获取到了第一个列名USER_NAME

all_tab_columns:获取系统中所有表和列的信息

fig:

通过and column_name not in ('USER_NAME')获取到第二张表,往后以此类推

这里获取到了name和pwd就够了

fig:

6. 获取数据

前面我们获得了字段USER_NAME和USER_PWD,以及表名sns_users

通过union select user_name,user_pwd from "sns_users"直接获取数据

fig:

但是得到的这个账户hu,密码无法被md5解密,也不是实际的密码

fig:

fig:

此时需要换一个账户,构造语句where USER_NAME<>'hu'

<>等同于not in

fig:

得到账户mozhe和md5加密后的密码,解密后为967079

登录后台,获得flag为mozheca7f11f588329d180ee1591be80

fig:

标签:USER,name,数据库,获取,user,SQL,table,注入
From: https://www.cnblogs.com/Iwakura-Lain/p/17429386.html

相关文章

  • SQL高级语法学习总结(二)
    SQL高级语法学习总结(一)。现在我们接着说sql的高级用法。SQLCREATEDATABASE语法CREATEDATABASEdbname;CREATEDATABASE语句用于创建数据库。 SQLCREATETABLE语法CREATETABLEtable_name(column_name1data_type(size),column_name2data_type(size),column_name3dat......
  • SQL高级语法学习总结(一)
    基础语法呢,就是简单的对行列进行增删改。SQL基础语法学习总结,高级用法无非是条件更多,能实现的需求更多,其中涉及到非常多的关键字,本篇博客就进行一下总结。本文所有用法均在mysql环境下测试通过。其他数据库可能某些关键字会有不同。SQLSELECTLIMIT子句 SELECTLIMIT子句用于规......
  • mysqld_multi实现单机主从复制
    文档课题:mysqld_multi实现单机主从复制.数据库:mysql5.7.18系统:rhel7.3安装包:mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz1、理论知识mysqld_multi用于在一台服务器上管理多个mysqld进程,这些进程使用不同的socket文件并监听不同端口.mysqld_multi可以批量启动、关闭、或报告m......
  • MySQL数据基础知识整理—5
        今天是MySQL数据库基础知识整理的最后一章,本次我们要整理的是隔离性和MVCC多版本并发控制技术。隔离性    在我们进行多事务的处理时,难免会出现多个事务由于不当的操作导致事务发生不可逆转的错误结果。因此,MySQLS数据库为了防止这样的事情发生,使多个并发事物之......
  • Cause: java.sql.SQLException: Invalid value for getInt()
    Cause:java.sql.SQLException:InvalidvalueforgetInt()-'锛?';SQL[];InvalidvalueforgetInt()-'锛';nestedexceptionisjava.sql.SQLException:InvalidvalueforgetInt()-'锛?' 在对错误进行排查时,有以下原因可能导致的原因:出现此问题的原因是因为MyB......
  • 多种数据库注入复线-墨者学院Sql Server数据库手工注入
    SQL手工注入漏洞测试(SqlServer数据库)1.测试注入点点击公告报错,存在数字型的sql注入开注2.orderby查询列数2正常回显,3报错,但是4又正常,5以上报错3.联合查询判断占位但是报错union用于合并两个或多个select语句的结果集,并去除表中任何重复行且union内部的s......
  • 同步mysql数据库binlog用户所需要权限
    同步mysqlbinlog用户读写权限报错提示doesnothaveREPLICATION_CLENTprivilege 使用场景:常用于阿里云flink同步数据库binlog使用解决方案:fiink cdc 的表用户,需要有Replicationclient,Replicationslave权限。授权命令如下:grantReplicationclienton*.* toods_base@......
  • SQL Lesson 3: 条件查询(constraints) (Pt. 2)
    http://xuesql.cn/lesson/select_queries_with_constraints_pt_2--请输入sql--SELECT*FROMmovies;--select*frommovieswheretitlelike"ToyStory%";--like用法--select*frommovieswhereDirectornotlike"JohnLasseter";--notlike--s......
  • SQL练习帖
    1.组合两个表题目描述:表:Person+-------------+---------+|列名|类型|+-------------+---------+|PersonId|int||FirstName|varchar||LastName|varchar|+-------------+---------+personId是该表的主键列。该表包含一些人的......
  • 使用canal同步mysql数据到elasticsearch
    官方去下载canal包https://github.com/alibaba/canal/releases/tag/canal-1.1.6分为deployer、admin、adapter三个模块。deployer是数据库数据同步服务端。adapter是适配同步到不同终端,可以是es,hbase,redis其它数据库等。admin是一个配置管理中心,但是吧又没有配置adapter的界面,a......