본문 바로가기

전체 글69

[Dreamhack] php-1 php로 작성된 사이트에서 LFI 취약점을 이용해 플래그를 획득하는 문제이다. LFI(Local File Inclusion) 취약점이란? 웹 브라우저를 통해 서버에 파일을 포함시키는 과정이다. 즉, 공격 대상 서버에 위치한 파일을 포함시켜 읽어오는 공격이다. 이 취약점은 인클루드 시, 페이지 경로가 적절히 필터링되지 않거나 디렉토리 변경 명령어들의 삽입을 허용했을 때 일어난다. 대부분 LFI 취약점은 URL을 통해 이뤄지게 된다. flag.php 파일 클릭 시, Permission denied 문구가 뜬다. 이때, url을 보면, http://host1.dreamhack.games:10625/?page=view&file=../uploads/flag.php 로 표시가 된다. 기본적인 LFI 공격은 위와 같.. 2022. 4. 25.
SQL 인젝션 우회 * ‘or’와 ‘and’가 필터링 시 &(and)와 | (or) 사용 → 띄어쓰기 없이 &&, || 두번 입력 * ‘or’와 ‘and’가 필터링 시 and는 %26%26, or는 %7C%7C로 url 인코딩 우회 * ‘=‘ 우회 → like와 instr 함수 사용 like >> 1 like 1 instr >> instr(1,1); * 싱글 쿼터(‘) 우회 → 더블 쿼터(“) 사용, 백슬래쉬(\) 사용, 'char' 사용 * 공백기호 필터링 %20(--), %0A(개행문자), %09(탭 만큼 이동), 주석(/**/), 괄호(()), +(더하기), %23(#) 등 * preg_match 에서 admin 문자를 필터링 → Admin 등으로 우회 * replace 에서 admin 대소문자 우회 막을 시 → re.. 2022. 4. 22.
SQL 인젝션 SQL 인젝션(INJECTION) ? SQL은 DBMS에 데이터를 질의하는 언어이다. 정상적인 SQL Query를 변조하고, 삽입해서 비정상적인 데이터베이스 접근을 시도하는 공격 SQL Injection 발생 시 조작된 쿼리로 인증을 우회하거나, 데이터베이스의 정보를 유출할 수 있다. SQL Injection 공격의 목적은 정보 탈취(기밀성 침해), 정보 수정/삭제(무결성 침해)이다. 주석 처리 기호 Oracle, MSSQL은 ' -- ' , MYSQL(MariaDB)는 '#', /**/ 는 /* ~ */ 사이 구문 주석 처리 1. Error Based SQL Injection * 웹 서버와 데이터베이스 간에 통신 시 쿼리문이 맞지 않을 경우 에러가 발생한다. * 이러한 에러를 기반으로 SQL Injec.. 2022. 4. 22.
크로스사이트 스크립팅 공격 및 우회 기법 크로스사이트 스크립팅(XSS) 공격 기법 * 스크립트 태그 : 스크립트 태그로 자바스크립트 실행 * 자바스크립트 태그 : 링크 태그로 자바스크립트 실행 xss * 이벤트 속성 : 이벤트 속성을 사용, 주로 on으로 시작하는 속성 (예)onload, onerror, onclick 등 * 내용 난독화 : HTML 인코딩 XSS * iframe 태그 : 문서 내에 삽입할 로컬 및 원격지 페이지 호출 * embed 태그 : 웹 페이지에 여러가지 형태의 객체(이미지 파일, 기타 파일 등)를 추가하기 위해 사용 * form 태그 : 사용자 정보를 입력 받고 정보를 서버나 전자메일 주소로 보내는 방법을 제공 와 같은 문자를 사용하지 않고도 수행될 수 있다. 아래 공격 코드로 쿠키 정보를 노출시킨다. * 블랙리스트 우.. 2022. 4. 20.
크로스사이트 스크립팅(XSS) 크로스사이트 스크립팅(XSS) 취약점? 검증되지 않은 입력값으로 인해 사용자의 웹 브라우저에 의도하지 않은 악성 스크립트가 실행되는 취약점 브라우저로 전달되는 데이터에 악성 스크립트가 포함되어 사용자의 브라우저에서 실행되며 해킹 사용자의 정보(세션, 쿠키 등)가 탈취, 악성코드 감염 등이 발생할 수 있는 위험이 있음 Stored XSS, Reflected XSS, DOM XSS 공격 방식이 있음 1. Stored(저장형) XSS * 공격자가 게시판이나 방명록 등에 악의적인 스크립트 삽입 후 사용자가 해당 게시글 클릭 시 저장되어 있던 스크립트가 실행되는 공격 * 악성 스크립트가 공격 대상의 DB 등에 보존(지속적) * 게시판이나 방명록, 회원 정보 같은 사용자 입력값을 저장하거나 열람할 수 있는 곳에서 .. 2022. 4. 19.
파일 다운로드 공격 및 우회 기법 윈도우는 대소문자를 구분하지 않지만, 리눅스는 대소문자를 구분한다. → 서버가 윈도우 기반인지 리눅스 기반인지 알 수 있다. → 대문자를 바꿔도 그대로 다운로드 받아진다면 윈도우 기반 또한, jsp나 php일 시 리눅스일 가능성이 높음 boot.ini 파일 존재시 윈도우 계열(버전에따라 다름), passwd 파일 존재시 Linux 계열 상위 폴더 이동 명령어는, 리눅스에서는 ../ 만을 사용하고, 윈도우에서는 ../ 또는 ..₩를 사용한다. 파일 다운로드 공격 기법 ① 멀티 파라미터 변조 예시 URL) www. example.com/view.php?file=mango.jpg&file_path=/test * /etc/passwd 파일에 접근하기 view.php?file=passwd&file_path=../.. 2022. 4. 13.