전체 글 172

[LOS_4]orc

이 문제는 pw를 get으로 받는데 정확하게 pw를 맞추라는 문제이다. 이 문제에서 사용되는 addslashes() 함수는 ' , " , \ 등문자가 포함되어 있다면 그 앞에 \ 를 붙이는 함수이다. 이 함수를 사용하지 않으면 오류가 발생할수 있기 때문에 취약하다. 그리고 stripslashes() 함수는 addslashes() 함수와 짝을 이루어 사용되는 것으로 역할은 addslashes()함수 의 반대이다. 즉, 역슬래시(\)를 떼어내는 함수이다.

Network/LOS 2019.08.16

[LOS_3]goblin

이번 문제는 기본적으로 id에 guest가 들어있고 no를 get으로 받아 쿼리를 날리는 문제이다. 조건문에는 아이디가 admin으로 들어와야 풀리는 문제 goblin이다. no에 아무거나 입력하니 이와같이 뜬다. 난 어드민이고 싶은데! if(preg_match('/\'|\"|\`/i', $_GET[no])) exit("No Quotes ~_~"); 게스트를 빠져나가서 아이디를 어드민으로 넣어주고 싶었지만... 보호기법이 작용한다. 음 다시 돌이켜보니 guest에 해당하는 no는 1이다. 그렇다면 admin에 해당하는건 다른 숫자이지 않을까? 하지만 다른 방법이 떠오르지 않는다. https://los.eagle-jump.org/goblin_5559aacf2617d21ebb6efe907b7dded8.php..

Network/LOS 2019.08.16

[LOS_2]cobolt

두번째 문제 cobolt이다 id와 pw이 get으로 받아 쿼리문을 날려주는데 md5로 암호화 시켜서 날려준다! 그리고 조건문에서는 id가 admin이면 문제가 해결이 된다. https://los.eagle-jump.org/cobolt_ee003e254d2fe4fa6cc9505f89e44620.php?id=admin && pw=5f4dcc3b5aa765d61d8327deb882cf99 pw에 password를 md5암호화해서 넣어보았다. 그대로 결과값으로 나온것을 확인해 볼 수 있다. https://los.eagle-jump.org/cobolt_ee003e254d2fe4fa6cc9505f89e44620.php?id=admin&& pw=1')or('1'='1 우선순위로 봤을때 이미 id와 pw에서 fasl..

Network/LOS 2019.08.16

[LOS_1]gremlin

처음 문제인 gremlin을 풀어보고자 들어왔다. query 에서 id,pw값을 get으로 받아 query문을 토대로 조건문을 통해 참이면 문제가 해결이 된다. url맨뒤에 ?id=1&&pw=1을 추가해주었다. get방식으로 id와 pw에 1을 각각 넣어주니 잘들어간것을 확인해 볼 수 있었다. 그렇다면 참이 되려면 id와 pw를 정확히 맞춰야 하는데 그런 방법보다 무조건 참이 되어 통과하는 방식으로 풀어보려고 한다. https://los.eagle-jump.org/gremlin_bbc5af7bed14aa50b84986f2de742f31.php?id=1&&pw=1' or '1'='1 이렇게 작성해 주었다. 왜? id = '1' and pw = '1' or '1' = '1' 을 보면 알수있다. SQL에서 A..

Network/LOS 2019.08.16

11장 Lena's Reversing for Newbies

먼저 프로그램을 실행시켜 보았다. 목표는 2가지이다. 모든 성가신 Nags(잔소리?)를 없애라. registration code 코드를 찾아라! 우선 디버거로 프로그램을 까보았을때는 다음과 같다. 스트링 검색으로 성공부분을 따라 들어가 main부분을 찾았다. 이제 여기서부터 빠르게 리버싱을 해보면 될것같다. 메인을 시작하면서 바로 요놈 듣기 싫은 잔소리가 뜬다. 먼저 요놈부터 퇴치해야지! 아까 Visual Basic 코드 부분에서 메세지 박스 호출 부분을 조작할건데 MSVBVM50.rtcMsgBox 를 조작할것이다. 디버거에서 마우스 우측 버튼 메뉴의 Search for - All intermodular calls 명령을 사용하면, API 호출 목록이 나타나는데 우리가 찾는 rtcMsgBox는 총 4개 ..

10장 함수 호출 규약

