1. CSRF? CSRF란 CSRF는 XSS를 통하여 발생하는 취약점으로 피해자의 권한으로 임의 주소에 요청을 보낼 수 있는 취약점입니다. 공격자는 XSS 취약점이 발생하는 페이지를 탐색하고, 해당 XSS페이지를 CSRF 페이로드로 디벨롭하여 피해자가 해당 페이지를 방문했을 때 원하지 않는 행동을 수행하도록 합니다. 명확히 해야 하는 부분 항상 해당 취약점을 판별할 때 판단이 어려운 부분이 있습니다. 그저 location.href 함수 등으로 해킹 사이트에 보내거나 다른 웹사이트로 보내는 것이 CSRF라고 봐야 하는가? 에 대한 판단입니다. 결론부터 말하자면 CSRF라고 보기 어렵습니다. 만약 해당 내용을 CSRF로 인정한다면 XSS가 터지는 거의 모든 부분에 CSRF가 동작할 확률이 높기 때문입니다. ..
[이론] SQL Injection 태그: Basic SQL이란 Sql는 Structured Query Language의 약자로서 데이터를 관리하기 위해 설계한 특수 목적의 프로그래밍 언어입니다. Database, Table등을 생성, 수정, 삭제 할 때 사용됩니다. 1. SQL INJECTION(SQLI)에 대한 이해 SQL Injection은 웹사이트에서 SQL를 사용하는 section에서 특정 SQL query를 전송하여 공격자가 원하는 데이터베이스의 중요한 정보를 가져오는 해킹 기법입니다. 공격자가 할 수 있는 행위는 다음과 같습니다. Select (질의) 로그인 예시 코드 SELECT id FROM user_table where uid='{사용자 입력 1}' and upw='{사용자 입력 2}';..
개요 Cookie & Session 에 대한 이야기에 이어 세션에서 발생할 수 있는 취약점을 설명한다. 세션에서 발생할 수 있는 취약점은 세션 생성, 유지, 파기 과정 중 발생하며 사용자 뿐만이 아니라 관리자 세션 등이 존재할 경우 더 큰 파급력으로 이어질 수 있다. 1. 세션 토큰 생성 취약점 웹 어플리케이션에서 토큰을 만들어내는 과정에서 취약점이 발생할 수 있다. 이는 토큰 생성 패턴이나 보편적으로 사용하는 토큰(쿠키) 생성 방식에서 취약점이 발생할 경우 공격자가 세션 토큰 예측 등을 통해서 공격할 수 있다. 안전하지 않은 토큰 생성 보편적으로 웹 프레임워크에서 생성하는 토큰을 제외하고 특정 이벤트 추적이나 상태 기록을 위해서 쿠키를 사용해야 할 때가 있다. 다음은 취약할 수 있는 임의의 토큰 이다...
1. 쉘코드가 무엇인가 1.1 말 그대로의 의미 쉘코드는 영어로 (ShellCode) 즉 쉘을 얻기 위한 어셈블리 코드 조각을 말합니다. 쉘은 시스템에서 커널과 사용자 간의 다리역할을 하는 것으로 생각하면 됩니다. 그래서 실행중인 프로그램에서 프로그램 실행 도중 쉘을 실행시킬 수 있다면 원하는 임의의 코드를 작동시킬 수 있습니다. 1.2 주요 쉘 코드 orw ( open - read - write ) 쉘 코드 시스템에서 어떤 파일을 읽을 때 기본적으로 파일을 열고 읽거나 쓰는 동작을 수행합니다. 해당 동작 과정에서 레지스터의 값을 가지고 어떤 파일을, 어떤 방식으로, 얼마만큼 읽을지 설정하고 원하는 동작을 수행할 수 있습니다. execve 쉘 코드 execve()는 filename이 가르키는 파일을 실행..
1. 배경 1.1 pwntools? pwntools는 말 그대로 pwnable 즉 시스템 해킹을 좀더 쉽게 할 수 있도록 하는 도구를 모아놓은 파이선 라이브러리라고 생각하시면 됩니다. 등장 배경 기존에는 페이로드를 작성하려면 gdb를 이용하여 진입점에서 디버깅을 세세하게 하거나, 만약 원격으로 시스템 해킹을 해야 하는 상황이면 소켓 프로그래밍을 통해 TCP 통신을 진행, Payload를 직접 작성하여 말 그대로 날것의 바이너리를 보내야 했습니다. 하지만 pwntools 등장 이후 이런 요소들이 매우 간편해 졌습니다. 1.2 pwntools 설치 및 사용 pwntools 설치 apt-get install python3 python3-pip python3-dev git libssl-dev libffi-dev..