CTFs and solutions

This commit is contained in:
emln
2025-04-27 19:24:27 +02:00
commit aa0fe54b3b
426 changed files with 2756 additions and 0 deletions

12
openssl-asym/convert.py Normal file
View File

@ -0,0 +1,12 @@
payload1 = "00:9e:ee:82:dc:2c:d4:a0:0c:4f:5a:7b:86:63:b0:c1:ed:06:77:fc:eb:de:1a:23:5d:f4:c3:ff:87:6a:7d:ad:c6:07:fa:a8:35:f6:ae:05:03:57:3e:22:36:76:d5:0d:57:4f:99:f9:58:ad:63:7a:e7:45:a6:aa:fa:02:34:23:b6:9d:34:15:7b:11:41:b6:b1:ca:b9:1a:cd:29:55:bd:42:f5:04:ab:df:45:4a:9d:4e:ca:4e:01:f9:f8:74:59:67:ee:b6:a9:fb:96:b7:c0:94:00:17:8a:53:0e:b6:d8:31:c9:68:e6:64:38:d3:63:3a:04:d7:88:6b:f0:e1:ad:60:7f:41:bd:85:7b:d9:04:e1:97:5b:1f:9b:05:ce:ac:2c:c4:55:3f:b4:8b:89:4d:0a:50:9a:09:4e:5e:8f:5b:5f:55:69:72:5f:04:9b:3a:8a:09:b4:7f:8d:b2:ca:52:0e:5e:bf:f4:b0:ee:c9:ba:dc:93:4f:6d:d3:1f:82:1a:d9:fc:2c:a7:3f:18:23:0d:d7:44:c7:28:54:67:84:ee:73:92:65:f0:1c:e8:1e:6d:4d:95:65:b4:c8:4f:b8:04:62:58:2b:ee:32:64:a0:a7:dc:99:25:0e:50:53:76:bc:30:db:71:5e:93:d6:9f:1f:88:1c:76:5d:82:c8:59:39:51"
payload2 = "00:d2:c6:01:32:6b:4c:4b:85:5f:52:7b:b7:8e:d6:8a:e4:c8:76:7e:6b:c9:24:9a:3e:ca:cd:2f:c9:b8:75:d4:f9:71:11:e1:cf:be:62:d3:2c:5f:f9:fd:9b:fa:ed:62:f3:df:44:c7:57:fb:ee:9b:b2:32:cb:54:49:29:6c:69:2e:30:1d:8c:1f:fa:b1:8e:e4:49:66:c1:fb:92:7c:82:ca:60:c9:40:a4:0a:b2:db:50:ec:f6:ff:98:a7:16:23:38:8d:06:d2:7c:a9:85:8a:c2:2b:4d:d4:e6:f1:89:e5:b0:42:54:a0:5f:3c:dd:c7:64:33:05:11:fb:ee:8b:26:07"
print("Payload1:")
for i in payload1.split(":"):
print(i, end="")
print("")
print("Payload2:")
for i in payload2.split(":"):
print(i, end="")
print("")
print("Length "+ str(len(payload1.split(":"))))
print("Length "+ str(len(payload2.split(":"))))

View File

@ -0,0 +1,13 @@
import sys
for i in sys.argv:
payload = i
mlen = len(payload.split(":"))
print("------")
print("CRYPTO25{",end="")
if mlen % 64 == 0:
print("00:",end="")
print(payload,end="")
print("}")
print("Length:"+str(mlen))
print("------")

BIN
openssl-asym/prime Executable file

Binary file not shown.

85
openssl-asym/prime.c Normal file
View File

