분류 전체보기 145

[Pwnable.kr] horcruxes

#Pwnable.kr #horcruxes #Toddler horcruxes 문제이다. main 함수를 보면 다음과 같이 seccomp 설정과 더불어 init_ABCDEFG() 함수가 실행된다. 해당 init_ABCDEFG() 함수는 위와 같은데 /dev/urandom 에서 랜덤한 값을 시드로 하여 a, b, c, d, e, f, g 값을 랜덤으로 뽑아내는 함수이다. 그리고 핵심이라 할 수 있는 ropem 함수이다. 해당 함수는 위와 같이 생겼는데, A(), B(), C(), D(), E(), F(), G() 함수는 init_ABCDEFG 에서 만든 값들을 알파벳에 맞게 차례로 출력시켜주는 함수이다. 그리고 그 값들을 합친 sum 이 gets(s) 로 입력받은 s 값과 같으면 플래그를 출력시켜준다. 처음에..

[Pwnable.kr] asm

#Pwnable.kr #asm #Toddler asm 문제는 shellcode 를 제작하는 문제이다. 접속을 해서 readme 파일을 읽어보면, 원격지에 로컬에서와 같은 이름의 플래그 파일이 있고 읽어보라는.. 그런 내용이다. # asm.c #include #include #include #define LENGTH 128 void sandbox(){ scmp_filter_ctx ctx = seccomp_init(SCMP_ACT_KILL); if (ctx == NULL) { printf("seccomp error\n"); exit(0); } seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(open), 0); seccomp_rule_add(ctx, SCMP_ACT_ALLO..

[Pwnable.kr] memcpy

#Pwnable.kr #memcpy #Toddler memcpy 문제이다. 해당 코드를 컴파일하여 실행해보면, 위 처럼 heap 에 할당할 크기를 입력받고 자체적으로 개발한 memcpy 함수 두 개를 실행한다. 참고로, 해당 memcpy 함수는 slow_memcpy 와 fast_memcpy 이다. 아무튼 저렇게 입력 값을 주면 계속해서 slow_memcpy 와 fast_memcpy 를 실행하다가 128 값에서 프로그램이 Segmemtation fault 를 내뿜으면서 종료된다. 디버깅으로 알아보면, 위 부분에서 메모리에 데이터를 제대로 전달하지 못하고 꺼진다. movntps 어셈블리 명령어를 알아보면 What is movntps??? Description Moves the packed single-pre..

사지방에서 포렌식 선보인 이야기

군대에서 포렌식을 쓸 일은 용사입장에서 웬만하면 없지 싶다. 지난 4월, 하루는 조식 짬을 먹다가 갑자기 옆 대대로 호출을 당했다. 통신쪽에 있으면 무조건 컴퓨터 좀 고쳐달라는 (혹은 포맷) 부탁인 줄 알았으나 생각보다 재미있는 일이 있었다. " 사지방 PC 한 대 누가 비번 잠그고 도망가서 1달 동안 못쓰고 있어 " 그래서 범인이 누구인지 찾아서 특정해달라는 그런 문의(?) 였다. 조금 걸리는게 몇 가지 있긴 하지만 정당한 절차와 허락을 받고 본의 아니게 포렌식을 선보이게 되었다. 일단 걸린비번은 다른 전우들을 위해 얼른 풀어 뚫어주고, 범인은 사지방 PC에 깔린 싸지방 프로그램도 망가뜨려놨는지 디스크 복원 프로그램도 작동하지않은 상태로 일반 순정 윈도우처럼 컴퓨터가 동작하고 있었다. 하지만, 오히려 ..

<사는이야기> 2021.05.16

2021 군생활 말년에 한 액땜

오래간만에 일상 일기 그동안 지내온 과정을 대략 서술하면, 2021년 새해를 부대에서 무난히 보내고 3월 휴가를 갔다왔다. 아무래도 시국이 시국인지라 예방적격리 생활을 2주가량 하는데 주간, 야간 탄약고 근무를 격리인원으로 돌려서 사실상 완전 편하기만한 생활은 아니었던 것 같다(?) 그래도 9개월만에 나가는 만박 휴가가 너무 달콤했기도 했고 어느정도 차오른 짬의 여유 덕분에 신병 휴가때 격리보다는 재밌게 잘 지낼 수 있었던 것 같다. 그렇게 격리가 끝나고 행군도 마치고 한 주가 지났을까... 그날은 이상하게 뭔가 잘풀렸다. 전날 당직근무도 아무일 없이 끝났고 그 다음날인 당일날 근무취침이나 여러 환경들도 다른때와 다르게 평온했다. 그렇게 여느때와같이 헬창이 되고픈 헬린이의 삶을 살고있는데, 말년에는 떨어..

