분류 전체보기
-
선택정렬 Selection Sort알고리즘/알고리즘 개념 및 정리 2019. 3. 7. 15:38
가장 기본이 되는 알고리즘 중 하나인 선택정렬이다. * 선택정렬 알고리즘이란? * 쉽게말해 가장 작은 것을 선택하여 제일 앞으로 보내는 형식의 알고리즘이다. 이 알고리즘의 경우 대략 N * (N+1) / 2 번의 연산을 수행한다.하지만 컴퓨터에서 더하기나 나누기 연산의 크기가 작을 경우 N이 큰 수라는 가정하에 별 의미가 없음으로 무시하게된다. 그러므로 시간복잡도는 빅오 표현법으로 나타냈을 때 O( N * N) = O( N^2 )가 된다.데이터의 숫자가 조금만 커져도 연산숫자가 크게 늘어나기 때문에 비 효율적인 알고리즘이다.
-
"사이버 범죄자들, 12세 미만 비디오 게이머들 노린다" 기사 스크랩뉴스기사 스크랩 2019. 3. 6. 23:59
2019.03.06"사이버 범죄자들, 12세 미만 비디오 게이머들 노린다."출처 보안뉴스 : https://www.boannews.com/media/view.asp?idx=77548&skind=D* 요약 * 최근 사이버 범죄자들이 나이가 어린 아동들을 대상으로 공격을 시도하고 있다.어린이들은 순진하기 때문에 사람을 잘 믿으며 쉽게 외부의 영향을 받기 때문이다.보안업체 루비카에 따르면 아이들은 특히 스마트폰의 무료 앱을 다운받아서 사용하는데아이들을 위한 무료게임은 광고가 가득하며 앱 내부에 구매를 유도하는 경우가 많고업그레이드 시 유료로 진행되도록하는 앱도 많다고 한다.성인과 다르게 아동들은 광고의 콘텐츠인지 게임 버튼인지 정확하게 구별하지 못하기 때문에아동들을 속여 악성 앱을 다운 받도록 유도하여 정보를..
-
"방문자와 외부인 관리하기 위한 시스템에서 취약점 다수 발견돼" 기사 스크랩뉴스기사 스크랩 2019. 3. 5. 20:31
2019.03.05 "방문자와 외부인 관리하기 위한 시스템에서 취약점 다수 발견돼"출처 보안뉴스 : https://www.boannews.com/media/view.asp?idx=77522 * 요약 * IBM 침투 테스트 팀 엑스포 레드에서 방문자 시스템 취약점을 연구하였는데 취약점이 19개나 발견되었다.방문자 시스템 TOP5 제품에서 발견된 취약점으로 IBM에서 취약점을 찾기위한 목표는 다음과 같았다. 1. 신분 확인을 위한 정보가 없는 방문자가 시스템을 직원처럼 통과할 수 있는가?2. 방문자 관리 시스템으로부터 다른 사람의 정보를 추출하는게 가능한가?3. 애플리케이션을 탈출해 시스템을 마비시키거나 임의의 코드를 실행시킬 수 있는가? IBM은 세 가지 모두 성공시켰으며 대체적으로 고위험군의 취약점을 발..
-
[LOB] Assassin -> Zombie_Assassin Write-up표튜터와 함께하는 Pwnable/The Lord Of the BOF Write-up 2019. 3. 5. 03:47
혹시나 이상하거나 잘못된 것이 있다면 댓글 부탁드립니다. 이번 문제를 풀기위해서는 이전 문제와는 비슷하지만 새로운 개념이 필요하다!!우선 코드를 보자!이전의 문제와 거의 같으나 이번에는 입력되는 값을 버퍼에 저장할 때길이 제한이 걸려있다. 또한 힌트로 주어진 것은 바로 FEBP이다.FEBP는 Fake ebp를 의미하는데 이번에는 ret gadget뿐만아니라 leave gadget도 이용해야한다. Fake ebp의 원리는 그림과 같다.sfp에 &buffer-4값을 넣어주고ret에는 leave gadget주소를 넣어준다.버퍼에는 쉘코드 주소와 nop으로 채워준다. 그렇게되면 에필로그 진행 시 공격이 시작되며(1)leave gadget 진행 시,(2)[pop ebp]가 진행되면서 pop으로 인해 esp가 +4..
-
[LOB] Giant -> Assassin Write-up표튜터와 함께하는 Pwnable/The Lord Of the BOF Write-up 2019. 3. 4. 03:12
혹시나 이상하거나 잘못된 것이 있다면 댓글 부탁드립니다. 이번 문제는 ROP를 알기전에 해두면 도움이되는 Ret Sled를 배울 수 있는 문제이다.(나는 ROP를 먼저했었다..ㅎㅎ) 이 문제를 풀려먼 에필로그에 대한 이해가 필요하다.에필로그는 보통 leave와 ret gadget으로 이루어져있으며 * leave gadget의 경우 *[ mov esp, ebp][ pop ebp] * ret gadget의 경우 *[ pop eip ][ jmp eip ] 형태로 이루어져있다.ret gadget이 진행되면 esp는 + 4가 되며[ pop eip ]의 eip에는 esp의 값이 저장되어지는데ret주소에 ret gadget을 넣어주고 그 뒤에 쉘코드를 넣어주게되면ret gadget이 한 번 더 일어나게되면서 esp가..
-
[LOB] Bugbear -> Giant Write-up표튜터와 함께하는 Pwnable/The Lord Of the BOF Write-up 2019. 3. 3. 17:31
혹시나 이상하거나 잘못된 것이 있다면 댓글 부탁드립니다. 생각보다 오래걸렸다.. 어떻게 풀어야 할지는 알았으나 삽질을 많이 했다.우선 코드를 보도록 하자!!코드를 보게되면 fopen을 통해서 어떠한 결과값을 버퍼에 저장한다.버퍼에 저장된 값을 lib_addr과 execve_offset에 넣어 더해 ret에 넣어준 뒤argv[1][44]와 비교해서 다르면 프로그램이 종료된다. 그렇다면 우리는 execve 함수의 주소를 알아야 이 문제를 풀 수 있다는 것을 알 수 있었다.그럼 지금부터 하나씩 구해보자 디버깅을 위해 우선 복사본을 만든다. 코드를 보면 첫 번째 popen에서 구하려고 하는 것은 libc_base이고두 번째 popen에서 구하려고 하는 것은 execve함수의 offset이다. 우선 나와있는 명령..
-
[LOB] Darkknigth -> Bugbear Write-up표튜터와 함께하는 Pwnable/The Lord Of the BOF Write-up 2019. 3. 2. 18:18
혹시나 이상하거나 잘못된 것이 있다면 댓글 부탁드립니다. Darkknight에서 Bugbear로 가는 문제이다~우선 코드를 보자입력하는 문자열의 마지막이 "0xbf"이면 안된다는 제약이 걸려있다.이 의미는 이전에 사용했던 공격들에 제약이 생겼다는 의미이다.이름을 바꾸어서 하는 공격이라던지 스택의 특성을 이용한 크기를 늘려서 하는 공격들이 불가능하다는 것이다.그렇기 때문에 0xbf로 시작하는 주소가 아닌 다른 주소를 이용해서 공격을 해야한다.문제의 힌트를 보니 RTL을 사용하라는 거보니 RTL로 진행해서 풀면 될 것같다.이전에 이러한 문제들을 풀어봤기 때문에 굉장히 쉽게 접근할 수 있었다. * RTL구하는 방법 *1. ret 이전까지 덮을 수 있는 bufferoverflow 구하기2. libc_base 구..
-
[LOB] Golem -> Darkknight Write-up표튜터와 함께하는 Pwnable/The Lord Of the BOF Write-up 2019. 3. 2. 12:33
혹시나 이상하거나 잘못된 것이 있다면 댓글 부탁드립니다. Golem에서 Darkknight로 가기위한 관문이다. 우선 코드를 보도록 하자힌트를 보니 FPO라고 쓰여있다.FPO란 Frame Pointer Overflow의 약자로 FPO를 이용해서 문제를 풀라는 의미이다.보면 strncpy함수에서 버퍼의 크기가 40인데 41개까지 입력을 받을 수 있는 것이보인다.그렇기 때문에 우리는 41번째의 버퍼 1Byte가 변조 가능하다. 즉, SFP -> Stack Frame Pointer를 변조하면된다. FPO를 진행하기위해서는 두 가지 조건이 필요하다.1. 서브함수가 있어야 한다.2. 서브함수에서 SFP 하위 1Byte를 덮어쓸 수 있어야한다. 우선 디버깅을 위해 복사를 해주자~ main함수에는 그다지 필요한 것이..