목록WebGoat (5)
겉바속촉
OS Command Injection Reverse shell 우선 그림으로 예시를 살펴보도록 할게요:) 공격자가 하고 싶은 것은 다음과 같이 텔넷같은 것을 이용하여 서버에 붙어서 명령어를 실행시키는 것입니다. 하지만 그 사이에 FireWall 같은 것들이 존재하기 때문에 불가능합니다. 방화벽이 존재하기 때문에 특정 포트 이외에는 못들어오게 막는 것입니다. 텔넷이나 ftp로 접속하려면 막아버리는 것입니다. 외부에서의 허용되지 않은 접근을 막는 것이쥬!! 내부에서 외부로 나가는 것은 어떨까요?? 일반적으로 막지 않습니다. 그렇다면 회사 내부에 있는 서버가 웹서버라면 다음과 같은 구조가 되겠죠. 공격자는 위와 같은 구조를 이용합니다. 외부에서 내부로의 접속은 어렵기 때문에 역으로 내부에서 외부로의 접속은 가..
지난 번에는 기능레벨의 접근통제에 대해서 알아봤습니다. 2021/02/08 - [IT 일기 (상반기)/네트워크 및 시스템 보안] - [보안] 접근제어 (feat. 기능레벨의 접근통제) [보안] 접근제어 (feat. 기능레벨의 접근통제) 접근제어 (Access Control) 화면에서의 접근제어(Presentaion layer access control) ⇒ 권한 있는 사용자에게만 기능 버튼과 링크를 제공 기능 레벨에서의 접근제어(Business layer access control) ⇒ 권한 있는.. 2-juhyun-2.tistory.com 작업중이던 환경들은 지난포스팅과 동일하게 진행하고 있습니다. 참고해주세요:) 이번에는 데이터레벨의 접근통제에 대해서 알아보겠습니다. WebGoat 페이지에서 Acce..
지난번에 봤던 Blind Numeric SQL Injection에 이어서 2021/01/21 - [IT 일기 (상반기)/네트워크 및 시스템 보안] - [보안] Blind Numeric SQL Injection [보안] Blind Numeric SQL Injection Blind Numeric SQL Injection 계좌 번호의 유효성을 체크해 주는 서비스 문제 ) The goal is to find the value of the field pin in table pins for the row with the cc_number of 1111222233334444. The fi.. 2-juhyun-2.tistory.com Blind String SQL Injection 에 대해서 보도록 하겠습니다. 문제)..
Blind Numeric SQL Injection 계좌 번호의 유효성을 체크해 주는 서비스 문제 ) The goal is to find the value of the field pin in table pins for the row with the cc_number of 1111222233334444. The field is of type int, which is an integer. pins 테이블에 cc_number 컬럼의 값이 '1111222233334444' 인 pin 컬럼의 값을 찾으시오. 사용자 입력 Account Number: 101 서버로 전달 attack?Screen=4&menu=1100&account_number=101 내부 처리 (추측) select * from accounts wher..
SQL Injection 개념 외부 입력값을 검증하지 않고 SQL문을 생성 및 실행에 사용하는 경우에 발생 쿼리의 원래 의미와 형태가 변형되어 실행 예상 피해 권한 밖 데이터에 대한 접근이 가능, 인증 우회, DB서버 또는 서버군의 제어권을 탈취하는 등의 피해가 발생 방어 기법 입력값 검증 --> SQL문을 조작할 수 있는 문자열 포함 여부를 확인 정적 쿼리를 사용 --> 항상 일정한 형태의 쿼리가 실행되는 것을 보장 DB 사용자에게 최소 권한을 부여 --> 애플리케이션에서 사용하는 DB 사용자의 권한을 필요한 만큼만 부여 에러에 대한 안전한 처리 --> 오류 메시지를 통해서 시스템 내부 정보가 노출되지 않도록 오류 메시지를 처리 입력되는 값의 형태(유형)에 따라 다양한 SQL Injection 유형 s..