ctfshow-萌新-web5( 利用位运算符控制SQL获取网站敏感信息)

2023-11-01

ctf.show 萌新模块 we5关,这一关考察的是intval()函数转换字符串的特性和SQL注入的绕过思路,这一关过滤了单双引号,or,斜杠,加减乘除号,叹号,括号,select等关键字,推荐使用取反运算符(~)来控制SQL语句,获取flag

 

 页面中展示了部分源码,提示我们 id=1000时,即可拿到flag

 首先分析一下解题的思路,源码中过滤了参数中的 ‘ ” or \ - / * < > ! x hex ( ) select 等关键字,那我们不包含这些关键字就行了;intval()函数将参数转换成整数,并且不能大于999,而我们的flag是1000,正常输入必然会大于999,所以我们可以利用intval()函数转换字符串的特性,在参数中构造特殊的字符,来绕过intval()函数的转换;绕过前面两个过滤以后就来到执行SQL语句了,这里我们使用取反运算符(~)来控制SQL,获取flag。构造以下payload

?id=~~1000

 先来介绍一下intva()函数转换字符串的特性

 intval()函数在转换整数时,如果被转换的变量是一个字符串,则会从最左边第一个字符开始转换,直到遇到非整数的字符才会停止

  

我们构造的payload,被后端的get请求接收以后,会变成一个字符串类型的变量 ‘~~1000’ ,这个字符串被intval()函数转换后会变成 0

参与if的条件判断就是 0 < 999 , 返回false,从而执行else中的SQL

 我们构造的参数拼接到SQL中是下面这个样子

 取反运算符可以将数值的内容取反,两次取反后便会是原来的样子,所以SQL会查询 id=1000 的信息,从而拿到flag

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ctfshow-萌新-web5( 利用位运算符控制SQL获取网站敏感信息) 的相关文章

  • 为什么我的 if 语句没有按我预期的方式工作?

    我正在尝试实现以下目标 我向我的 SQL 数据库询问使用SELECT FROM subjects 这样做之后我要求使用数组mysqli fetch assoc 在那之前一切都很好 现在的问题是 当我尝试在每个循环中修改 genero 的值
  • Mysql 中 UNION 子句的替代方案

    我有两张桌子 表 a 表 b table a ID 1 2 3 4 5 7 table b ID 2 3 4 5 6 我必须得到这样的输出而无需UNION命令 ID 1 2 3 4 5 6 7 注意 我有一个联合解决方案 select fr
  • sql server 按组排名

    问题看似简单 但我却无法理解 这是针对 sql 服务器的 what I have in a table What I need as a output cksum id cksum id 2162514679 204 2162514679
  • 是否有适用于所有数据库的标准sql

    如下所示 不同数据库的语法有所不同 是否存在适用于所有数据库的标准方法 有没有什么工具可以将任意sql转换为任意sql SQL Server 2005 CREATE TABLE Table01 Field01 int primary key
  • 使用 where 进行 select 语句时,HSQLDB 用户缺乏权限或未找到对象错误

    我的数据库使用 SQuirrel SQL 客户端版本 3 5 3 和 HSQLDB 我已经能够为其指定相应的驱动程序 内存中 并创建一个别名 我创建了一个表 CREATE TABLE ENTRY NAME VARCHAR 100 NOT N
  • 在 SQL 数据库中存储“列表”的最正确方法是什么?

    因此 我读了很多关于如何将多个值存储到一个列中是一个坏主意 并且违反了数据标准化的第一条规则 令人惊讶的是 这不是 不要谈论数据标准化 所以我需要一些帮助 目前我正在为我工 作的地方设计一个 ASP NET 网页 我想根据此人所属的 Act
  • MySQL 按重复项从上到下排序

    我有一个lammer问题 因为我不是mysql专业人士 我有类似的字段 id color 1 red 2 green 3 yellow 4 green 5 green 6 red 我想按重复项进行分组 最常见的重复项先进行分组 所以应该这样
  • MySQL Connector C/C API - 使用特殊字符进行查询

    我是一个 C 程序 我有一个接受域名参数的函数 void db domains query char name 使用 mysql query 我测试数据库中是否存在域名 如果不是这种情况 我插入新域名 char query 400 spri
  • 将第三个表链接到多对多关联中的桥接表

    设计这个数据库的正确方法是什么 这是我设置表格的方式 我在名为 教师 的表和名为 仪器 的表之间存在多对多关系 然后我有一个连接两者的桥接表 我想将另一个表与 BRIDGE 表关联起来 意思是乐器 老师的组合 该表有 3 行 指定老师可以教
  • 免费 PHP 登录库 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何使用 vitess 仅对特定表进行分片

    我创建了一个包含三个表的未分片键空间 现在我想对前两个表的键空间进行分片 但不想对第三个表进行分片 如何才能做到这一点 Vitess 文档不包含任何与此相关的信息或示例 请帮忙 Thanks vitess 中的垂直分片与水平分片类似 您应该
  • PHP 通过 SSL 连接到 MS SQL

    我想要实现的目标非常简单 我想通过安全连接从 PHP 脚本连接到外部 MS SQL 数据库 然而 这已被证明是有问题的 到目前为止 经过三个小时的研究 我不知所措 客户端的平台是Ubuntu 这意味着我无法使用SQLSRV 安全连接已经在不
  • 即使使用“autoReconnect=true”,MySql JDBC 也会超时[重复]

    这个问题在这里已经有答案了 有时 我的 Java Tomcat6 Debian Squeeze 应用程序无法与 MySql 服务器通信 Tomcat 应用程序位于前端服务器上 而 MySql 位于单独的 仅限 MySql 的机器上 一个典型
  • 为什么 SqlClient 在传递 SqlXml 时使用不必要的 XML 转换?

    我有一个关于从 C 代码将 xml 数据类型传递给查询的问题 首先 这是 SQL Server 上的一个表 CREATE TABLE dbo XmlTable id int IDENTITY 1 1 NOT NULL dat xml NOT
  • Bugzilla 中分离客户端的基本权限

    我正在尝试配置一个 Bugzilla 实例 这将允许我的客户登录并为其正在开发 维护的网站提交错误 例如 我创建了 2 个名为 TestProject TestProject2 的产品和一个名为 TestClient 的用户 我想要实现的是
  • 如何使用sql作为xml路径('')但保留回车符

    我有下面的代码 select select cast Narrative as Varchar max char 13 from officeclientledger where ptmatter matter and ptTrans 4
  • 同一配置文件上的两个不同提供程序

    我在用着实体框架 6 1 0 I have 2 家提供者 MysqlClient 和 SQLServerCE 我需要创建2个不同的DBContext 这迫使我创造2个配置类因为mysql有一些不同的东西 但是当我初始化应用程序时 Datab
  • 如何使用 LAMBDA 表达式在 LINQ 中执行 IN 或 CONTAINS?

    我有以下 Transact Sql 我正在尝试将其转换为 LINQ 并且很挣扎 SELECT FROM Project WHERE Project ProjectId IN SELECT ProjectId FROM ProjectMemb
  • SQL不允许表中有重复记录

    如何使其不添加重复项 我想让它通过 ID 之外的所有其他列进行检查 我希望这个无效 ID col1 col2 col3 1 first middle last ID col1 col2 col3 2 first middle last 我希
  • SQL Server 上的语法错误

    这可能是一个愚蠢的语法错误 但我只是继续阅读我的程序 但我无法弄清楚我的错误在哪里 消息 156 第 15 级 状态 1 第 41 行关键字附近的语法不正确 为了 这是我的代码 alter procedure LockReservation

