본문 바로가기

웹해킹

(116)
DVWA JavaScript(low) 롸업 success라는 글자를 입력하라는 창이 있다. 하지만 입력을 하면 Invalid token이라고 뜬다. 구성 코드이다. phrase를 rot13과 md5로 인코딩해서 토큰을 만든다. 개발자 도구로 살펴보니 hidden으로 토큰이 전달되고 있다. success를 rot13과 md5로 인코딩해서 토큰으로 만들고 웹페이지 코드에 넣으면 invalid token이 안뜰거 같다. 생성한 38581812b435834ebf84ebcc2c6424d6를 token에 붙여넣고 success를 submit하면 이렇게 Well done!이라고 뜬다.
DVWA CSP Bypass(low) 롸업 url을 입력해서 CSP를 조사하라는 창이 있다.
DVWA XSS(Stored)(low) 롸업 게시글을 올릴 수 있는 창이 있다. sign guestbook으로 올리면 아래에 name과 message가 뜨고, clear guestbook을 누르면 올렸던 글들이 모두 사라진다.
DVWA XSS(Reflected)(low) 롸업 이름을 입력하는 창이 있다. 구성 코드이다. 이름을 입력하면 Hello 이름이 출력되고 링크에도 포함된다. 코드를 보면 태그 안에 변수를 가져와서 넣기 때문에 script 태그를 활용할 수 있을 거 같다. 이렇게 입력을 해서 쿠키를 얻을 수 있다. 이렇게 url에 script 태그를 삽입해서 얻을 수도 있다.
DVWA XSS(DOM)(low) 롸업 언어를 선택할 수 있는 창이 있다. 소스 코드는 이런 식으로 되어있다. 보호 기능이 없다. 언어를 선택해서 누르면 이런 식으로 url 링크에 포함된다. 링크를 조작하면 웹페이지도 바뀐다. 링크에 를 삽입해서 쿠키를 얻어올 수 있다.
DVWA Weak Session IDs(low) 롸업 버튼을 클릭하면 새로운 쿠키를 발급해주는 시스템이다. 구성 코드이다. POST 요청을 보낼 때마다 SESSION['last_session_id']를 1씩 증가시키고 cookie_value를 SESSION['last_session_id']로 설정한다. 그리고 dvwaSession이라는 이름으로 값을 cookie_value로 설정한다. 클릭을 할 때마다 dvwaSession이라는 쿠키의 Value가 1씩 증가하는 것을 확인할 수 있다. 이런 식으로 세션아이디를 마음대로 바꿀 수 있어서 1씩 증가하는 정수로 세션아이디를 만들면 다른 사용자의 세션아이디를 쉽게 사용할 수 있다. 공격을 진행하는 문제는 아닌거 같고 세션아이디를 원하는 대로 조작할 수 있는 취약점을 발견하는 문제인 것 같다.
DVWA Blind SQL Injection(low) 롸업 창은 이전의 SQL Injection 문제와 동일하다. Blind SQL Injection은 SQL 쿼리의 참, 거짓으로만 DB 구조를 파악해서 공격하는 기법이다. 'or 1=1# 이렇게 넣으면 참이 반환되고 'or 1=2# 이렇게 넣으면 거짓이 반환된다. 우선 데이터베이스를 구성하면 column의 개수를 알아내기 위해서 union select 구문을 사용할 것이다. union은 두 개의 구문의 결과를 합쳐서 반환해준다. 각 SELECT문은 동일한 column 개수를 가져야 하기 때문에 column 개수를 찾을 수 있다. 이렇게 select에 column을 하나만 넣으면 에러가 발생하고 두 개를 넣으면 참이 반환된다. column 개수는 2개임을 찾았다. 이제 데이터베이스 이름을 찾는다. 1' and l..
DVWA SQL Injection(low) 롸업 userid를 입력할 수 있는 창이 있다.