当前位置: 首页 > news >正文

ctfshow之_萌新web1至web7

一、访问在线靶场ctfshow

ctf.showhttps://ctf.show/challenges如下图所示,进入_萌新赛的web1问题:

如上图所示,页面代码提示id=1000时,可以查询到flag,进行如下尝试:

如下图所示,传入参数id=1时,显示出了标题(title)和内容(content)。

 如上图所示,可以看到查询sql语句,尝试使用id=1 or id =1000,截图如下:

 如上图所示,只显示了id=1时的内容,再看sql语句,order by id limit 1,对id进行了排序且只输出第1条的title和content。尝试传入参数id=2时,title和content都没显示出来,截图如下:

尝试传入参数id=2 or id=1000,title和content显示出来了id=1000时的title和content,截图如下:

 这这这,为何显示了flag❓

order by id limit 1为何显示出来了id=1000的title和content呢?!

本来想着让order by id limit 1失效,没想到flag显示出来了😓。

尝试传入参数id=2 or id=1000 --+,如截图所示也显示出来flag,--+在数据库中是注释掉后面一行内容,即使order by id limit 1失效,这里的+,在浏览器访问地址中表示空格,传入sql语句中是空格。

 尝试传入参数id=2 || id=1000同上,如截图所示也显示出来flag。

尝试传入参数id=2 union select * from article where id=1000,如截图所示也显示出来flag。

 尝试传入参数id='1000',如截图所示也显示出来flag。

尝试传入参数id="1000",如截图所示也显示出来flag。

 尝试传入参数id=~~1000~在sql语句中表示取反,~~1000是取反后再取反,即还是原数1000,如截图所示也显示出来flag。

 尝试传入参数id=0b1111101000即二进制数1000,如截图所示也显示出来flag。

 尝试传入参数id=01750即八进制数1000,为何未显示出来flag?!

  尝试传入参数id=0x3e8即十六进制数1000,如截图所示也显示出来flag。

 尝试传入参数id=20*50即20乘以50运算,等于1000,如截图所示也显示出来flag。

尝试传入参数id=500/0.5即500除以0.5运算,等于1000,如截图所示也显示出来flag。

尝试传入参数id=0000^1000即0000异或1000运算,等于1000,如截图所示也显示出来flag。

 尝试传入参数id=0000|1000即0000或1000运算,等于1000,如截图所示也显示出来flag。

  尝试传入参数id=125<<3即125的二进制左移3位后,后面补0,等于1000,如截图所示也显示出来flag。

尝试传入参数id=power(10,3)即10的3次方运算,等于1000,如截图所示也显示出来flag。

尝试传入参数id='1e3'即科学计数法10的3次方运算,等于1000,如截图所示也显示出来flag。

  尝试传入参数id=/**/1000/**/在sql语句中,星号之间是注释说明,如截图所示也显示出来flag。

  尝试传入参数id=/*!1000*//*!1000*/在sql语句中是内联注释,如截图所示也显示出来flag。

 二、$_GET['id']获取到的参数是String类型的

如下图所示,尝试传如参数id='1000'或id=8时,$_GET['id']获取到的id数值类型是String类型的。

所以想要输出id=1000时的结果,需要查看intval()的运行结果,且需要查询sql能正常执行。

比如,传入参数id=id=2 or id=1000 --+,intval("id=2 or id=1000 --+")的运行结果是2,且sql执行结果是查询出了id=2 or id=1000的结果。

比如,传入参数id='1000',intval("'1000'")的运行结果是0,查询sql时id='1000',直接查询出id=1000的结果。

比如,传入参数id=01750,intval("01750")的运行结果是1750,所以未能执行sql,查不出来flag!

另外,就是id传入的参数是字符串,intval()转为整数时,是一位一位转换为整数时,遇到非数字值时则停止,若没有数值,则直接返回0,所以intval("id=2 or id=1000 --+")转换为整数时是2。


三、intval()函数尝试

