WEB Hacking
-
<WEB Hacking> LFIWEB Hacking 2022. 1. 12. 01:47
■ LFI(Local File Inclusion) LFI 취약점이란 공격 대상 서버에 위치한 파일을 포함시켜 읽어오는 공격이다. LFI 또는 RFI(Remote File Inclusion) 취약점이 존재하는지 확인하기 위해 주로 파라미터로 ../를 입력해본다. 공격 대상 주소/test.php?parameter=../ LFI 취약점은 php 코드상에서 include() 사용 시, 입력 값에 대한 필터링이 이루어지지 않아 발생하는 취약점이다. 만약 LFI 공격이 가능하다면, 파라미터에 파일의 경로를 입력하면 파일이 실행된다. # example # input /test.php?file=../../../../../../../../etc/passwd ■ PHP Wrappers php://filter 가장 많이 사..
-
<WEB Hacking> ServerSide: SSRFWEB Hacking 2022. 1. 5. 11:46
■SSRF(Server-Side Request Forgery) 웹 서비스는 외부에서 접근할 수 없는 내부망의 기능을 사용할 때가 있다. 이 서비스는 관리자만 이용해야 하므로 외부에서 접근할 수 없는 내부망에 위치한다. 외부에서 직접 접근할 수 없지만, 웹 서비스는 내부망 서비스와 통신할 수 있다. 만약 공격자가 SSRF 취약점을 통해 웹 서비스의 권한으로 요청을 보낼 수 있다면, 외부에서 간접적으로 내부망 서비스를 이용할 수 있게된다. 웹 서비스가 보내는 요청을 변조하기 위해서는 요청 내에 공격자의 입력값이 포함되어야 한다. ex) 웹 서비스가 공격자가 입력한 URL에 요청을 보내는 경우 URL에 공격자의 번호가 사용되는 경우 공격자가 입력한 값이 HTTP Body에 포함되는 경우 ■웹 서비스가 공격자가..
-
<WEB Hacking> File VulnerabilityWEB Hacking 2021. 12. 23. 18:47
파일 공유 서비스를 개발할 때, 이용자가 업로드한 파일을 데이터베이스에 저장하는 것보다 서버의 파일 시스템에 저장하는 것이 개발하기 쉽고, 관리 효율도 높다. 그러나 반대로, 임의의 파일이 다운로드 되는 취약점이나, 악성 웹셸 파일을 업로드하여 임의의 코드를 실행할 수 있는 취약점을 발생시키기도 한다. 파일 업로드 취약점(File Upload Vulnerability) 공격자의 파일을 웹 서비스의 파일 시스템에 업로드하는 과정에서 발생하는 보안 취약점으로, 파일 시스템 상 임의의 경로에 원하는 파일을 업로드하거나 악성 확장자를 갖는 파일을 업로드할 수 있을 때 발생한다. 원하는 시스템 명령을 실행하는 원격 코드 실행 취약점을 유발한다. 파일 다운로드 취약점(File Download Vulnerabilit..
-
<WEB Hacking> Command InjectionWEB Hacking 2021. 12. 22. 12:15
■Command Injection 이용자의 입력을 시스템 명령어로 실행하게 하는 기법으로, 명령어를 실행하는 함수에 이용자가 임의의 인자를 전달할 수 있을 때 발생 ex) Python으로 개발된 웹 애플리케이션에서 입력한 임의의 IP에 ping을 전송 os.system("ping [user-input]") ex) Python으로 개발된 웹 애플리케이션에서 임의의 파일을 읽기 os.system("cat [user-input]") 위와 같은 함수를 사용할 때, 이용자의 입력을 제대로 검사하지 않으면 임의 명령어가 실행될 수 있음 => 리눅스 셸 프로그램이 지원하는 다양한 메타 문자 때문 ex) 메타 문자 메타 문자 설명 ex `` 명령어 치환 `` 안에 들어있는 명령어를 실행한 결과로 치환 $ echo `e..
-
<WEB Hacking> NoSQL InjectionWEB Hacking 2021. 12. 20. 11:41
■NoSQL(Not Only SQL) · SQL을 사용하지 않고 복잡하지 않은 데이터를 저장해 단순 검색 및 추가 검색 작업을 위해 매우 최적화된 저장 공간임 · 키-값을 사용해 데이터를 저장 · RDBMS는 SQL이라는 정해진 문법을 사용하는 반면에 NoSQL은 다양한 DBMS마다 각각의 구조와 사용 문법이 다름 ■NoSQL Injection · 취약점은 주로 이용자의 입력값에 대한 타입 검증이 불충분할 때 발생 · SQL은 데이터의 자료형으로 문자열, 정수, 날짜, 실수 등을 사용할 수 있음 · MongoDB는 이외에도 오브젝트, 배열 타입을 사용할 수 있음 http://localhost:3000/?data=1234 data: 1234 type: string http://localhost:3000/?..
-
<WEB Hacking> SQL InjectionWEB Hacking 2021. 12. 20. 11:18
DBMS에서 사용하는 쿼리를 임의로 조작해 데이터베이스의 정보를 획득하는 기법 ■Simple SQL Injection user_table uid upw guest guest admin ********** 로그인할 때 사용되는 쿼리 SELECT uid from user_table where uid='' and upw=''; admin의 비밀번호를 찾기 위한 쿼리 SELECT uid FROM user_table WHERE uid='' UNION SELECT upw FROM user_table WHERE uid='admin'#' and upw=''; ■Blind SQL Injection 질의 결과를 이용자가 화면에서 직접 확인하지 못할 때, 참/거짓 반환 결과로 데이터를 획득하는 기법 로그인할 때 사용되는 쿼..
-
<WEB Hacking> ClientSide: CSRFWEB Hacking 2021. 12. 17. 12:32
정보가 포함된 쿠키는 클라이언트에서 보내진 요청이 이용자로부터 왔고, 이용자가 동의함 따라서, 요청에 이용자의 권한이 부여되어야 함 ■CSRF(Cross Site Request Forgery) 임의 이용자의 권한으로 임의 주소에 HTTP 요청을 보낼 수 있는 취약점으로 공격자는 임의 이용자의 권한으로 서비스 기능을 사용해 이득을 취할 수 있음 ex) 이용자의 계정으로 임의 금액을 송금해 금전적인 이득을 취함, 비밀번호 변경을 통해 계정 탈취 관리자 계정을 공격해 공지사항 작성으로 혼란 야기 CSRF 공격이 성공하기 위해서는 공격자가 작성한 악성 스크립트를 이용자가 실행해야 함 ex) 메일, 게시판 등 이때 악성 스크립트는 HTTP 요청을 보내는 코드(HTML 또는 자바스크립트를 통해 작성) ex) img..
-
<WEB Hacking> ClientSide: XSSWEB Hacking 2021. 12. 16. 16:01
클라이언트 사이드 취약점은 웹 페이지의 이용자를 대상으로 공격할 수 있는 취약점 이 취약점을 통해 이용자를 식별하기 위한 세션 및 쿠키 정보를 탈취하고 해당 계정으로 임의의 기능을 수행할 수 있음 ※ Cross Site Scripting의 약어로, CSS라 불려야 하지만 스타일을 구성하는 CSS와 중복되므로 XSS로 명명됨 ■XSS(Cross Site Scripting) 공격자가 웹 리소스에 악성 스크립트를 삽입해 이용자의 웹 브라우저에서 해당 스크립트를 실행할 수 있고, 이 취약점을 통해 특정 계정의 세션 정보를 탈취하고 해당 계정으로 임의의 기능을 수행할 수 있음 XSS는 발생 형태에 따라서 다양한 종류로 구분 종류 설명 Stored XSS 악성 스크립트가 서버에 저장되고 서버의 응답에 담겨오는 XS..