본문 바로가기
300x250

분류255

[XSS] XSS(Cross Site Scripting)공격 실습 - (Dreamhack 실습예제) XSS(CrossSiteScripting) 서버의 응답에 공격자가 삽입된 악성 스크립트를 받은 사용자의 웹 브라우저에서 악성 스크립트가 실행되는 공격 XSS 공격을 수행하기 위해 요구되는 조건 악성 script가 삽입될 수 있는 낮은 검증 수준 정보가 웹 사이트에 출력될수 있는 낮은 검증 수준 그 외 다양한 XSS 변종 기법 Stored XSS : 게시판에 글을 작성하여 관리자에게 읽도록 유도하는 악성 script 실행 기법 Reflected XSS : 말 그대로 악성 script를 반사시킨다 주로 메일로 전송시키는 기법 Dreamhack의 XSS-1 문제입니다. XSS 취약점에 관련된 웹 해킹 문제입니다. 제공된 사이트에 접속해보겠습니다. /xss /memo /flag 세 개의 링크가 존재합니다. cs.. 2020. 7. 30.
[CSRF] CSRF(Cross Site Request Forgery)공격 실습 - (DreamHack 실습예제) CSRF(CrossSiteRequestForgery) 사용자의 의도와 무관하게 공격자가 의도한 행위(수정, 삭제, 등록 등)를 특정 웹사이트에 HTTP 요청을 하는 행위 CSRF 공격을 수행하기 위해 요구되는 조건 ▼ 웹 사이트의 인증방식은 쿠키를 이용해야 한다 혹은 예측 가능한 토큰 사용 공격자가 알지 못하는 파라미터가 존재하면 안 된다 (공격은 전부 정상적인 경로로 수행된다) Dreamhack의 CSRF-1 문제입니다. 제공된 사이트로 먼저 접속해보겠습니다. 4개의 링크가 존재합니다 /csrf /memo /notice flag /flag /csrf는 현 사이트에 존재하는 csrf 취약점에 대한 힌트를 제공합니다. 위 url창에 입력된 주소를 보면 가 입력되었으나 alert(1)로 출력되었습니다. 즉 .. 2020. 7. 30.
[C] C 중급 2차원 배열과 포인터배열 예제 C의 배열(array)은 배열 자체 그대로 사용하기에는 응용력이 많이 떨어지는 문법입니다. 그래서 2차원 배열로 확장하여 사용하곤 하는데 2차원 배열은 행렬논리적 구조를 가지지만 실제 메모리의 기억공간에서는 1차원 배열의 형태로 존재합니다. 그럼 C 배열의 기본적인 초기화 및 사용법을 알아보겠습니다.​ 2차원 배열의 선언 및 초기화 #include int main() { int double_array[2][3]={{1,2,3},{4,5,6}}; for(int i=0; i> 1 2 3 4 5 6 int double_array[2][3] 는 2차원 배열입니다. {{1,2,3}, {4,5,6}} 의 값을 가지고 있으며 2*3의 크기를 가지고 있습니다. 즉 원래 배열의 선언이 {} 괄호 내에 값만 삽입하는 형태.. 2020. 7. 27.
cookie를 통한 웹해킹 - DreamHack예제(cookie) Dreamhack의 cookie 문제입니다. Web hacking 카테고리의 워게임 문제 중 가장 쉬운 문제니 입문자들이 한번 풀어보면 좋을 듯합니다. Cookie란 사용자의 정보를 로컬 파일에 정보로 남겨놓은 파일을 일컬어 부른다 Cookie 문제에 접속하면 위 사이트가 나옵니다. Cookie 문제라고 대놓고 나와있으니 쿠키값을 변조하는 문제일 가능성이 농후합니다. 먼저 문제와 함께 동봉된 코드를 살펴보도록 합시다. Python의 웹 프레임워크인 Flask기반으로 작성되었으며 어느 정도는 Flask 문법을 알아야 해석이 편할 것 같습니다. 현재 존재하는 계정은 11번째 줄의 guest 계정과 암호가 FLAG로 래핑 된 admin계정 두 가지가 존재합니다. 먼저 guest 계정으로 로그인해봅시다. 로그인.. 2020. 7. 25.
[C] c의 정적변수와 외부변수 변수의 종류 정적(static) 변수 외부(extern) 변수 변수의 종류는 크게 두 가지로 나눌 수 있습니다. 이러한 분류가 필요한 이유는 변수의 영역의 차이에 따른 용도가 존재함과 동시에 함수간 데이터 전달이 더 원할해야 하기 때문입니다. 정적 변수 (Static Variable) #include int *print_ex(); int main() { int *count=0; count=print_ex(); printf("외부함수 호출후 메인함수에서의 값 : %d\n", *count); return 0; } int *print_ex() { static int sum=5; return ∑ } >>> 외부함수 호출후 메인함수에서의 값 : 5 위 코드는 정적 변수를 외부 함수에서 선언하여 해당 값을 포인터로.. 2020. 7. 25.
300x250