일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- RTL
- 분할 정복
- 연결리스트
- tcache
- syscall
- 동적 계획법
- 이진트리
- House of Orange
- 이진 탐색
- ROP
- fsb
- 수학
- 스위핑 알고리즘
- 스택
- 이분 탐색
- off by one
- BOF
- 브루트 포스
- heap
- DFS
- 문자열 처리
- 큐
- 에라토스테네스의 체
- BFS
- 백트래킹
- 포맷스트링버그
- OOB
- 투 포인터
- 완전 탐색
- 다이나믹 프로그래밍
- Today
- Total
목록write-up (80)
SDJ( 수돈재 아님 ㅎ )
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.

보호기법은 그린벨트를 이루고 있다 바이너리를 분석해보자. int __cdecl main(int argc, const char **argv, const char **envp) { char v4[64]; // [rsp+0h] [rbp-58h] unsigned __int64 v5; // [rsp+48h] [rbp-10h] v5 = __readfsqword(0x28u); *v4 = 0LL; *&v4[16] = 0LL; *&v4[32] = 0LL; *&v4[48] = 0LL; while ( readline(v4, 0x40) ) { __printf_chk(1LL, v4); _IO_putc(0xA, _bss_start); } return 0; } 간단하게 main에서 readline(v4, 0x40)을 호출하고 리턴..
웹 모르는데 warm-up이라 도전함 문제 코드 가 없어서 페이지가 죽는건지도 모르겠고 결국 세미콜론 하나 붙이면 에러가 안뜨는걸 알게됐다. 이 외에도 GET 파라미터가 제대로 들어간건지 몰라서 확인차 echo도 넣어보려고 했고 die도 넣어보려고 별짓을 했는데 안되더라. 결국 대회가 끝나고 flag를 땄다. php 함수에서 highlight_file ( string $filename [, bool $return = FALSE ] )는 $filename에 있는 php코드를 syntax-highlighting해서 보여준다고 한다. 따라서 GET[1]에는 highlight_file, GET[2]에는 flag.php를 주었다. 완성된 페이로드 warmup=$_="_".("9"^"~").(";"^"~").("*..
보호되어 있는 글입니다.
보호되어 있는 글입니다.

재밌는 문제였다. 2등을 한 문제. ( 만약에 잠 안잤으면 퍼블 먹었을 듯 TT ) 다만 현재 Ubuntu 19.04가 날라가서 코드만 가지고 있는 상태이다. 그래서 우분투 화면은 찍지는 못했는데 일단 익스 코드만 올려둔다. 취약점은 OOB가 되겠다.( OOB arbitrary write ? ) 우리가 할당하는 위치를 조절할 수 있기 때문에 allocated_count < 0으로 조작해서 stack[allocated_count]의 위치가 &allocated_count가 되게 만들어 준다음 할당을 시도하면 allocated_count에 heap address가 남게 되서 heap leak이 가능해진다. 그리고 tcache bins의 0x3f0 위치에 arbitray write를 통해 bss_stdout -..
보호되어 있는 글입니다.

사용한 기법 : house of orange 자신이 작성한 Testimonial와 로그인 한 유저의 Testimonial를 구분하는데 오류가있다. 예를들어 A가 B의 Testimonial를 4개 쓰고 C의 Testimonial를 4개 썼다 하고 B가 자신의 Testimonial 4개를 전부 지우면 B는 자신의 Testimonial가 뜨지 않지만 A에게서는 B의 Testimonial가 뜨면서 수정할 수 있다. ( free됐지만 접근할 수 있음 ) 그래서 나는 fd와 bk를 잘 조작하여 chunk를 overlap 시킨 뒤 topchunk를 조져서 house of orange를 실행시켰다. from pwn import * server = 0 if server: p = remote("tukro.pwn2.win"..