随机推荐

  • mysql查询表的所有内容

    show create table 表名
  • echarts设置x轴字体不同颜色

    业务需求 根据x轴是用户和有用户的文件夹来展示两种颜色 在获取数据的方法中 initData totalAnaysis then res gt let xData yData xFontcolor res data user forEach
  • 男人彻底懂得一个女人之后就不会爱她了吗?

    爱情教母张爱玲说过 男人彻底懂得一个女人之后 是不会爱她的 其实张爱玲的表达不确切 谁都不可能彻底懂得谁 自己都不可能彻底懂得自己 否则 张爱玲不会一遍一遍地写自己的童年 对其进行剖析 早年的有散文 私语 后来有英文的 雷峰塔 和中文的 小
  • java 提取文档注释 命令,java文档注释及javadoc命令

    注释的三种类型 1 单行注释 双斜线 2 多行注释 一次性将程序的多行注释掉 3 文档注释 如果编写Java源代码是添加了合适的文档注释 然年后通过JDK提供的Javadoc工具可以直接将源代码里面的文档注释提取成一份系统的API文档 文档
  • 破解AES秘钥长度限制

    破解AES秘钥长度限制 高级加密标准 AES 在密码学中又称Rijndael加密法 是美国联邦政府采用的一种区块加密标准 这个标准用来替代原先的DES 密码说明 因为Rijndael加密法可以支持更大范围的区块和密钥长度 AES的区块长度固
  • 在liunx双机下自己动手实现浮动IP技术

    http www 360doc com content 11 0823 18 5907545 142730623 shtml 有两台Linux服务器 其中一台主机 IP 139 24 214 22 对外提供了一定的网络服务 另一台从机 IP
  • 性能测试连载 (7)-jmeter 压力测试中的难点解析

    概述 新人在用jmeter做压力测试的时候 会被一些性能术语搞懵 直接导致的后果就是对测试出来的结果数据根本不能理解 更谈不上分析 这篇文章着重给大家实例解释一下jmeter压力测试的一些专有名词 问题1 什么是压力测试 问到如何做压力测试
  • 不同行业数字化工厂建设的几种模式

    国内制造业现阶段面临着巨大的转型压力 劳动力成本迅速攀升 产能过剩 竞争激烈 客户个性化需求日益增长等因素 迫使制造企业从低成本竞争策略转向建立差异化竞争优势 在工厂层面 企业面临着招工难 以及缺乏专业技师的巨大压力 必须实现减员增效 迫切
  • Doris 报错及解决方法

    1 1105 errCode 3 detailMessage tablet 348546 has few replicas 0 alive backends 用csv文件导入数据时报错 用show backends查看有BE节点宕机了 2
  • 基于STM32单片机的农作物大棚灌溉系统设计

    一 硬件方案 本设计以STM32单片机作为主控芯片 实现对农作物大棚环境的温度 湿度 光强度和土壤湿度进行监测 并根据具体情况进行相应的补水和补光 主要由STM32F103C8T6单片机最小系统 wifi模块 温湿度模块 1602液晶显示模
  • windows下编译libLAS库及配置

    windows下编译libLAS库及配置 前言 LibLAS编译 1 在进行编译之前我们首先需要编译Boost GDAL TIFF LASZIP和GeoTIFF的编译 大家可以参考下面的教程 Boost https blog csdn ne
  • jsp页面有中文显示乱码

    Tomcat目录的webapp目录下新建jspProject目录 创建以上文件夹 其中web inf文件夹可从ROOT目录下复制 新建index jsp 代码如下 hello Jsp 访问页面 中文显示乱码 更改jsp编码格式 在头一行中加
  • 【MySQL】mysql在Windows下使用mysqldump命令备份数据库

    在cmd窗口中使用mysqldump命令首先需要配置环境变量 1 在计算机中找到MySQL的安装位置 找到MySQL Workbench 比如我的是C Program Files MySQL MySQL Server 5 7 bin 2 在
  • 【目标检测】5、Faster R-CNN

    文章目录 摘要 引言 2 相关工作 3 Faster R CNN 3 1 区域提议网络 3 1 1 anchor 3 1 2 损失函数 3 1 3 训练RPNs 3 2 RPN和Fast R CNN的特征共享 3 3 实现细节 4 实验 4
  • (python)用户输入一段英文,然后输出这段英文中所有长度为3的英文单词

    正则表达式 集合 import re words input Input the words l re split words 使用空格分隔词语 得到各个单词 print l i 0 这里我设置的是计数器 for i in l if len
  • Linux下逻辑地址、线性地址、物理地址详细总结

    一 逻辑地址转线性地址 机器语言指令中出现的内存地址 都是逻辑地址 需要转换成线性地址 再经过MMU CPU中的内存管理单元 转换成物理地址才能够被访问到 我们写个最简单的hello world程序 用gcc编译 再反编译后会看到以下指令
  • awk的sort功能(zz)

    awk的sort功能 zz 2009 04 27 19 07 排序是经常用到的操作 然而原始版本的awk并没有内置的sort函数 想要排序数组的话只能自己实现一个sort函数 在gawk的3 1以后的版本 扩展提供了对数组的sort功能 a
  • Android开源框架之Android-PullToRefresh

    简介 PullToRefresh是一套实现非常好的下拉刷新库 它支持 ListView ExpandableListView GridView WebView ScrollView HorizontalScrollView ViewPage
  • conda的一些常用命令

    参考博客 我们可以在命令行中或者anaconda prompt中执行命令进行操作 常用命令留存 conda create n Python27 python 3 7 conda create n new env clone original
  • ctfshow-萌新-web5( 利用位运算符控制SQL获取网站敏感信息)

    ctf show 萌新模块 we5关 这一关考察的是intval 函数转换字符串的特性和SQL注入的绕过思路 这一关过滤了单双引号 or 斜杠 加减乘除号 叹号 括号 select等关键字 推荐使用取反运算符 来控制SQL语句 获取flag