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

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

  1. ctfshow-萌新-web12( 利用命令执行函数获取网站敏感信息)

    ctf.show 萌新模块 web12关, 这一关考察的是代码执行漏洞的利用, 重点在于命令执行函数的利用方式, 推荐使用反引号(``) 或者 base64加密绕过 页面中展示了部分源码, 并提示我们 ...

  2. ctfshow-萌新-web10( 利用命令执行漏洞获取网站敏感信息)

    ctf.show 萌新模块 web10关,这一关考察的是命令执行漏洞的利用,闯关者需要知道3个以上PHP命令执行函数的使用,推荐使用 passthru() 页面中展示了部分源码,并提示我们 flag ...

  3. ctfshow-萌新-web6( 利用二进制绕过获取网站敏感信息)

    ctf.show 萌新模块 web6关,这一关的考点是intval()函数转换字符串的特性,以及SQL注入漏洞的绕过方式,源码中过滤了单双引号,or,加减乘除号,叹号,异或,hex,select等关键 ...

  4. ctfshow-萌新-web14( 曲线救国-POST请求绕过获取网站敏感信息)

    ctf.show 萌新模块 web14关, 此关卡是一个代码执行漏洞, 重点在于命令执行函数的利用方式, 源码中过滤比较严格, 尤其是过滤了分号;之后, 虽然可以用?>来代替分号, 但这样一来就 ...

  5. CTFSHOW 萌新赛 萌新记忆

    CTFSHOW 萌新赛 萌新记忆 吐槽一下我感觉萌新这个词在侮辱我,我还搞了半天 进去之后查看源代码,把能点的地方都点一下发现没有什么可以搞的,就打开了御剑来扫描了一波,发现了admin目录进去要让我 ...

  6. ctfshow 萌新计划 writeup1-8

    ctfshow 萌新计划 writeup1-8 web1 题目:代码很安全,没有漏洞. 网页代码如下 <html> <head><title>ctf.show萌新计 ...

  7. 利用位运算控制开关灯问题

    <C++笔记> 利用位运算控制开关灯问题 新手上路,可能有很多不足的地方,欢迎大家多多在留言区提出自己的观点以及更好的办法. 问题描述:俱乐部一共有32盏灯,设计一个灯光控制系统,共有4部 ...

  8. ctfshow 萌新web10-21

    ctfshow 萌新web10-21 web10 题目提示flag在congfig.php中 php中作为执行系统命令的函数: system() passthru() exec() shell_exe ...

  9. ctfshow萌新红包题writeup

    ctfshow萌新专属红包题writeup 题目来源:https://ctf.show/ 这一题是ctfshow平台上面2月17日更新的一个萌新红包题,当天在官方交流群内知道晚上会有一个萌新红包题之后 ...

最新文章

  1. Oracle错误大全(目前自己所碰到的)
  2. 浅谈OpenCV[轉]
  3. 【C++深度剖析教程8】C++的操作符重载的概念
  4. 【数据分析】reshape(-1,1)和numpy的广播机制
  5. 【Jetson-Nano】2.Tensorflow和Pytorch的安装
  6. php调用.net webservice,PHP调用.NET的WebService 简单实例
  7. 记录一次maven依赖成功导入,但找不到相关包的IDEA臭bug
  8. android同步服务器时间同步,Android时间与服务器同步方案
  9. Ubuntu20.04下搜狗输入法安装配置(超精简)
  10. matlab抛物柱面 y 2=2x,求曲面z=根号(x2+y2)被柱面z2=2x割下部分的面积
  11. python 100以内3的倍数_在python中确定3或5的倍数
  12. 计算机wifi共享usb设备,手机设置wifi热点如何通过usb和电脑共享网络
  13. Google搜索关键字
  14. XFS (dm-0) I/O error问题修复
  15. c语音删除字符数组中的元素
  16. Argo CD系列视频图文版之手把手教你搭建Argo CD 实验环境
  17. Bootstrap carousel轮转图的使用
  18. 用cdn网址的方式引入echart和echart-gl
  19. Java对象的序列化(Serialization)和反序列化详解
  20. 基于jquery+php+mysql 制作 仿google日历记事

热门文章

  1. 在iMac上建立一个git仓库
  2. suoi14 子树查找 (dfs)
  3. vue - webpack.dev.conf.js
  4. sql server 碎片整理——DBCC SHOWCONTIG
  5. Linux命令——压缩和解压缩
  6. POJ3246-Balanced Lineup,好经典的题,做法和HDU-I hate it 一样~~
  7. 在.NET 3.5 平台上使用LINQ to SQL创建三层/多层Web应用系统(源代码下载和PDF文档下载)...
  8. 南京牵手印度软件 本土软件企业态度不一
  9. Linux下进程的建立 并附Linux exec函数族
  10. Visual Stdio下安装WTL的向导Widzard