목록Hacking & Security (134)
선릉역 1번 출구
XSS 악의적인 사용자가 공격하려는 사이트에 스크립트를 넣는 기법 웹 애플리케이션이 사용자로부터 입력받은 값을 제대로 검사하지 않을 때 나타남 의도치 않은 행동을 수행시키거나 쿠키나 세션 토큰 등의 민감한 정보를 탈취함! store xss - 서버에 저장해 실행하는 방식 reflected xss - URL 파라미터에 스크립트를 넣어 바로 반사되게 하는 공격 CSRF 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위를 특정 웹사이트에 요청하게 하는 공격 특정 웹사이트가 사용자의 웹 브라우저를 신용하는 상태를 노린 것 선행되어야하는 조건 1. 사용자가 웹사이트에 로그인한 상태여야 함 2. 희생자는 공격자가 만든 피싱 사이트에 접속해야 함 사용자가 웹사이트에 로그인한 상태에서 사이트간 요청 위조 공격 코..

커맨드 인젝션(command injection): 명령어를 삽입한다는 뜻으로, 웹 요청 메시지에 임의의 시스템 명령어를 삽입하고 전송하여 웹 서버에서 해당 명령어를 실행하는 것 사용자가 입력한 값 ---> 검증 없이 시스템 명령어의 일부로 전달 ---> 웹 애플리케이션 내부(시스템 명령어 실행) 공격자는 이 값을 조작해 임의의 시스템 명령어를 실행할 수 있음 1. Ping 명령어에 ip 주소 입력하기 ip 주소를 적으면 명령어 실행 결과를 아래 출력함 2. 소스 코드 분석 $target = $_REQUEST['ip'] . . . $cmd = shell_exec('ping -c 4' . $target); ip 파라미터의 값이 target으로 192.168.0.101을 입력하면 ping -c 4 192.16..

취약한 인증: 인증 과정이 제대로 보호되어 있지 않아 공격자가 인증 과정을 우회할 수 있는 경우 발생 ex) 사용자가 로그인을 여러 번 실패하더라도 제한을 두지 않는 경우, 세션 관리의 문제로 인해 사용자의 세션 ID가 노출되어 공격자가 세션 하이재킹 공격이 가능한 경우, 세션 ID가 쉽게 유추할 수 있는 경우, 세션에 대한 타임아웃이 없어 오래된 세션ID를 사용해 인증이 가능한 경우 공격자: 사용자 계정 정보를 확인하거나 세션 토큰과 같은 인증에 사용되는 토큰 정보를 입수해 인증 과정 우회 브루트 포스(무차별 대입 공격): 로그인 실패 후 로그인 횟수에 제재를 가하지 않는 경우 사용 1. 무작위 시도: 일련의 문자들을 한번씩 대입 2. 딕셔너리: 사람들이 자주 쓰는 패스워드를 이용해 로그인 시도 DVM..

1. 모의 해킹 대상 정하기 2. 정보 수집하기 수집할 정보는 두 가지로 나눠짐 - 웹 어플리케이션을 서비스하기 위한 호스트 환경(운영체제, 웹 서버, 웹 프레임워크) - 웹 어플리케이션 자체에 대한 정보 3. 배너를 통한 정보 수집 간단하게 웹 서버와 관련된 정보 확인 = 응답 메시지의 서버 헤더 확인 서버 헤더: 아파치 웹 서버 버전 정보, 운영체제, PHP 버전 정보, OpenSSL의 정보 확인 가능 * X-Powered-By * X-ASPNET-VERSION 이 두 개의 헤더도 호스트 환경의 불필요한 정보를 노출할 가능성이 있음 4. 기본 설치 파일을 통한 시스템 정보 수집 웹 애플리케이션을 운영하기 위한 웹 서버, 웹 프레임워크, 기타 구성 요소를 설치할 때 기본으로 설치되는 파일에 의해 노출될..

저번에 마지막 쉘코드가 복호화 되었다. 그럼 이제 009F0000에 복호화 된 코드가 어떻게 실행되는지 보자 이 부분에서 실행시키는 것 같다. 하나하나 차근차근 분석해보자 VirtualFree 함수를 실행시키는 부분에 와보니 위에 차례대로 파라미터 값인 8000, 0, 009D0000를 넣어주고 있었다. stack을 보면 8000, 0, 009D0000이 들어가있다. -> 그런데 009F0000에다가 마지막 복호화를 해주었는데 왜 009F0000이 아닌 009D0000이 들어가는지는 모르겠다. 일단 패스하고 다음에 알아보자. 이 시점에서 009F0000이 다시 009D0000에 덮어씌워졌나했는데 그것도 아니었다. virturalFree는 무엇을 하는 함수인가 -> 아! 할당한 메모리를 Free해주는 함수..

저번에 복호화 한 shellcode를 실행하는 도중 또 shellcode안 어떤 부분을 decode하고 압축 해제하는 부분이 있는 것 같다. ollydbg로 실행해보자. v115에 값을 넣어주고 있는데 그부분이 EBP-40이다. dump로 EBP-40으로 가니 009D0000주소가 리틀엔디언으로 들어가 있다. 그럼 이 부분이 끝나면 009D0000에 복호화된 코드가 있을 것이다. 279줄에 해당하는 sub_9C1270전까지 실행해보자. 009C046A에는 코드와 같은 ROL이 존재한다. 압축을 해제하는 코드 시작이 009C04B1이엇서 4B0까지 실행한 결과 009D0000에 복호화 된 내용이 써져있다. sub_9C1270도 압축 해제이기 때문에 압축 해제한 파일을 어디에 작성할 것이다. 어디에 작성하는..