再返回来看看该题,传入参数id=1000时报错;审计代码,使用intval($id)函数进行条件判断,菜鸟教程查询该函数,解释如下:

 被这个intval()函数搞得晕头转向了😓

 在csdn的InsCode编辑其中,中进行了如上尝试,感觉貌似知道了intval函数啥意思,又被菜鸟教程的实例搞晕了,继续尝试,怎么都没法理解,想出来的奇葩理由🤭:

对于这个函数神奇的表现,猜测如下😂:

intval()函数返回的是十进制的整数。

第一个参数可以是数字、可以是字符串。

第二个参数是指定第一个参数的数字类型(二进制、八进制、十六进制......),可以指定,也可以不指定,不指定时默认为十进制,若是0,将会对第一个参数做合法性校验。

第一个参数若为字符串,转换为十进制时是一位一位来计算的,若和第二位参数指定的类型不符时,遇到不合法位前,也会一位一位计算出第二位参数指定进制的十进制结果;若没有指定第二个参数,那么默认按十进制转换;第一个参数若为数值时,第二个参数指明的类型是否正确,你就别给我胡强了的感觉😄。

另外还有个特殊情况,就是第二个参数可以是0,是0时,会判断第一个参数是不是满足数据类型要求,比如二进制0b10(二进制以0b开头,数值部分只能包含1或0),八进制072(八进制以0开头,数值部分只能包含0至7这8个数字),十六进制0xa8(十六进制以0x开头,数值部分只能包含0至9,a至f),若不满足数据类型要求,则直接报语法错误!


相关文章:

ctfshow之_萌新web1至web7

一、访问在线靶场ctfshow ctf.showhttps://ctf.show/challenges如下图所示&#xff0c;进入_萌新赛的web1问题&#xff1a; 如上图所示&#xff0c;页面代码提示id1000时&#xff0c;可以查询到flag&#xff0c;进行如下尝试&#xff1a; 如下图所示&#xff0c;传入参数id1时…...

HPDA的资料

HPDA&#xff0c;英文全称为High Performance Data Analysis&#xff0c;直译为高性能数据分析。 适用场景 机器学习大数据分析 技术挑战 大量的元数据操作数据的同步随机读写高IOPOS的小IO请求高带宽的文件请求 技术关键字 存算分离移动计算大I/O直通&#xff0c;小I/O聚…...

项目管理软件可以用来做什么?这篇文章说清楚了

项目管理软件是用来干嘛的&#xff0c;就得看对项目的理解。项目是为创造独特的产品、服务或成果而进行的临时性工作。建造一座大楼可以是一个项目&#xff0c;进行一次旅游活动、日常办公活动、期末考试复习等也都可以看成一个项目。 项目管理不善会导致项目超时、超支、返工、…...

ETL工具 - Kettle 转换算子介绍

一、Kettle 转换算子 上篇文章对 Kettle 中的输入输出算子进行了介绍&#xff0c;本篇文章继续对转换算子进行讲解。 下面是上篇文章的地址&#xff1a; ETL工具 - Kettle 输入输出算子介绍 转换是ETL里面的T&#xff08;Transform&#xff09;&#xff0c;主要做数据转换&am…...

界面设计的读书笔记

所见即所得&#xff0c;属于绝大多数的人。 所想即所想&#xff0c;属于极少数的人。 当复杂度&#xff0c;超出了大脑的负荷&#xff0c;人会觉得很累&#xff0c;直到放弃追求。 地图的显示&#xff0c;必须有足够多的描述性的数据。 点信息 &#xff1a;标签&#xff0c;位…...

C#底层库--自定义进制转换器(可去除特殊字符,非Convert.ToString方式)

系列文章 C#底层库–程序日志记录类 本文链接&#xff1a;https://blog.csdn.net/youcheng_ge/article/details/124187709 C#底层库–MySQLBuilder脚本构建类&#xff08;select、insert、update、in、带条件的SQL自动生成&#xff09; 本文链接&#xff1a;https://blog.csd…...

Doris(24):Doris的函数—聚合函数

1 APPROX_COUNT_DISTINCT(expr) 返回类似于 COUNT(DISTINCT col) 结果的近似值聚合函数。 它比 COUNT 和 DISTINCT 组合的速度更快,并使用固定大小的内存,因此对于高基数的列可以使用更少的内存。 select city,approx_count_distinct(user_id) from site_visit group by c…...

