전체 글 81

[Chap7] 보조 기억 장치

01 자기 디스크 [1] 자기 기억 장치의 동작 원리 자성 : 자석의 성질 자화 : 어떤 물질이 자성을 띠게 되는 것 자기장 : 자석의 힘이 미치는 공간 자성체 : 외부 자기장에 의해 자화될 수 있는 물질 강 자성체 : 외부 자기장에 의해 자화되고, 자기장이 사라져도 자성이 남음 상 자성체 : 외부 자기장에 두면 약하게 자화되지만 자기장이 사라지만 자성이 없어짐 반 자성체 : 외부 자기장과 반대 방향으로 자화됨 자성을 이용해 정보를 쓸 때 앙페르의 법칙 : 코일에 전류가 흐르면 코일 주변에 자기장이 생기고, 이 자기장을 통해 강 자성체를 자화시킴. 자기장의 방향은 입력 신호가 0이면 그대로, 1이면 반대로 바뀐다. 패러데이의 법칙 : 코일 주변을 지나가는 강 자성체의 자기장이 변하면 코일에 유도 전류가 ..

dreamhack rev-basic-5

문제 이 문제는 사용자에게 문자열 입력을 받아 정해진 방법으로 입력값을 검증하여 correct 또는 wrong을 출력하는 프로그램이 주어집니다. 해당 바이너리를 분석하여 correct를 출력하는 입력값을 찾으세요! Correct가 출력되는 부분을 찾았다! 00007FF655AC117E 주소 결과에 따라 Correct와 Wrong이 출력되는 것 같다. 함수 부분은 이렇게 되어 있고, 요약하면 아래와 같다. 입력된 값 중 가장 첫 번째 값을 0x31(1), 두 번째 값을 0x32(2)라고 하자. 1. eax에 입력된 값 중 가장 첫 번째 값 넣기 => eax = 31 2. ecx에 + 1 수행(이때 ecx의 값은 반복문을 돌면서 값이 1씩 커진다.) 3. eax+ecx 주소에 해당되는 값을 ecx에 넣기 =..

Wargame/dreamhack 2021.05.26

Webhacking.kr old 49번 문제 풀이

49번을 클릭하면 위와 같은 문제가 나온다! view-source를 눌러서 코드를 확인하자~! preg_match로 select, or, and (), limit, /, order, 탭, ', ", , 가 필터링 된다. 입력한 값은 where문에 들어가게 되고, result[0]이 admin일 경우 문제가 풀린다. 1을 보냈을 경우에는 위와 같이 출력되는 값이 존재한다. 그러나 0을 입력했을 경우에는 아무런 값도 출력되지 않는다. 0을 이용하여 문제를 풀어보자. 이때 ()와 ', " 등이 필터링 되기 때문에 char()이나 'admin'과 같은 방식으로는 admin을 입력할 수 없다. 그래서 hex값을 이용하였다! 위처럼 입력해주었고, 그랬더니 문제가 풀렸다!

Webhacking.kr old 10번 문제 풀이

처음에 페이지에 들어가면 위와 같이 뜬다. 코드를 보자! 0라는 문자에 커서를 올리면 y0u로 변한다는 걸 알 수 있다. 그리고 onClick 함수를 보면 클릭을 할 때마다 1칸씩 움직인다. 이때 1600번을 움직이면 문제가 풀리게 된다. 코드 부분에서 1을 1600으로 변경해주었다. 그러니까 문제가 풀리지 않았다. 아무래도 처음 상태가 1인 것 같다. 1599로 변경해주자! 문제가 풀렸다! 간만에 쉽게 풀린 문제인 것 같다~!

dreamhack rev-basic-4

문제 ; 이 문제는 사용자에게 문자열 입력을 받아 정해진 방법으로 입력값을 검증하여 correct 또는 wrong을 출력하는 프로그램이 주어집니다. 해당 바이너리를 분석하여 correct를 출력하는 입력값을 알아내세요. 언제나 그랬듯 correct가 출력되니까 correct 문자열을 찾아서 해당 주소로 가보자! 해당 주소로 가보면 바로 위에 je, 그 위에 test, 그 위에 call이 있음을 알 수 있다. 아무래도 call의 결과에 따라서 correct와 wrong이 정해지는 것으로 보인다. 00007FF7234E117E 주소에 BP를 걸어둔 후 실행해보자. 함수 코드는 위와 같고 정리하면 아래와 같다. 첫 번째 입력값 = 0x31(1) 이라고 해보자. 1. eax에 첫 번째 입력 값을 넣고 오른쪽으로..

Wargame/dreamhack 2021.05.26