@ -0,0 +1,85 @@
#include <openssl/bn.h>
#include <stdio.h>
#include <string.h>
#define PRINT(obj) print_fmt(BN_bn2hex(obj))
void print_fmt(char* after){
for(int i=0; i < strlen(after); i++){
if(i != 0 && i % 2 == 0)
printf(":");
if(after[i] - '0' <= 9 && after[i] - '0' >= 0)
printf("%c",after[i]);
else
printf("%c", after[i]+32);
}
}
int main(){
BIGNUM *bn1 = BN_new();
BIGNUM *bn2 = BN_new();
BIGNUM *res = BN_new();
BIGNUM *rem = BN_new();
BN_CTX *ctx = BN_CTX_new();
char payload1[] = "009eee82dc2cd4a00c4f5a7b8663b0c1ed0677fcebde1a235df4c3ff876a7dadc607faa835f6ae0503573e223676d50d574f99f958ad637ae745a6aafa023423b69d34157b1141b6b1cab91acd2955bd42f504abdf454a9d4eca4e01f9f8745967eeb6a9fb96b7c09400178a530eb6d831c968e66438d3633a04d7886bf0e1ad607f41bd857bd904e1975b1f9b05ceac2cc4553fb48b894d0a509a094e5e8f5b5f5569725f049b3a8a09b47f8db2ca520e5ebff4b0eec9badc934f6dd31f821ad9fc2ca73f18230dd744c728546784ee739265f01ce81e6d4d9565b4c84fb80462582bee3264a0a7dc99250e505376bc30db715e93d69f1f881c765d82c8593951";
char payload2[] = "00d2c601326b4c4b855f527bb78ed68ae4c8767e6bc9249a3ecacd2fc9b875d4f97111e1cfbe62d32c5ff9fd9bfaed62f3df44c757fbee9bb232cb5449296c692e301d8c1ffab18ee44966c1fb927c82ca60c940a40ab2db50ecf6ff98a71623388d06d27ca9858ac22b4dd4e6f189e5b04254a05f3cddc764330511fbee8b2607";
BN_hex2bn(&bn1, payload1);
BN_hex2bn(&bn2,payload2);
//printf(" --- ADD Operation: ---\n");
BN_add(res, bn1, bn2);
//if(BN_check_prime(bn1, NULL, NULL))
// printf("\n NUMBER is prime \n");
PRINT(res);
printf(" ");
//printf("\n--- SUB Operation ---\n");
BN_sub(res, bn1, bn2);
//if(BN_check_prime(bn1, NULL, NULL))
// printf("\n NUMBER is prime \n");
PRINT(res);
printf(" ");
//printf("\n--- MUL Operation --- \n");
BN_mul(res,bn1,bn2,ctx);
//if(BN_check_prime(bn1, NULL, NULL))
// printf("\n NUMBER is prime \n");
PRINT(res);
printf(" ");
//Skip BN_sqr
BN_div(res,rem,bn1,bn2,ctx);
PRINT(res);
printf(" ");
//if(BN_check_prime(bn1, NULL, NULL))
// printf("\n DIV is prime \n");
//else
// printf("DIV is not prime \n");
//printf("\nReminder:\n");
PRINT(rem);
printf(" ");
//printf("\n --- MOD Operation --- \n");
BN_mod(rem, bn1, bn2,ctx);
//if(BN_check_prime(bn1, NULL, NULL))
// printf("\n NUMBER is prime \n");
PRINT(rem);
printf(" ");
//printf("\n --- NNMOD Operation --- \n");
BN_nnmod(rem, bn1, bn2, ctx);
//if(BN_check_prime(bn1, NULL, NULL))
// printf("\n NUMBER is prime \n");
PRINT(rem);
printf(" ");
//printf("\n --- GCD Operation --- \n");
BN_gcd(res, bn1, bn2, ctx);
//if(BN_check_prime(bn1, NULL, NULL))
// printf("\n NUMBER is prime \n");
PRINT(res);
printf("\n");
//if(BN_check_prime(bn1,NULL,NULL)){
// printf("BN1 is prime\n");
//}
//if(BN_check_prime(bn2,NULL,NULL)){
// printf("BN2 is prime\n");
//}
BN_free(bn1);
BN_free(bn2);
BN_free(res);
BN_free(rem);
BN_CTX_free(ctx);
return 0;
}

