전체 글 171

정규 표현식

정규 표현식(regular expression, regexp, regex)은 특정한 규칙을 가진 문자열의 집합을 표현하는 데 사용하는 형식 언어이다.만약 DREAM-무작위 숫자 형태의 입력 데이터를 검증하고 싶은 경우 정규 표현식을 사용해 손쉽게 구현할 수 있다.function DREAMChecker(value){ var re = /DREAM-\d+/; var OK = re.exec(value); if (OK) { console.log(OK[0]); } else { console.log("Not Found"); } } DREAMChecker("DREAM-1"); // DREAM-1 DREAMChecker("DREAM-31337"); // DREAM-31337 DREAMChecker("DREAM-A"); ..

Web Hacking/Study 2023.07.01

파일 다운로드 취약점 실습(1)

파일 다운로드 취약점 실습(1) Start-Up Kshield 주니어 교육 프로그램에서 제공한 게시판 페이지 기능에서 파일 다운로드 취약점을 실습할 것이다. 먼저 파일 다운로드 취약점은 파일 다운로드 할 수 있는 기능이 있어야 하고 파일 다운로드 시 받고자 하는 파일 이름으로 다운로드 받는 방식이 동적으로 개발된 경우 파일과 그 파일의 경로가 매개변수에 직접적으로 노출되어지기 때문에 공격자는 다른 파일의 이름과 경로를 조작해 중요 파일을 다운로드 받을 수 있다. 해당 게시판에서 제공하는 웹셸 파일이다. Burp Suite 도구를 이용해 파일을 다운로드 받는 패킷을 잡아보면 다운로드 받는 파일 이름 strFileName과 f_path인 파일 경로가 나와있는 걸 볼 수 있다. 이렇게 직접적으로 노출 되는 이..

모의해킹 2023.07.01

파일 업로드 취약점 실습(3)

파일 업로드 취약점 실습(3) 업로드 된 파일이 실행되기 위해서는 업로드 된 웹셸 파일의 경로명을 알아내고 실행시켜야 한다. 먼저 경로 명을 알아내기 위해서 url 부분에 shop_board_list.asp 부분을 파일을 업로드 한 cmd(1).asp 로 변경한 후 접속을 시도해보았다. 다음과 같이 오류 페이지가 나왔고 cmd1(1).asp는 이 경로에 없다는 것을 확인하였다. 업로드 된 게시판을 다운받기 전에 Burp Suite 도구를 이용해 다운로드가 되는 패킷을 잡아보았다. 다운로드 되는 패킷을 잡아보면 다음과 같이 넘겨지는 파라미터 부분의 데이터에 strFileName은 cmd.asp 와 경로명 같아 보이는 f_path 부분에 upload_file 이라고 되어있다. 따라서 이 파일은 /upload..

모의해킹 2023.07.01

파일 업로드 취약점 실습(2)

파일 업로드 취약점 실습(2) 다음으로 oyesmall 게시판 페이지에서 또 다른 파일 업로드 취약점을 테스트 해보기 위해 먼저 cmd.asp 파일을 복사해 cmd.txt 파일로 변경한다. cmd.txt 파일을 업로드 하기 전 Burp Suite 도구를 이용해 Submit 버튼을 누르면 전송되는 패킷을 잡아보았다. Burp Suite 도구를 이용해 패킷을 잡아보면 다음과 같이 filename 값에 cmd.txt 라고 하는 파일로 전송되는 것을 확인할 수 있다. cmd.txt 부분을 cmd.asp 라고 변경해 준후 Forward 버튼을 누른다. 이렇게 프록시 도구인 Burp Suite 도구를 이용해 요청에서 중간에 변조를 통해서 파일 업로드 취약점이 발생하는 것을 확인하였다. 이번에는 Burp Suite ..

모의해킹 2023.07.01

파일 업로드 취약점 실습(1)

파일 업로드 취약점은 업로드 기능이 있는 페이지에 실행 가능한 언어로 작성된 공격 프로그램을 업로드하면서 생기는 취약점이다. 파일 업로드는 jsp, asp, php 등 파일로 업로드할 수 있고 업로드한 파일은 업로드 전용 폴더를 만들어 놓았을 때 보통 해당 폴더에 저장되는데 공격자는 업로드 파일이 위치한 경로명을 알아내고 URL 직접 접근을 통해서 웹셸을 실행할 수 있다. Start-Up K-Shield 주니어에서 제공하는 oyesmall 페이지에서 게시판 페이지에 접속해보면 shop_board_list.asp 라는 페이지에 접속하는 것을 확인했다. 또한 파일 업로드 취약점을 테스트하기 위해서 윈도우 디펜더 기능이나 백신 프로그램에서 실시간 감지를 꺼야 제대로 테스트할 수 있다. oyesmall 페이지는..

모의해킹 2023.07.01

File Download 취약점과 대응방안

