Study/web(6)
-
SSRF
HTTP 라이브러리PHP : php-curlNodeJS : httppython : urllib, requests => HTTP 요청을 보낼 client 뿐만 아니라 server와 server간 통신을 위해 사용되기도 한다. SSRF (Server-Side Request Forgery)웹 서비스의 요청을 변조하는 취약점브라우저가 변조된 요청을 보내는 CSRF와는 다르게 웹 서비스의 권한으로 변조된 요청을 보낼 수 있다. 웹 서비스가 보내는 요청을 변조하기 위해서는 요청 내에 이용자의 입력값이 포함돼야 한다. ex1) 웹 서비스가 이용자가 입력한 URL에 요청을 보내는 경우image_downloader이용자가 입력한 image_url을 requests.get 함수를 사용해 GET 메소드로 HTTP 요청을 보..
2024.05.06 -
File Vulnerability
File Vulnerability 파일 취약점 File Upload Vulnerability웹 서비스를 통해 파일을 서버의 파일 시스템에 업로드하는 과정에서 발생하는 보안 취약점업로드될 파일의 이름을 임의로 정할 수 있을 때 발생- 파일 이름에 이용자가 입력한 문자열을 그대로 사용- 이용자의 이메일, 닉네임 등을 포함시키는 등의 소스 코드 패턴 Path Traversal 취약점특정 디렉터리에만 업로드를 허용하는 제약을 우회하여, 임의 디렉터리에 파일을 업로드 할 수 있는 취약점@app.route('/fileUpload', methods = ['GET', 'POST'])def upload_file(): if request.method == 'POST': //POST 요청을 받으면 f = request..
2024.05.06 -
command injection
injection 악의적인 데이터를 프로그램에 입력하여 이를 시스템 명령어, 코드, 데이터베이스 쿼리 등으로 실행되게 하는 기법 command injection 이용자의 입력을 시스템 명령어로 실행하게 하는 취약점 명령어를 실행하는 함수에 이용자가 임의의 인자를 전달할 수 있을 때 발생함 파이썬 웹 애플리케이션에서 입력한 임의 IP에 ping 전송하고 싶을 때 os.system("ping [user-input]") 임의 파일을 읽고 싶을 때 os.system("cat [user-input]") 메타문자 ' ' 명령어 치환 $() 명령어 치환 && 명령어 연속 실행 || 명령어 연속 실행 ; 명령어 구분자 | 파이프 : 앞 명령어의 결과가 뒷 명령어의 입력으로 들어감
2024.03.06 -
cookie & session
cookie key와 value로 이뤄진 일종의 단위 서버가 클라이언트에게 쿠키를 발급하면, 클리이언트는 서버에 요청을 보낼 때마다 쿠리를 같이 전송 클라이언트의 정보 기록과 상태 정보를 표현하는 용도로 사용 클라이언트의 브라우저에 저장되고 요청에 포함되는 정보 클라이언트는 쿠키 정보를 변조해 서버에 요청을 보낼 수 있음 session 쿠키에 인증 상태를 저장하지만 클라이언트가 인증 정보를 변조할 수 없게 하기 위해 사용 인증 정보를 서버에 저장하고 해당 데이터에 접근할 수 있는 키(==session ID)를 만들어 클라이언트에 전달하는 방식으로 작동 > 브라우저는 session ID를 쿠키에 저장하고 이후에 HTTP 요청을 보낼 때 사용 > 서버는 요청에 포함된 키에 해당하는 데이터를 가져와 인증 상태..
2023.10.13 -
web
웹에서 처리하는 정보 자산들이 많아짐에 따라 이들을 안전하게 보관하고 처리해야 할 필요성도 함께 증가하였다. 그래서 웹을 통한 정보의 교환 과정에서 이러한 민감한 정보들이 유출되거나 악용되지 않도록 보호하는 웹 보안의 중요성이 대두하고 있다. web : 인터넷을 기반으로 구현된 서비스 중 HTTP를 이용하여 정보를 공유하는 서비스 - front-end: 이용자의 요청을 받는 부분 / baxk-end: 요청을 처리하는 부분 web resource : 웹에 갖춰진 정보 자산 - 모든 웹 리소스는 고유의 URL을 가지며, 이를 이용하여 식별된다 - HTML: 웹 문서에서 태그와 속성을 통한 구조화된 문서 작성을 지원 - CSS: 웹 리소스들의 시각화 방법을 기재한 스타일 시트 - JS: 웹 문서의 동작을 정의..
2023.10.12 -
command injection
injection: 악의적인 데이터를 프로그램에 입력하여 이를 시스템 명령어, 코드, 데이터베이스 쿼리 등으로 실행되게 하는 기법 command injection: 이용자의 입력을 시스템 명령어로 실행하게 하는 취약점 - 명령어를 실행하는 함수에 이용자가 임의의 인자를 전달할 수 있을 때 발생 - 리눅스 셸 프로그램이 지원하는 다양한 메타문자로 인해, 이용자의 입력을 제대로 검사하지 않으면 임의 명령어가 실행될 수 있다 메타문자 설명 ex ' ' 명령어 치환 ' ' 안에 들어있는 명령어를 실행한 결과로 치환 $ echo `echo theori`theori $() 명령어 치환 $() 안에 들어있는 명령어를 실행한 결과로 치환. 중복 사용 가능 ( echo $(echo $(echo theori)) ) $ e..
2023.08.30