Webhacking.kr old 46번 문제 풀이

view-source를 눌러서 코드를 보자! id에 있는 값이 admin이면 문제가 풀린다. 그런데 우리가 입력하는 값은 where 절에만 들어갈 수 있다. 이때 공백을 치환하니까 ||로 or을 입력하자. 이렇게 입력을 해주었더니 아무런 값도 출력되지 않았고, 문제도 풀리지 않았다. 여러 값을 입력해본 결과 admin이 안 되는 것 같다. preg_match에 해당되는 값을 보면 hex 값을 거르는 것을 볼 수 있다. 그럼 ascii 코드를 사용하여 admin을 입력하자! ascii 코드를 사용하여 입력을 하였더니 위와 같은 메시지가 출력된다. 위의 메시지는 lv=1을 입력했을 때 나오는 메시지이다. 아무래도 lv에 없는 값을 넣어주어야 할 것 같다. lv이 0일 때 아무런 값도 출력되지 않는다. 그럼 ..

CodeEngn Advanced RCE L05

문제 Serial 을 구하시오 Ollydbg로 열어보았다! 항상 그랬듯 문자열을 찾아보자! 문자열에서는 별다른 내용을 찾아볼 수가 없었다! PEiD에 05.exe 파일을 넣어보니, Visual Basic으로 작성된 것을 알 수 있었다. 그럼 Visual Basic에서 사용되는 문자열 비교 함수가 사용되었을 수 있다! 오른쪽 마우스 - Search for - Found intermodular calls 를 통해 사용된 함수를 뽑아보았다. 그랬더니 vbaStrCmp가 있음을 볼 수 있었다. 해당 주소에 BP를 걸어둔 후 실행을 해보자! 그랬더니 EAX에는 입력값을 ECX에는 serial 값이 들어가는 것을 볼 수 있다! 677345를 입력창에 입력해주었더니 실패 구문인 Mal Cracker!!가 아닌 아래의..

Wargame/CodeEngn 2021.05.24

링크 계층

Kocw에서 제공하는 한양대학교 이석복 교수님의 컴퓨터네트워크 강의를 수강한 후, 정리한 글입니다.(http://www.kocw.net/home/search/kemView.do?kemId=1312397) 교재 : Computer networking : a top-down approach PPT : https://gaia.cs.umass.edu/kurose_ross/ppt.htm V7.1 우리가 여태까지 호스트-라우터까지 직선으로 표현했던 선 자체를 구체화 시켜보자.개요호스트와 라우터 사이에는 전용선이 존재하는 것이 아니라, 공용선을 통해서 패킷이 전송된다.링크 레이어에서는 충돌을 피하면서 패킷을 잘 보내는 것에 중점을 두고 있다!구글로 향하는 패킷이 GW 라우터에 전달되어야 한다. 이 패킷의 목적지는 구..

공부/네트워크 2021.05.24

네트워크 계층

Kocw에서 제공하는 한양대학교 이석복 교수님의 컴퓨터네트워크 강의를 수강한 후, 정리한 글입니다.(http://www.kocw.net/home/search/kemView.do?kemId=1312397) 교재 : Computer networking : a top-down approach PPT : https://gaia.cs.umass.edu/kurose_ross/ppt.htm V7.1 네트워크에서는 라우터를 기억하자! 네트워크 계층은 IP가 중요하다. IP가 중요한 이유 : 현재 인터넷은 TCP/IP 기반으로, 라우터들이 IP 패킷을 씌운 정보만 이해해서 넘기기 때문에. 라우터 라우터가 하는 기능 포워딩 ; 들어온 패킷을 포워딩 테이블을 참조해서 올바른 위치로 보내주는 것 포워딩 자체는 단순하지만, 이..

공부/네트워크 2021.05.23

CodeEngn Basic RCE L18

문제 Name이 CodeEngn일때 Serial은 무엇인가 성공 구문을 찾아보자~!~! 성공 구문을 찾을 수 있었다! 해당 위치에 가서 cmp나 분기점을 찾아보자~! 명령어를 보면 004011F6에서 ZF 1이면 성공구문을 출력하는 곳으로 JMP를 하는 것을 볼 수 있다. 그 위에 CALL 명령어를 보면 lstrcmp(비교 함수)를 호출하는 것을 볼 수 있다. String2와 String1에 각각 어떤 값이 들어가는지 보자. String1에는 내가 입력한 값이, String2에는 Name에 따른 Serial 값이 출력된다. 06162370056B6AC0를 입력하였더니 문제가 풀렸다!

Wargame/CodeEngn 2021.05.20