함수 호출 규약? Calling Convention의 우리말로 번역해 놓은 것이다. 이것은 '함수를 호출할 때 파라미터를 어떤 식으로 전달하는가?'에 대한 일종의 약속이다. 함수 호출 전에 파라미터를 스택을 통해서 전달하는데 스택이란 프로세스에서 정의된 메모리 공간이며 아래방향(그냥 주소가 줄어드는 방향이라고 하는게 편함)으로 자란다. 또한 PE헤더에 그 크기가 명시되어있다. 즉 프로세스가 실행될 때 스택 메모리의 크기가 결정된다(malloc/new 같은 동적 메모리할당과는 다름) 함수가 실행완료되었을때 스택에 들어잇던 파라미터는 어떻게 되냐? 스택 메모리는 이미 고정되어있기때문에 메모리를 해제할 수도 없고 할 필요도 없다. 그리고 어차피 다음번에 스택에 다른 값을 입력할 때 저절로 덮어쓰기에 그건 그냥..

9장 Process Explorer - 최고의 작업 관리자

Process Explorer? Windows 운영체제에서 최고의 프로세스 관리 도구 Process Explorer 유명한 sysinternals(현재는 MS에 인수되었음)의 Mark Russinovich가 만든 프로세스 관리 유틸리티 이 분이 만든 유용한 유틸리티에는 FileMon, RegMon, TcpView, DbgView, AutoRuns, Rookit Revealer 등이 있다. 실행화면을 살펴보자. 화면 위의 좌측 -> 현재 실행 중인 프로세스들을 Parent/Child의 트리 구조로 표시 우측 -> 프로세스 각각의 PID, CPU 점유율 등을 보여준다.(Option을 통해 더 추가 가능) 화면 아래(옵션) > 선택된 프로세스에 로딩된 DLL 정보 또는 해당 프로세스에서 오픈한 object h..

8장 abex` crackme #2(미완)

우선 프로그램을 실행 시켜 보았다. 보아 하니 이름과 시리얼에 맞는것을 입력해야 되는 문제인 것 같다. 먼저 사전 지식으로써 이 파일은 Visual Basic으로 제작되었다고 한다. Visual Basic? 윈도우용 응용 프로그램을 개발할 수 있는 프로그래밍 언어이다. 비주얼 언어는 화면 디자인을 위해 많은 줄의 코드를 작성하지 않고 미리 만들어진 도구를 이용하여 그림 그리듯이 디자인할 수 있는 언어를 말한다. 디버깅을 시작하기 전에 Visual Basic 파일의 특징을 살펴보는 것이 좋겠다. VB 전용 엔진 VB 파일은 MSVBVM60.dll (Microsoft Visual Basic Virtual Machine 6.0)이 라는 VB 전용 엔진을 사용한다(The Thunder Runtime Engine..

Exercise 3. CSRF

CSRF공격이란? Cross Site Request Forgery 사이트 간 요청 위조 피싱을 활용해 사용자 모르게 패스워드 변경! 옥션 해킹 사건에서 사용된 공격기법 (출처:인프런/화이트해커가-되기위한-8가지) DVWA 실습 (Low) 패스워드를 변경하면 바로 변경이 되어서 버프스위트로 확인을 해보았다. GET으로 값을 넘겨주는 것을 확인해 볼 수 있다. 이벤트에 응모하는 임시 페이지 입니다. 이 링크를 누르시면 이벤에 등록이 됩니다!! Click! 이번은 피싱이기에 오픈소스를 이용해 CSRF코드를 받아 이벤트페이지로 바꾸어 주었다. 그럼 구글 메일을 이용해 피싱을 해보기로했다. 나의 운영하는 웹서버에 html파일을 올린다음 url주소를 이용해 응모하기를 만들어 주었다. 이로써 'hacked'로 비밀번..

Network/DVWA 2019.08.09

Exercise 12. JavaScript

DVWA (Low) 이러한 폼이 주어져있고 아무값이나 입력하면 틀리다고 나온다. 소스코드의 전반적인 내용은 MD5 로 이루어져있다. 버프스위트로 봤을때 토큰과 phrase를 비교해주면 success 인것 같다. 그런데 좀 익숙하다 token이 md5로 구성이 되었지 않을까하고 Decryption을 해주었다. 'ChangeMe'를 원하는대로 MD5로 Encryption을 해주었다. 결과는 PunatrZr 음 히든에 토큰이 들어있다. 소스코드가 돌면서 만들어 내는것이 아니라 고정적으로 들어있었다는것?!? 소스코드를 보니 토큰이 어떻게 만들어졌나 보니 ROT13으로 인코딩하고 MD5으로 Encryption 한 결과값이였다. 결국 ChangMe였다는것..! 아.. success 를 제출하면 성공이라고 한다. 처..

Network/DVWA 2019.08.09