분류 전체보기
-
LEVEL 14WARGAME/FTZ 2018. 4. 29. 16:31
level14 FTZ LEVEL14 [Summary] 소스코드의 13 행에서 fgets 함수를 통해 Max 15바이트 만큼 버퍼를 복사한다. 소스코드의 14~18 행에서 check 변수의 값이 0xdeadbeef 이면 setreuid 함수와 system 함수를 통해 level15(3095) 권한의 쉘을 획득할 수 있다. buf 배열의 길이 (20 + 20)바이트만큼 덮고 check 변수의 값을 0xdeadbeef 로 변조함으로써 level15(3095) 권한의 쉘을 획득하였다. [Sourcecode] 1. // 레벨14 이후로는 mainsource의 문제를 그대로 가져왔습니다. 2. // 버퍼 오버플로우, 포맷스트링을 학습하는데는 이 문제들이 3. // 최고의 효과를 가져다줍니다. 4. 5. 6. #in..
-
LEVEL 13WARGAME/FTZ 2018. 4. 27. 16:13
level13 FTZ LEVEL13 [Summary] 소스코드의 10 행에서 strcpy 함수를 사용하므로 길이체크를 하지않아 Buffer Overflow 취약점이 발생한다. 소스코드의 12 행에서 메모리보호기법 중 canary 역할을하는 i 변수의 값이 변조되면 종료되어 버리기 때문에 i 변수의 값이 변조되지 않은것처럼 그대로 덮어준다. buf 배열의 길이가 (1024 + 12) 이며 canary 변수 i의 길이(4 + 8) 와 sfp 사이즈(4바이트)를 더한 1052바이트를 payload 로 전송하게되면 RET 값을 변조할 수 있다. aslr 보호기법으로 인해 buf 배열에 shellcode 를 삽입할 수 없어서 환경변수에 삽입하고 RET 를 쉘코드가 포함된 환경변수의 주소로 변조함으로써 결론적으로 ..
-
LEVEL 12WARGAME/FTZ 2018. 4. 26. 15:26
level12 FTZ LEVEL12 [Summary] 소스코드의 11 행에서 gets 함수를 사용하므로 길이체크를 하지않아 Buffer Overflow 취약점이 발생한다. str 배열의 길이가 (256 + 8) 이며 sfp 사이즈(4바이트)를 더한 268바이트를 payload 로 전송하게되면 RET 값을 변조할 수 있다. aslr 보호기법으로 인해 str 배열에 shellcode 를 삽입할 수 없어서 환경변수에 삽입하고 RET 주소에 쉘코드가 포함된 환경변수의 주소로 변조함으로써 결론적으로 프로그램의 흐름을 제어하고 level13(3093) 권한의 쉘을 획득하였다. [Sourcecode] 1. #include 2. #include 3. #include 4. 5. int main( void ) 6. { 7..
-
LEVEL 11WARGAME/FTZ 2018. 4. 24. 17:13
level11 FTZ LEVEL11 [Summary] 소스코드의 9 행에서 strcpy 함수를 사용하므로 길이체크를 하지않아 Buffer Overflow 취약점이 발생한다. str 배열의 길이가 (256 + 8) 이며 sfp 사이즈(4바이트)를 더한 268바이트를 payload 로 전송하게되면 RET 값을 변조할 수 있다. aslr 보호기법으로 인해 str 배열에 shellcode 를 삽입할 수 없어서 환경변수에 삽입하고 RET 주소에 쉘코드가 포함된 환경변수의 주소로 변조함으로써 결론적으로 프로그램의 흐름을 제어하고 level12(3092) 권한의 쉘을 획득하였다. [Sourcecode] 1. #include 2. #include 3. 4. int main( int argc, char *argv[] )..
-
PROFILEPROFILE 2018. 4. 20. 18:47
이름 김동민 닉네임 gpsfly 학위 2019.03. ~ 현재. 성균관대학교 정보통신대학원 정보보호학과 석사 재학중 2015.03. ~ 2017.02. 평생교육진흥원 학점은행제 컴퓨터공학과 학사 졸업 소속 2018.01. ~ 현재. 라온시큐어 화이트햇센터 핵심연구팀, (https://core-research-team.github.io) 2018.01. ~ 2021.03. NOAR 해킹팀 2021.04. ~ 현재. SaturnX 해킹팀, (https://blog.satx.kr/) 이메일 hgzxc0427[at]gmail.com 대외활동 2023.06. Internet Festival CTF Finals, 4위 (팀, SaturnX) 2021.08. DEF CON CTF Finals, 4위 (팀, StarB..
-
MD5, SHA암호학 2016. 6. 5. 16:41
MD5 개요R. Rivest가 MD4를 제안한 뒤 안전성의 문제가 제기된 다음 뒤이어 제안한 방식 임의의 길이의 서명문을 128비트의 해쉬값을 출력시키는 함수임의의 입력 서명문을 512비트 단위로 처리- 서명문을 512비트의 배수가 되도록 패딩을 부가시킴서명문의 비트 길이는 512를 법으로 448이 되도록 패딩 ( 512 - 64 = 448 )만일 서명문의 길이가 512를 법으로 448인 경우라도 패딩을 하게 되며 이 경우 패딩하는 비트 수는 512비트- 패딩되는 비트 수 = 1~512- 패딩 패턴 : 100 ... 0- 64비트 : 서명문 길이 표시, 상위 32비트와 하위 32비트를 바꾸어 그 결과를 붙인다.- 서명문의 길이가 2^64 보다 크면 서명문의 하위 64비트만을 사용한다. SHA 개요NIST..
-
해쉬 함수암호학 2016. 6. 4. 19:36
전자 서명시 해쉬 함수를 사용하는 이유 1. 메시지 인증 -> 무결성 보장2. 서명문 압축 -> 실용성, 효율성 향상 암호학(전자서명)에서 이용되는 해쉬 함수가 가져야 할 특징1. 해쉬 함수의 계산 효율이 양호해야 한다.2. 일방향성(약) - 복호(메시지 찾기)해쉬값 H로부터 h(M) = H되는 서명문 M을 찾는 것은 계산상 불가능 해야 한다.3. 일방향성(강) - 메시지 위조어떤 서명문 M과 그의 해쉬값 H = h(M)가 주어졌을 때 h(M`) = H 되는 서명문 M =/= M`을 찾는 것이 계산상 불가능해야 한다.4. 충돌 회피성 - 충돌 메시지 쌍 발견h(M) = h(M`)되는 서명문 M =/= M`를 찾는 것이 계산상 불가능해야 한다. SHAsCharacteristics SHA-1 SHA-224 ..
-
전자 서명암호학 2016. 6. 4. 19:17
전자 서명이 유용하고 안전하기 위하여 만족해야 할 조건1. 위조 불가 조건으로 합법적인 서명자만이 전자 서명을 생성할 수 있어야 한다.2. 서명자 인증 조건으로 전자 서명의 서명자를 누구든지 검증할 수 있어야 한다.3. 부인 불가 조건으로 서명자는 후에 서명한 사실을 부인할 수 없어야 한다.4. 변경 불가 조건으로 서명한 문서의 내용을 변경할 수 없어야 한다.5. 재사용 불가 조건으로 문서의 서명을 다른 문서의 서명으로 사용할 수 없어야 한다. DSS전자 서명 표준은 미국의 전자 서명 표준 ElGamal 전자 서명을 개량한 방식1994년 5월 19일 Federal Register에 발표, 그 해 12월 1일 표준을 채택ElGamal 전자 서명 방식과 유사하지만 Zp위에서의 원시원소를 사용하지 않고 q |..