전체 글

정보보안 블로그!
공부/Reverse Engineering

스택(Stack) - sfp / ret

Stack - 스택은 프로그램이 자동으로 사용하는 임시 메모리 영역으로 지역 변수, 매개 변수등이 저장됨. - Buffer + Stack Frame Pointer[4byte] + ret[4byte] SFP는 현재 스택의 기준을 잡는 값 함수 시작 시 마다 push %ebp 하는 부분이 sfp가 된다. ret는 return의 약자로 함수가 종료되고 다음 실행해야 하는 명령의 주소를 가지고 있다. 참고할만한 것 : research.hackerschool.org/Datas/Research_Lecture/sfp.txt

공부/Write-up

[DreamHack] welcome

소스코드를 확인해보면 정~~~~말 아무것도 없다. 그냥 서버에 접속하는 방법만 안다면 푸는 문제다.

공부/Write-up

[DreamHack] file-download-1

사진처럼 특정 메모를 업로드 할 수 있는 사이트가 제공된다. 메모를 업로드하면 제목과 내용이 표시된다. 소스코드를 확인해보자. 업로드 부분의 코드를 먼저 확인해보자. 특정 문자를 필터링하는 것으로 보아 내용을 업로드하는 부분에서는 공격을 하기위해서는 우회를 해야할 거 같다. 하지만 아래 read_memo()함수를 보면 따로 필터링을 거치지 않고 내용을 읽어오는 것을 볼 수 있다. 따라서 host1.dreamhack.games/read?name=12 부분에서 ../flag.py를 읽어 오도록 하면 flag를 얻을 수 있다.

공부/Write-up

[DreamHack] pathtraversal

소스코드의 일부분이다. 코드를 보면 POST로 데이터를 전송해야 정상적으로 userinfo를 보여주게되는데, 이때 따로 검증을 하는 구간이 없다. 따라서 이 부분을 활용해 상위폴더의 flag를 출력해줄 수 있다. 하지만, 이 부분에서 guest를 입력시 0으로 변환되어 값이 전송되고, admin을 입력시 1로 변환되어 전송된다. 그 이외의 값은 undefined로 변경되어 날라간다. 따라서 burpsuite를 통해서 날아가는 값을 변경해주어도 되지만, Chorme Console창에서 아래와 같이 진행하여도 된다. 위 javascript를 보면 users[document.getElementById('userid').value]; 를 통해 최종 값이 입력된다. 따라서 users['원하는 입력 값']='../..

공부/Write-up

[DreamHack] simple_sqli

소스 코드의 일부이다. 얼핏 보기에 따로 필터링 되는 부분이 없기에 아주 기초적인 sql injection 문제다. userid가 admin일 경우 flag를 출력된다. 따라서 admin의 password는 랜덤으로 설정되기 때문에 sql query문에서 userid를 admin으로 설정해주고 뒷 부분은 주석처리를 하면된다. select * from users where userid="admin" -- and userpassword="{userpassword}" 의 형식으로 만들어 주면 FLAG가 뜬다.

공부/Write-up

[DreamHack] Cookie

Link : www.notion.so/DreamHack-Cookie-5a3a2b2cb3fd4ba38c727ca96844e22b

공부/Reverse Engineering

Shellcode

0x01. 가장 기본적으로 쉘을 띄우는 코드 \x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x89\xc2\xb0\x0b\xcd\x80 bytes : 25 미포함 : setreuid(), exit() 0x02. 쉘을 종료할 때 exit(0)으로 정상종료까지 시켜주는 코드 \x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x89\xc2\xb0\x0b\xcd\x80\x31\xc0\xb0\x01\xcd\x80 bytes : 31 미포함 : setreuid() 0x03. setreuid(geteuid(), getreuid()) 까지 포함..

공부/정보보안기사

정보보안기사 - 운영체제(Process-2)

프로세스 교착상태(Deadlock) 정의 서로 다른 둘 이상의 프로세스들이 상대 프로세스가 차지하고 있는 자원을 점유하기 위해 무한 대기하는 상태 발생조건 상호배제(Mutual Exclusion) 필요한 자원에 대해 베타적 통제권을 요구하는 상태 점유와 대기(Wait) 다른 자원을 요구하지만, 자신의 자원을 해제하지 않는 상태 해결 각 프로세스가 필요한 자원을 미리 요구하여 할당 비선점 조건(Non-Preemption) 작업 완료시까지 할당된 자원을 해제 할 수 없는 상태 해결 점유 자원을 반납하고 대기상태가 되도록 조건을 부정 *조건 : 할당받은 자원은 다른 프로세스에 의해 중단될 수 없음 환형대기 조건(Circular Wait) 요청 자원에 대해 뫼비우스 띠의 형태가 된 경우\ 해결 자원에 대해 고유..

공부/Forensic

Digital Forensic / Incident Response

DF / IR ? Digital Forensic 디지털 기기를 활용한 범죄수사 정당성, 무결성, 보관성, 신속성, 재현성 Incident Response 침해사고 발생 시 대응하는 일련의 행위들 보안의 3요소 기밀성, 가용성, 무결성 침해사고에 대한 법적 근거 정보통신망 이용촉진 및 정보보호 등에 관한 법률 제 48조의 2(침해사고의 대응) 제 48조의 3(침해사고의 신고) 개인정보보호법 제 62조(침해 사실의 신고) 침해사고 대응 절차 수집 및 탐지 분석 협의 전파 및 발령 대응 및 복구 침해사고 대응 분석 절차 침해사고 분석 요청 원인분석 및 추척 이미지 분석 침투경로 추척 로그 분석 악성코드 수집 및 분석 대응 및 처리 분석결과 공유 및 사후 대책 제공 C&C 차단 악성코드 분석 정보 공유 및 차단

a2sembly
CALL DWORD PTR DS:[a2sembly]