干货! ICLR:将语言模型绑定到符号语言中个人信息

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入&#xff01; ╱ 作者简介╱ 承洲骏 上海交通大学硕士生&#xff0c;研究方向为代码生成&#xff0c;目前在香港大学余涛老师的实验室担任研究助理。 个人主页&#xff1a;http://blankcheng.github.io 谢天宝 香港大学一年级…...

Windows安装mariadb,配置环境变量(保姆级教学)

软件下载地址&#xff1a;https://mariadb.com/downloads/ 1.双击下载好的软件 2.点击next 3.勾选我同意&#xff0c;点击next 4.这里那你可以设置你要安装的路径&#xff0c;也可以使用默认的&#xff0c;之后点击next 5.如图所示&#xff0c;设置完点击next 6.接下来就默…...

华为OD机试 - 积木最远距离(Python)

题目描述 小华和小薇一起通过玩积木游戏学习数学。 他们有很多积木,每个积木块上都有一个数字,积木块上的数字可能相同。 小华随机拿一些积木挨着排成一排,请小薇找到这排积木中数字相同且所处位置最远的2块积木块,计算他们的距离,小薇请你帮忙替她解决这个问题。 输入描…...

关于对于springcloud中的注册中心和consume消费者和provier服务者之间的关系理解

关于对于springcloud中的注册中心和consume消费者和provier服务者之间的关系理解 pringCloud provider&#xff08;服务提供方&#xff09; consumer&#xff08;服务调用方&#xff09; server&#xff08;注册中心&#xff09; 运行原理 Provider 第一步 provider注册到se…...

【学习笔记】「JOISC 2022 Day1」错误拼写

久违的字符串计数题。 显然只用考虑 [ i : j ] [i:j] [i:j]这一段拼成的串。不难得出结论&#xff1a;设 n x t i nxt_i nxti​表示 i i i之后第一个本质不同的字符的位置&#xff0c;那么 n x t i ≤ j nxt_i\le j nxti​≤j&#xff0c;并且 s i ? s n x t i s_i?s_{nxt_i…...

码出高效:Java开发手册笔记(线程池及其源码)

码出高效&#xff1a;Java开发手册笔记&#xff08;线程池及其源码&#xff09; 码出高效&#xff1a;Java开发手册笔记&#xff08;线程池及其源码&#xff09; 码出高效&#xff1a;Java开发手册笔记&#xff08;线程池及其源码&#xff09;前言一、线程池的作用线程的生命周…...

【MySQL】交叉连接、自然连接和内连接查询

一、引入 实际开发中往往需要针对两张甚至更多张数据表进行操作&#xff0c;而这多张表之间需要使用主键和外键关联在一起&#xff0c;然后使用连接查询来查询多张表中满足要求的数据记录。一条SQL语句查询多个表&#xff0c;得到一个结果&#xff0c;包含多个表的数据。效率高…...

长/短 链接/轮询 和websocket

短连接和长连接 短连接&#xff1a; http协议底层基于socket的tcp协议&#xff0c;每次通信都会新建一个TCP连接&#xff0c;即每次请求和响应过程都经历”三次握手-四次挥手“优点&#xff1a;方便管理缺点&#xff1a;频繁的建立和销毁连接占用资源 长连接&#xff1a; 客…...

数据库的事务

数据库的事务 1、事务是什么 TRANSACTION&#xff08;事务&#xff09;是数据库管理系统执行过程中的一个逻辑单位&#xff0c;由一个有限的数据库操作序列构成。 2、事务可以做什么 数据库事务通常包含了一个序列的对数据库的读/写操作。包含有以下两个目的&#xff1a; …...

专利进阶(二):专利撰写常用技术及算法汇总(持续更新中)

文章目录 一、前言二、常用技术及算法2.1 区跨链技术2.2 聚类算法2.3 边缘算法2.4 蚁群算法2.4.1 路径构建2.4.2 信息素更新 2.5 哈希算法2.5.1 常见算法 2.6 数字摘要2.72.82.92.10 三、拓展阅读 一、前言 专利撰写过程中使用已有技术或算法解决新问题非常常见&#xff0c;本…...