1
openssl-asym/python Normal file
View File

@ -0,0 +1 @@
9e:ee:82:dc:2c:d4:a0:0c:4f:5a:7b:86:63:b0:c1:ed:06:77:fc:eb:de:1a:23:5d:f4:c3:ff:87:6a:7d:ad:c6:07:fa:a8:35:f6:ae:05:03:57:3e:22:36:76:d5:0d:57:4f:99:f9:58:ad:63:7a:e7:45:a6:aa:fa:02:34:23:b6:9d:34:15:7b:11:41:b6:b1:ca:b9:1a:cd:29:55:bd:42:f5:04:ab:df:45:4a:9d:4e:ca:4e:01:f9:f8:74:59:67:ee:b6:a9:fb:96:b7:c0:94:00:17:8a:53:0e:b6:d8:31:c9:68:e6:64:38:d3:63:3a:04:d7:88:6b:f0:e1:ad:61:52:07:be:b7:e7:25:50:66:f6:ad:9b:52:94:a5:37:11:8c:cb:be:20:54:ad:e7:49:1b:67:39:18:17:05:30:58:c6:7b:54:2e:c2:fe:0d:b6:69:ae:7d:29:ad:b7:b5:02:3e:04:bc:08:ea:b8:56:8e:c6:1a:c2:1c:48:ee:84:08:2c:4a:33:5f:12:d4:9c:bb:8e:2d:ea:4f:fa:01:71:3d:f3:2f:30:c0:f2:d1:48:9e:82:5c:b4:60:f6:ce:27:9a:e5:32:c0:af:0e:26:32:9e:c4:72:e3:37:45:00:a1:e1:1d:c5:fe:f3:13:7c:e6:ec:4f:7b:6f:7e:b6:e4:5f:58 9e:ee:82:dc:2c:d4:a0:0c:4f:5a:7b:86:63:b0:c1:ed:06:77:fc:eb:de:1a:23:5d:f4:c3:ff:87:6a:7d:ad:c6:07:fa:a8:35:f6:ae:05:03:57:3e:22:36:76:d5:0d:57:4f:99:f9:58:ad:63:7a:e7:45:a6:aa:fa:02:34:23:b6:9d:34:15:7b:11:41:b6:b1:ca:b9:1a:cd:29:55:bd:42:f5:04:ab:df:45:4a:9d:4e:ca:4e:01:f9:f8:74:59:67:ee:b6:a9:fb:96:b7:c0:94:00:17:8a:53:0e:b6:d8:31:c9:68:e6:64:38:d3:63:3a:04:d7:88:6b:f0:e1:ad:5f:ac:7b:bc:53:10:8c:b9:5c:38:08:a3:e3:76:f8:21:47:fb:de:c1:48:c2:64:b2:cb:85:cc:d9:84:a6:19:86:65:e4:57:90:8f:46:38:67:5d:a9:ba:81:f1:b7:dc:ef:1a:7f:7b:2d:58:f2:db:1f:2a:60:84:19:89:f6:15:b1:ab:cc:0f:1b:1f:1d:71:7e:f2:fb:60:66:58:d5:08:6b:a9:31:9c:af:78:dd:6b:91:fc:a8:6e:b5:2f:a8:a1:e1:29:cb:25:1b:b5:bb:1b:1d:1a:6d:d7:39:69:61:ec:d6:80:99:1c:be:34:99:c1:58:23:e9:71:4b:86:d9:ce:13:4a 82:da:94:90:0e:c6:91:4f:06:4d:4b:55:0d:42:f9:30:54:4b:20:56:7e:44:bd:29:20:83:df:71:b1:37:69:b6:b8:be:5f:ec:b9:b4:eb:55:85:d1:7f:39:00:38:11:9e:22:f2:6d:ad:cc:0e:e5:27:60:01:ab:7e:a0:3e:55:7a:4b:e7:71:bc:ed:69:7f:44:07:20:94:27:49:a9:04:20:82:65:e9:e3:84:0a:e2:86:70:18:23:87:1a:f6:2e:cf:3c:67:c1:59:09:4b:ca:1e:c2:4f:6f:b6:ef:bd:a1:4b:fe:00:02:87:ab:29:05:2d:0a:f1:43:0c:f1:c4:2a:ed:83:af:9b:b1:10:bc:c4:78:bc:57:43:5b:3d:ed:61:8c:de:e3:14:15:f3:09:7a:d9:27:e2:b0:22:9c:4c:57:b2:59:59:71:c2:5f:79:92:ca:29:9c:06:d9:80:2d:89:45:b0:e5:42:fa:85:fb:0b:75:4f:9b:de:b9:22:5a:72:d2:48:c0:6d:d6:11:d2:18:ee:6f:78:0e:87:04:14:8c:eb:84:52:47:5c:69:f2:e7:4e:83:2f:b0:22:0d:54:25:b1:67:fd:0b:5f:da:2a:79:19:50:e5:03:56:08:d9:5d:25:24:a7:4f:41:4a:fc:5d:f0:f5:d8:df:65:fa:db:52:e7:74:1d:4b:82:c5:6d:29:d2:5a:ff:7f:e8:58:72:42:ca:02:b5:e8:db:bc:b4:3b:4e:d3:d9:12:94:d7:b1:50:2b:be:05:8e:32:ce:13:15:d9:4b:af:a9:c0:5e:5b:28:38:76:31:41:d2:0e:c5:1e:85:61:f6:b0:6c:10:43:18:d4:e1:21:05:1b:da:3a:9d:36:d3:06:6a:3f:fb:7c:da:4e:f5:4f:82:d0:6d:85:59:f9:e2:20:f4:60:bd:5f:e7:dc:82:b3:16:89:bd:d9:cc:05:4a:08:c7:be:91:89:dd:de:a9:ad:0b:3d:e1:75:f9:7c:53:42:47:77:25:ed:97:37 c1:08:c9:57:09:e0:73:72:7d:b4:5e:4b:4b:20:bf:3c:57:41:bf:5c:bc:14:4d:a6:6a:bd:4d:86:69:06:9f:73:9d:40:2c:60:0f:29:7b:0b:4c:c7:7b:f6:5e:e5:a6:10:02:71:3e:74:a5:ac:b9:7f:f3:c5:78:42:ca:fe:50:6f:5b:1b:df:c7:ee:36:20:bb:56:73:ab:11:fa:e2:bf:a8:69:7d:e6:f4:5c:27:c1:21:69:3c:0e:1d:2d:dd:70:25:11:57:9f:8a:5a:60:58:09:90:5c:54:e0:55:2a:55:1c:e1:36:9d:14:70:ab:b4:e2:ce:c4:92:6b:fa:14:8f:e7 0 0 0 d2:c6:01:32:6b:4c:4b:85:5f:52:7b:b7:8e:d6:8a:e4:c8:76:7e:6b:c9:24:9a:3e:ca:cd:2f:c9:b8:75:d4:f9:71:11:e1:cf:be:62:d3:2c:5f:f9:fd:9b:fa:ed:62:f3:df:44:c7:57:fb:ee:9b:b2:32:cb:54:49:29:6c:69:2e:30:1d:8c:1f:fa:b1:8e:e4:49:66:c1:fb:92:7c:82:ca:60:c9:40:a4:0a:b2:db:50:ec:f6:ff:98:a7:16:23:38:8d:06:d2:7c:a9:85:8a:c2:2b:4d:d4:e6:f1:89:e5:b0:42:54:a0:5f:3c:dd:c7:64:33:05:11:fb:ee:8b:26:07