Web hacking 12

XSS_(3) Stored XSS 실습

※ "화이트 해커를 위한 웹 해킹의 기술" 강의 및 책에 수록된 실습이다. ※ 허가 받지 않은 웹사이트에 해킹을 시도 하는 것은 불법. ※ dvwa 등 테스트 가능하게 만들어진 곳에서만 모의해킹을 해야한다. Stored XSS는 스크립트 코드가 서버에 저장된 후에 이루어지는 공격이다. 한 번 스크립트를 삽입하고 나면 그 페이지에 접속하는 모든 사용자가 공격 당하게 된다. 따라서 Reflected XSS보다 위험하다. security level을 low로 설정한 뒤 이번에는 Stored XSS 탭으로 간다. 게시글을 저장할 수 있는 방명록이 있다. 여기에 Reflected XSS 실습할 때 쓴 코드를 저장해보자. 입력 글자 수 제한이 걸려있어 코드 전부 삽입이 안 될 수 있다. 입력 글자 수를 클라이언트 ..

Web hacking/기법 2023.05.14

XSS_(2) Reflected XSS 실습

※ "화이트 해커를 위한 웹 해킹의 기술" 강의 및 책에 수록된 실습이다. ※ 허가 받지 않은 웹사이트에 해킹을 시도 하는 것은 불법. ※ dvwa 등 테스트 가능하게 만들어진 곳에서만 모의해킹을 해야한다. security level을 low로 설정한 뒤 Reflected XSS 탭으로 가서, "test"를 입력했다. Hello test 라고 입력한 값이 반사되어 출력되었다. 그러면 이제 스크립트 삽입이 가능한 지 확인해보자. 를 입력했을 때, alert() 함수가 잘 실행된다. 그럼 이제 쿠키를 다음과 같이 입력해서 알아낼 수 있다. 이번엔 쿠키를 공격자의 시스템으로 전달해보자. 터미널에서 웹서버의 로그를 출력하는 명령어는 tail이다. -f 옵션을 주면 이후에 생기는 로그들도 차례로 출력된다. tai..

Web hacking/기법 2023.05.12

XSS_(1) 공격 개요

XSS 클라이언트 측의 웹 브라우저를 공격하는 기법 주로 자바스크립트를 이용해 와 같이 구현한다. 예를 들어, 를 통해 쿠키를 가져올 수도 있고, 또는 과 같은 형식으로 공걱자 서버에 심어둔 악성 코드를 실행하게 할 수도 있다. XSS 공격 유형 Reflected XSS / Stored XSS * Reflected XSS 공격 1. 공격자가 사회공학적 기법을 이용해 사용자에게 피싱 링크를 보낸다. 2. 사용자가 피싱 링크를 클릭하면, 링크에 있는 스크립트 코드가 삽입된 요청을 서버에 보낸다. 3. 서버가 사용자의 요청, 즉 스크립트 코드를 반사시켜 사용자의 브라우저에서 실행되게 한다. 4. 스크립트가 실행되면서 사용자의 세션쿠키를 공격자의 서버로 가져오게 된다. 5. 공격자는 이 세션쿠키를 이용하여 사용..

Web hacking/기법 2023.05.10

SQL injection_(4) Blind SQLi / medium, high 단계 및 대응

※ "화이트 해커를 위한 웹 해킹의 기술" 강의 및 책에 수록된 실습이다. ※ 허가 받지 않은 웹사이트에 해킹을 시도 하는 것은 불법. ※ dvwa 등 테스트 가능하게 만들어진 곳에서만 모의해킹을 해야한다. Blind SQL injection 이번에는 '이나 #등 어떤 특수기호를 넣어도 존재하지 않은 ID라고만 출력될 뿐, 에러문은 출력되지 않는다. 그런데 아래와 같이 참인 구문을 입력하면 존재하는 ID라고 출력되고, 거짓인 구문을 입력하면 존재하지 않은 ID라 출력되니 이를 이용하여 공격할 수 있다. 실행중인 쿼리는 다음과 같을 것이다. SELECT id from (id테이블) where id='(입력값)' 입력한 명제가 참인지 거짓인지 판별 가능하므로.. 하나하나 db이름의 첫글자는 이게 맞냐,아니냐..

Web hacking/기법 2023.04.18

SQL injection_(3) column 개수 알아내기, UNION 공격

※ "화이트 해커를 위한 웹 해킹의 기술" 강의 및 책에 수록된 실습이다. ※ 허가 받지 않은 웹사이트에 해킹을 시도 하는 것은 불법. ※ dvwa 등 테스트 가능하게 만들어진 곳에서만 모의해킹을 해야한다. UNION을 이용하여 두 개의 쿼리를 결합하려면, 원래 쿼리문에서의 SELECT문의 column 개수와 UNION뒤의 SELECT문의 column 개수가 같아야 한다. 따라서 원래 쿼리문이 몇 개의 column을 리턴하는지 알아야 한다. column 개수 알아내기 (1) union (2) order by (1) UNION 이용해서 알아내는 방법 1' union select 1# 을 입력한다. select 뒤에 상수 값을 주면 상수 그대로 출력하므로, 다음과 같은 화면이 나온다. 열 개수 다르다고 오류..

