목록분류 전체보기 (186)
Iriton's log
문제를 클릭하니 까만 화면과 함꼐 debug me 라는 경고창이 떴다. 페이지 소스를 보려고 하니 전혀 읽을 수 없게 되어 있었다.구글링 해 보니 코드를 예쁘게 정리해 주는 좋은 사이트가 있어서 활용해 봤다.링크: Online JavaScript beautifier Online JavaScript beautifierBeautify JavaScript, JSON, React.js, HTML, CSS, SCSS, and SASSbeautifier.io 진짜 예쁘게 정리해 준다.아까 debug me라고 뜬 경고창이 생각나서 [Ctrl + F]로 alert를 쳐 봤다. 그랬더니 조건문을 볼 수 있었다.else문을 콘솔창에 넣고 실행시켜 보았다. 그랬더니 아까 본 경고창이 떴다.그럼 if문이 성립하지 않을 때 경..
https://webhacking.kr/challenge/web-12/ Challenge 27 webhacking.kr 웹에 들어가, 소스 코드를 확인해 보았다.여기서 ?view_source=1 를 클릭하여 상세 코드를 볼 수 있었다.잘은 모르겠지만 대충 아이디가 guest면 guest를 반환하고admin이면 문제가 해결되는 거 같다. 구글링해 본 결과if(preg_match("/#|select|\(| |limit|=|0x/i",$_GET['no'])) exit("no hack");=> preg_match 함수를 통해 select, limit 등 문자열을 필터링하고 no hack을 출력. $r=mysqli_fetch_array(mysqli_query($db,"select id from chall27 wh..
*본 포스트는 Dreamhack - Systemhacking Lecture 을 참고하여 작성되었습니다. Return Oriented Programming리턴 가젯을 사용하여 복잡한 실행 흐름을 구현하는 기법입니다. 공격자는 이를 이용해서 문제 상황에 맞춰 return to library, return to dl-resolve, GOT overwrite 등의 페이로드를 구성할 수 있다.스택 카나리, NX를 적용하여 컴파일한 바이너리를 ROP를 이용한 GOT Overwrite으로 익스플로잇 하는 실습(wargame: rop)를 진행한다.// Name: rop.c// Compile: gcc -o rop rop.c -fno-PIE -no-pie#include #include int main() { char b..
*본 포스트는 Dreamhack - Systemhacking Lecture 을 참고하여 작성되었습니다.Return to Library프로세스에 실행 권한이 있는 메모리 영역은 일반적으로 바이너리의 코드 영역과 바이너리가 참조하는 라이브러리의 코드 영역이다.여기서 공격자가 주목한 것은 다양한 함수가 구현된 라이브러리이다. 몇몇 라이브러리에는 공격에 유용한 함수들이 구현되어 있다. 예를 들어 리눅스에서 C언어로 작성된 프로그램이 참조하는 libc에는 system, execve 등 프로세스의 실행과 관련된 함수들이 구현되어 있다.이런 함수들로 NX를 우회하고 셸을 획득하는 공격을 Return to library라고 불린다.실습을 진행할 코드이다.// Name: rtl.c// Compile: gcc -o rtl..
※*본 포스트는 '리버싱 입문' 책을 참고하여 작성되었습니다. abex crackme를 다운 받을 수 있었던 Crackme.de 사이트가 접속 불가능 해져서 구글링을 통해 주워 온 exe 모음집이다.악성 프로그램일 수도 있으니 가상머신에서 분석하는 것을 추천한다. 1. 프로그램 동작 방식메세지 박스로 Make me think your HD is CD-Rom 이라고 뜬다.그러고 확인 버튼을 누르면 아니라는 메세지 박스가 뜬다.목적은 프로그램 실행 시 HD가 CD-Rom으로 인식되도록 변경하는 것 2. 엔트리 포인트PEView 프로그램으로 exe 파일을 열면 PE 구조와 정보를 볼 수 있다.Entry Point는 1000이고 Image Base는 400000이다.Image Base의 값부터가 실제 저장되는..
Description: 사용자의 정보를 조회하는 API 서버입니다.Path Traversal 취약점을 이용해 /api/flag에 있는 플래그를 획득하세요!Path Traversal경로 탐색 공격(디렉터리 탐색)은 웹 루트 폴더 외부에 저장된 파일 및 디렉터리에 액세스 하는 것을 목표로 한다. "../" -> 시퀀스 및 그 변형으로 파일을 참조하는 변수를 조작하거나 절대 파일 경로를 사용하여 애플리케이션 소스 코드 또는 구성을 포함하여 파일 시스템에 저장된 임의의 파일 및 디렉터리에 액세스하는 것이다. 취약점 분석입력 받은 userid에 대한 정보를 출력한다.근데 api/flag를 보면 되는데 경로가 api/user/{userid}이기에 userid에 ../flag를 넣으면api/flag를 볼 수 있게 되..
*본 포스트는 Dreamhack - Systemhacking Lecture 을 참고하여 작성되었습니다.라이브러리프로그램들이 함수나, 변수를 공유해서 사용할 수 있게 한다.자주 사용되는 함수들의 정의를 묶어서 하나의 라이브러리 파일로 만들고, 이를 여러 프로그램이 공유해서 사용할 수 있도록 지원하고 있다.C의 표준 라이브러리인 libc는 우분투에 기본으로 탑재된 라이브러리 링크많은 프로그래밍 언어에서 컴파일의 마지막 단계로 알려져 있다.프로그램에서 어떤 라이브러리의 함수를 사용한다면 호출된 함수와 실제 라이브러리의 함수가 링크 과정에서 연결된다.리눅스에서 c 소스 코드는 전처리, 컴파일, 어셈블 과정을 거쳐 ELF 형식을 갖춘 오브젝트 파일로 번역된다.오브젝트 파일은 실행 가능한 형식을 갖추고 있지만, 라..
*본 포스트는 Dreamhack - Systemhacking Lecture 을 참고하여 작성되었습니다.NX(No-eXecute)실행에 사용되는 메모리 영역과 쓰기에 사용되는 메모리 영역을 분리하는 보호 기법어떤 메모리 영역에 대해 쓰기 권한과 실행 권한이 함께 있으면 시스템이 취약해지기 쉽다.예를 들어, 코드 영역에 쓰기 권한이 있으면 공격자는 코드를 수정하여 원하는 코드가 실행되게 할 수 있고, 반대로 스택이나 데이터 영역에 실행 권한이 있으면 Return to Shellcode와 같은 공격을 시도할 수 있음.CPU가 NX를 지원하면 컴파일러 옵션을 통해 바이너리에 NX를 적용할 수 있으며, NX가 적용된 바이너리는 실행될 때 각 메모리 영역에 필요한 권한만을 부여받는다.checksec 명령어를 이용하..