<사는이야기> 2021.05.11

[21.02.23] 시작

#React #Next.js #GSAP #gitPages #github.io 내 사이트가 갖고싶어서... 명함같은 느낌으로... 그래서 만들어본다. JS 프레임워크는 REACT 로, 렌더링 효율을 높여줄 SSR(Server Side Rendering) 프레임워크는 Next.js 를 이용하기로 하자. 우선 git page 의 토대가 되어줄 리포지토리를 생성하자. 보통 (본인의 계정명).github.io 로 리포지토리를 만드는 것이 국룰이다. 이렇게 되면 main 브랜치가 default 로 생길텐데, 나는 배포용 브랜치와 소스작업 브랜치를 분리하기 위해 새로 브랜치를 만드려고 한다. git checkout -b gh-pages 만든 리포지토리를 clone 해와서 gh-pages 이름의 브랜치를 생성한다 (다..

[Pwnable.xyz] fclose

fclose #FSOP ![fclose_prob](https://i.imgur.com/E6VL7Mo.png 문제 설명은 다음과 같다. ) 보호기법은 NX 만 걸려있다. 해당 문제는 fclose 함수에서 vtable 을 이용해 특정함수로 jump 하는 특징을 이용하는 문제이다. 소스분석 및 취약점 부분 탐색 int __cdecl main(int argc, const char **argv, const char **envp) { setup(); printf("> ", argv); read(0, &input, 1028uLL); fclose(&input); return 0; }int win() { return system("cat flag"); }중요 소스는 이게 전부이다. 얼핏 보기에도 1028 바이트를 읽어오..

암호화폐 사기(scam) 탐방기

m.etnews.com/20201030000148 로맨스 암호화폐 스캠을 아시나요?...데이트 앱 악용, 투자자 피해 속출 #A씨는 사회관계망서비스(SNS)에서 이성 B씨를 알게 됐다. 어느날 B씨는 쏠쏠한 수익을 올렸다는 해외 소재 암호화폐 투자사 홈페이지를 소개했다. A씨는 B씨가 소개한 투자사 가상지갑으로 비트 www.etnews.com www.blockmedia.co.kr/archives/162296 암호화폐 거래소, 피싱 사기 주의보…사이트 주소 확인해야 | 블록미디어 암호화폐 거래소를 사칭한 피싱 사기가 빈번하게 일어나고 있다. 각 거래소는 이용자들에게 거래소 사이트 주소가 제대로 적혀있는지 확인하라고 당부했다. ▲ 코인원을 사칭한 피싱 메시지들( www.blockmedia.co.kr 꽤 최근..

<사는이야기> 2020.12.28

DreamHack CTF 문제에서 배우는 NOSQL Injection

당직근무 마치고 근무취침 잠깐 취하고 나니까 드림핵 ctf 가 시작되어있었다. 대회가 1시간여밖에 안남아서 부랴부랴 한 문제 풀었는데, 나에겐 조금 낯선 NOSQL 에 대해 공부할 수 있었다. 이번 글은 DreamHack CTF 의 Web 분야문제 중, Mango 문제도 살펴보는 겸 Not Only SQL Injection 에 대해 공부하는 글이다. - NOSQL 이란? Not Only SQL 이란 뜻으로 단순히 mysql,OracleDB 같은 RDBMS 에서의 SQL 뿐만아니라 다른 형태,형식 등으로 데이터를 조직할 수 있는 DB 언어이다. RDBMS 가 주로 XML, 스프레드시트같은 테이블 구조의 정형화 된 데이터를 담는다면, NOSQL 은 바이너리파일(미디어파일, 프로그램 등등)이나 텍스트파일 같은..

<보안 study>/웹 2020.09.30
반응형