Web hacking/기법 2023.04.18

SQL injection_(2) WHERE문 우회

※ "화이트 해커를 위한 웹 해킹의 기술" 강의 및 책에 수록된 실습이다. ※ 허가 받지 않은 웹사이트에 해킹을 시도 하는 것은 불법. ※ dvwa 등 테스트 가능하게 만들어진 곳에서만 모의해킹을 해야한다. security level을 low로 한 뒤, SQL injection 탭으로 가서 ID 입력하는 곳에 1을 입력해봤다. ID가 1인 계정의 이름이 나온다. SQL 인젝션 공격에 취약한지 알아보는 가장 기본적인 방법은 '(작은따옴표)를 넣어보는 것이다. 작은따옴표를 입력했을 때, 취약한 페이지는 아래와 같이 SQL 에러가 뜬다. 다시 SQL 인젝션 페이지로 돌아가서 소스코드를 보면, $query 변수 설정에서, $id가 이미 작은따옴표들로 감싸져있다. 따라서 아까와 같이 작은 따옴표를 입력했을 때, ..

Web hacking/기법 2023.04.18

SQL injection_(1) 공격 개요

SQL injection 데이터베이스에 전송되는 SQL 쿼리문을 조작하여 데이터를 변조하거나 허가되지 않은 정보에 접근하는 공격 SQL 인젝션 공격의 기본적인 두 가지 유형을 살펴보자. 이제부터 소개할 모든 그림의 출처는 [화이트 해커를 위한 8가지 웹 해킹의 기술]이다. 1. WHERE문 우회 공격 다음과 같이 ID=1 을 입력하면 서버에서 SELECT name, email FROM users WHERE ID='1' 이라는 쿼리문이 실행된다고 하자.이에 데이터베이스에서 ID=1인 사용자정보를 웹api로 전달하고, 서버는 이 사용자정보를 클라이언트로 전달한다. 만약 해커가 ID=1' or '1'='1 을 입력한다고 하자. 그러면 SELECT name, email FROM users WHERE ID='1'..

Web hacking/기법 2023.04.18

파일 인클루전

파일 인클루전(file inclusion) 공격자가 악성 서버 스크립트를 서버에 전달하여 해당 페이지를 통해 악성 코드를 실행시키는 공격 주로 php 애플리케이션에서 발생한다. php의 include()를 이용해 파일을 직접 소스 코드에 삽입할 수 있기 때문이다. 삽입할 악성 서버 스크립트 파일의 위치가 로컬 서버에 위치하는지 원격지에 위치하는지에 따라 LFI(Local File Inclusion)와 RFI(Remote File Inclusion)로 나뉜다. LFI : 이미 시스템에 존재하는 파일을 인클루드 RFI : 외부에 있는 파일을 원격으로 인클루드하는 것으로, LFI보다 강력한 공격이다. 공격 개요 웹api는 file.php를 인클루드하고 있는데, 이 file.php가 웹요청에 의해 지정되고 있는..

Web hacking/기법 2023.04.03

CSRF(2)

이전 게시글에 이어서 dvwa high 단계부터 살펴보자. CSRF(1)CSRF(Cross Site Request Forgery. 사이트 간 요청 위조 공격) :서버 애플리케이션이 요청을 보내는 사용자가 사용자 본인이 맞는지 확인하지 않고 사용자의 브라우저에 저장된 세션이나 쿠키를 신뢰하는00yj.tistory.com high 단계 low단계나 midium단계에서 했던 공격이 통하질 않는다. 패스워드를 다시 subway로 바꾸고(패스워드 초기화했었음) 그 요청을 살펴보면,user_token 이라는 파라미터가 생겼다. user_token은 csrf_token이라고도 불리는데, csrf공격에 대응하기 위해 고안된 파라미터로 웹페이지를 요청할 때마다 토큰 값이 계속 바뀐다. intercept를 킨 후, csr..

Web hacking/기법 2023.03.23

CSRF(1)

CSRF(Cross Site Request Forgery. 사이트 간 요청 위조 공격) 서버 애플리케이션이 요청을 보내는 사용자가 사용자 본인이 맞는지 확인하지 않고 사용자의 브라우저에 저장된 세션이나 쿠키를 신뢰하는 것을 악용한 공격. CSRF는 2008년에 옥션에서 1080만명의 개인정보가 유출된 공격에 쓰인 기법 중 하나이다. CSRF에 대해서는 아래 블로그가 정리 잘 되어 있어 참고하기 좋다. DVWA 실습 #4 - CSRF DVWA의 세 번째 실습 대상인 CSRF다. 이 입력 폼은 비밀번호를 변경하는 시스템이며 이를 로그인한 사용자가 모르게 사용하여 비밀번호를 원하는 비밀번호로 변경하는 공격을 실습해볼 수 있다. CS haruhiism.tistory.com CSRF는 주로 패스워드를 변경하는 데..

Web hacking/기법 2023.03.23