C#手术麻醉临床信息系统源码,实现体征数据自动采集绘制

手麻系统源码&#xff0c;自动生成电子单据 基于C# 前端框架&#xff1a;Winform后端框架&#xff1a;WCF 数据库&#xff1a;sqlserver 开发的手术麻醉临床信息系统源码&#xff0c;应用于医院手术室、麻醉科室的计算机软件系统。该系统针对整个围术期&#xff0c;对病人进…...

现代CMake高级教程 - 第 7 章:变量与缓存

双笙子佯谬老师的【公开课】现代CMake高级教程课程笔记 第 7 章&#xff1a;变量与缓存 重复执行 cmake -B build 会有什么区别&#xff1f; ❯ cmake -B build -- The C compiler identification is GNU 11.3.0 -- The CXX compiler identification is GNU 11.3.0 -- Detec…...

SQL知识汇总

什么时候用存储过程合适 当一个事务涉及到多个SQL语句时或者涉及到对多个表的操作时就要考虑用存储过程&#xff1b;当在一个事务的完成需要很复杂的商业逻辑时&#xff08;比如&#xff0c;对多个数据的操作&#xff0c;对多个状态的判断更改等&#xff09;要考虑&#xff1b…...

Android Wi-Fi 连接失败日志分析

1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分&#xff1a; 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析&#xff1a; CTR…...

C++_核心编程_多态案例二-制作饮品

#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为&#xff1a;煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例&#xff0c;提供抽象制作饮品基类&#xff0c;提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...

JavaScript 中的 ES|QL:利用 Apache Arrow 工具

作者&#xff1a;来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗&#xff1f;了解下一期 Elasticsearch Engineer 培训的时间吧&#xff01; Elasticsearch 拥有众多新功能&#xff0c;助你为自己…...

从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路

进入2025年以来&#xff0c;尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断&#xff0c;但全球市场热度依然高涨&#xff0c;入局者持续增加。 以国内市场为例&#xff0c;天眼查专业版数据显示&#xff0c;截至5月底&#xff0c;我国现存在业、存续状态的机器人相关企…...

苍穹外卖--缓存菜品

1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得&#xff0c;如果用户端访问量比较大&#xff0c;数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据&#xff0c;减少数据库查询操作。 缓存逻辑分析&#xff1a; ①每个分类下的菜品保持一份缓存数据…...

ElasticSearch搜索引擎之倒排索引及其底层算法

文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)

前言&#xff1a; 双亲委派机制对于面试这块来说非常重要&#xff0c;在实际开发中也是经常遇见需要打破双亲委派的需求&#xff0c;今天我们一起来探索一下什么是双亲委派机制&#xff0c;在此之前我们先介绍一下类的加载器。 目录 ​编辑 前言&#xff1a; 类加载器 1. …...

Docker拉取MySQL后数据库连接失败的解决方案

在使用Docker部署MySQL时&#xff0c;拉取并启动容器后&#xff0c;有时可能会遇到数据库连接失败的问题。这种问题可能由多种原因导致&#xff0c;包括配置错误、网络设置问题、权限问题等。本文将分析可能的原因&#xff0c;并提供解决方案。 一、确认MySQL容器的运行状态 …...

【UE5 C++】通过文件对话框获取选择文件的路径

目录 效果 步骤 源码 效果 步骤 1. 在“xxx.Build.cs”中添加需要使用的模块 &#xff0c;这里主要使用“DesktopPlatform”模块 2. 添加后闭UE编辑器&#xff0c;右键点击 .uproject 文件&#xff0c;选择 "Generate Visual Studio project files"&#xff0c;重…...

电脑桌面太单调,用Python写一个桌面小宠物应用。

下面是一个使用Python创建的简单桌面小宠物应用。这个小宠物会在桌面上游荡&#xff0c;可以响应鼠标点击&#xff0c;并且有简单的动画效果。 import tkinter as tk import random import time from PIL import Image, ImageTk import os import sysclass DesktopPet:def __i…...