POODLE Attackに関して調査し、信頼できる情報から攻撃条件などをまとめてください。
https://github.com/kurenaif/seccamp_pre_challenge/blob/main/poodle/server.py を攻略してください
# Attension: This is April fool's guessy problem :) | |
# hint5: you should read only printable texts | |
# hint6: hint 1-4 are in there somewhere. | |
n = 0x2a95d52a33c87dd81faf57344339fd9762b36b5bace392d941cbe174d3b17977e5074ac39f0c0f845e67e9484602a3426c56579e8ea92c97f0cb264876fcc24d9c027f3b988f74e2ace46535585f7273d764e12434d73ff072d1b1de91a931cb5b571dc43e763c1a1bf7cb9450f17ba3f471 | |
ciphertext = 0x28731da595c860a8ef2e3e9ea5d6c3a25000e4f7b3f520f111ee6b0b1612d0d9bcac059f094dfc915dcf40c9bb34b09b5c33905d9d18f2395bc34c2a0d9918c275cafe8d40cec416be9ef0b56d46c7411d2fbf8e70dcb422355f3c3b1879d9d7840c1c2bed09dd71fcf304b8c402a828801b | |
e = 0x10001 | |
# p+q = 325947515284430198406668944680146150067234839221028582212568912271459389634393929245015110366812037257440006919490648506172402608251530459250913790 | |
# p-q = -325947515284430198371329644261540619840658477078130190909651736581467116585981870343824185649056448261696890432021346262456826235141437207527854552 |
import socket | |
import os | |
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM) | |
client.connect( # please input address | |
while True: | |
response = client.recv(4096) | |
print(response.decode('utf-8'), end='') | |
if response == b"": | |
break |
import sys | |
import os | |
from Crypto.Util.number import bytes_to_long, getPrime, long_to_bytes | |
e=65537 | |
d=15353693384417089838724462548624665131984541847837698089157240133474013117762978616666693401860905655963327632448623455383380954863892476195097282728814827543900228088193570410336161860174277615946002137912428944732371746227020712674976297289176836843640091584337495338101474604288961147324379580088173382908779460843227208627086880126290639711592345543346940221730622306467346257744243136122427524303881976859137700891744052274657401050973668524557242083584193692826433940069148960314888969312277717419260452255851900683129483765765679159138030020213831221144899328188412603141096814132194067023700444075607645059793 | |
hint=27528322154973804634591816884664181131338061899822135214035057043271430728116580563685165630296616994558500247754410066447954577182879985695545406281931754320336433696789415076523779816285344369245110934509641365040348895988758752467163272307983645494601149011863273977401850538423803527920777024528 |
POODLE Attackに関して調査し、信頼できる情報から攻撃条件などをまとめてください。
https://github.com/kurenaif/seccamp_pre_challenge/blob/main/poodle/server.py を攻略してください
from pwn import * | |
import base64 | |
from Crypto.Cipher import AES | |
from Crypto.Random import get_random_bytes | |
from Crypto.Util.Padding import pad, unpad | |
import hashlib | |
import sys | |
from Crypto.Util.Padding import pad, unpad | |
import copy |
package org.example; | |
public class Main { | |
public static void main(String[] args) { | |
var sb = new StringBuilder(); | |
for(int i=0;i<10000000;i++){ | |
sb.append("a"); | |
} | |
var base = new String(sb); |
int solve(int N, int a) { | |
vector<int> dp(a+1); | |
dp[0] = 1; | |
for (int n = 2; n <= N; ++n) { | |
vector<int> old = dp; | |
int su = 0; | |
for (int j = 0; j < dp.size(); ++j) { | |
su += old[j]; | |
if(j-n >= 0) su -= old[j - n]; | |
dp[j] = su; |
def func(arg1: str, arg2: int) : | |
return arg1+str(arg2) | |
extern crate nalgebra as na; //行列とかベクトルとかのライブラリ | |
fn main(){ | |
// 多分DMatrixのほうが使いやすい? staticは定数な印象 | |
let mat = na::DMatrix::from_iterator(3,3,[ | |
1.,2.,3., | |
4.,5.,6., | |
7.,8.,9. | |
].iter().cloned()); |
#include <iostream> | |
#include <vector> | |
#include <map> | |
template<typename T> | |
T norm2(const std::vector<T>& v){ | |
T res = 0; | |
for(int i=0;i<v.size();++i) res += v[i]; | |
return res; | |
} |