파일 다운로드 취약점(File Download Vulnerabillity)이란?파일 다운로드 시 사용자로부터 특정 파일 정보를 입력받지만 이 입력 값을 검증하지 않을 경우에 발생할 수 있는 취약점이다. 발생 원인파일 다운로드 시 파일의 절대 경로 또는 상대 경로가 노출되는 경우다운로드 모듈이 파일의 경로나 이름을 파라미터로 사용하는 경우파일 경로와 파일명 필터링 미흡하여 ../를 이용해 상위 디렉터리에 접근이 가능한 경우다운로드 경로가 노출되지 않더라도 구조가 단순하여 파라미터 변조를 통해 접근이 허용되지 않은 파일에 접근이 가능할 경우 절대 경로란?웹 페이지나 파일이 가지고 있는 고유한 경로ex) C:\Apache24\bin\iconv\test.txt 상대 경로란?현재 위치한 곳을 기준으로 하여 그곳의..

Web Hacking/Study 2023.07.01

File Upload 취약점과 대응방안

파일 업로드 취약점(File Upload Vulnerabillity)이란?파일 업로드 취약점은 웹 애플리케이션에 파일이 업로드되기 전에 유효성 검사가 구현되지 않았거나 안전하지 않은 방식으로 구현된 경우 악성 파일을 업로드할 수 있는 취약점이다. 이런 파일 업로드 기능이 취약하면 공격자는 웹셸과 같은 파일을 업로드하여 시스템 명령을 실행하거나 다른 시스템 공격을 위한 경유지로 악용하는 등의 서버측 공격을 할 수 있다. 또한 XSS 같은 클라이언트측의 공격도 가능하다. 파일 업로드 취약점의 동작 원리사용자가 파일을 업로드된 파일은 어디가에 저장된다. 이 때 파일이 저장되는 위치는 개발자가 지정한 저장 공간이므로 웹 애플리케이션마다 다를 수 있다. 파일 업로드 취약점은 일반적으로 업로드 파일의 저장 위치가 ..

Web Hacking/Study 2023.07.01

SQL Injection 실습(2)

SQL Injection 실습(2) 이전에 실습했던 oyesmall 홈페이지 데이터베이스의 구조는 MS-SQL을 사용하고 시스템 테이블을 이용해 데이터베이스 정보를 획득할 수 있다. information_schema.tables 함수는 기본 MS-SQL 데이터 베이스에 있는시스템 테이블의 함수이며 저 함수를 구글에 검색해보면 다양한 함수를 알 수 있다. 다음과 같이 TABLE_NAME 함수를 사용해 테이블의 이름을 알 수 있다. information_schema.columns 를 검색해보면 다음과 같이 TABLE_NAME과 COLUMN_NAME이 나오는데 COLUMN_NAME을 이용하여 컬럼의 이름을 얻어 수 있다. oyesmall의 회원가입 창에서 주소를 찾는 곳에서 SQL 문을 삽입해 데이터베이스에 ..

Web Hacking/Study 2023.07.01

SQL Injection 실습(1)

SQL Injection 실습(1) 아래 홈페이지는 KISEC에서 실습할 수 있는 페이지를 제공해주었고 여기서 SQL Injection을 실습할 것이다. 메뉴 상단에 login을 누르면 다음과 같이 로그인 화면이 나오게 된다. 아이디와 비밀번호 값에 둘 다 ‘ or 1=1 -- 를 대입해보았다. 로그인 한 결과 로그인이 성공했고 my account 라는 탭에 들어가보면 사용자가 oyes라는 계정으로 로그인되었다. oyes라고 로그인 되어진 이유는 모든 레코드 값 중에 제일 상위에 있기 때문에 oyes 계정이 반환되어 진 것이다. ‘and db_name() > 1-- 라는 값을 삽입 하면 데이터베이스의 이름을 파악할 수 있다. db_name() 함수는 데이터베이스의 이름을 문자열로 반환하는 MS-SQL 함..

모의해킹 2023.07.01

Non-Relational DBMS

RDBMS는 스키마를 정의하고 해당 규격에 맞는 데이터를 2차원 테이블 형태로 저장한다. 이는 복잡할 뿐만 아니라, 저장해야 하는 데이터가 많아지면 용량의 한계에 다다를 수 있다는 단점이 있다. 이를 해결하기 위해 등장한 것이 비관계형 데이터베이스 즉, Non-Relational DBMS (NRDBMS, NoSQL) 이다. 관계형 데이터베이스에서 발생할 수 있는 문제점으로 SQL Injection이 있었다. 공격자는 이를 통해 데이터베이스의 정보를 알아내거나 임의의 결과를 반환해 인증을 우회하는 등의 행위가 가능했다. NoSQL 또한 이용자의 입력값을 통해 동적으로 쿼리를 생성해 데이터를 저장하기 때문에 이와 같은 문제점이 발생할 수 있다. 비관계형 데이터베이스(NRDBMS)RDBMS는 SQL을 사용해 ..

Web Hacking/Study 2023.07.01