본문 바로가기
728x90

Web/DVWA 실습7

DVWA - SQL Injection (low,medium) 실습 SQL Injection 사용자 입력이 서버측에서 실행되는 SQL 쿼리에 삽입되어 사용자의 의도와는 다른 동작이 수행 되게하는 취약점이다. low level 2022. 10. 30.
DVWA - Insecure CAPTCHA (low,medium) 실습 CAPTCHA 현재 서비스를 사용하고 있는 주체가 사람인지 컴퓨터 프로그램인지 구분하기 위한 프로그램으로 평소 우리가 로그인이나 인증을 할때 볼 수 있으며 brute force 방지 , 추가인증 등의 용도로 쓰이고 있다. low level 먼저 변경할 비밀번호를 입력후 CAPTCHA인증을 한 다음 change 버튼을 눌러보자 버프스위트로 요청을 확인해본 결과 step = 1 이라는 파라미터가 눈에 띈다. 우리는 비밀번호만 입력했지 step이라는 입력값은 입력한적이 없기 때문에 개발자가 hidden값으로 넣어 놓은것 같다. 아직 step의 의미를 잘 모르므로 계속 진행해보자. CAPTCHA를 통과했다는 문구와 변경을 확정짓는 버튼이 나왔다. 변경 확정 버튼을 누른후 요청을 확인해 보면 step = 2로 바.. 2022. 10. 30.
DVWA - File Upload (low,medium) 실습 File Upload 모두가 한번씩은 사용해본 파일 업로드 기능을 이용한 공격으로 업로드 되는 파일들을 필터링 하지 않거나 업로드된 파일을 사용자가 직접 접근하여 실행시킬 경우 일어날 수 있다. low level .low 레벨에서는 아무런 필터링을 거치지 않고 파일을 업로드 할 수 있다. test.txt 파일을 만든후 업로드하면 저장 경로와 함께 업로드 메세지가 출력된다. 업로드 된것을 확인하고 저장된 파일에 접근해 본다. 업로드된 경로를 알 수 있으므로 http://127.0.0.1/DVWA-master/hackable/uploads/test.txt 로 이동하면 파일을 읽을수 있다. 이처럼 단순 텍스트 파일이기떄문에 출력으로 끝났지만 다른 php파일이나 실행 파일이 업로드 될 경우 피해는 커지게 된다... 2022. 10. 30.
DVWA - File Inclusion (low,medium) 실습 File Inclusion 웹 브라우저를 통해 서버에 파일을 포함시키는 과정으로 include할 페이지 경로가 적절히 필터링 되지 않고 디렉토리 변경 명령어들의 삽입을 허용했을 때 일어난다. low level 요청을 확인해봣을때 아무런 필터링도 거치지 않고 파일 이름을 파라미터로 받아서 include 하는 것을 알 수 있다. url에서 파일명만 변경되는것을 확인하고 file4를 입력해봤더니 숨겨진 파일이 나왔다. 이제 목적에서 요구하는 "../hackable/flags/fi.php"를 include 해보자. 5개의 인용문중 3개가 확인되었다. 소스코드를 직접 읽어봐야 숨겨진 인용문을 확인할 수 있을 것이다. php Wrapper의 PHP Filter를 사용해보자. php://filter/convert.b.. 2022. 10. 30.
DVWA - CSRF(low,medium) 실습 CSRF Cross-Site Request Forgery의 약자로 사이트 간 요청 위조 공격으로 사용자가 자신의 의지와는 무관하게 공격자가 원하는 행위를 수행한다. 사이트간 요청 위조는 특정 웹사이트가 사용자의 웹 브라우저를 신용하는 상태를 노린 것이다. low level 우선 비밀번호를 123으로 변경해보겠다. 요청을 보면 GET형식으로 새로운 비밀번호와 확인 문자열이 노출되는 것을 알 수 있다. 이는 CSRF에 취약하다는것을 의미하며 이것을 통해 url로 배포하는 작업을 해보면 csrf 폴더의 index.php파일안에 a태그를 이용하여 url을 집어 넣었다. "클릭하면 아이패드 공짜!" 클릭할 시 비밀번호가 바뀌는것을 알 수 있다. medium level medium 레벨에서는 마지막으로 요청된 페이.. 2022. 10. 30.
DVWA - Command Injection(low,medium) 실습 Command Injection 사용자가 취약한 웹사이트의 입력폼이나 기타 방법을 통해 서버에 직접적,간접적으로 명령어를 전송하여 실행 시키는 공격 방법이다. low level low 단계에서는 필터링 없이 그대로 shell_exec() 함수에 전달하여 ping 명령어를 실행하고 있다. 사용자 입력을 기반으로 시스템 함수를 사용하고, 입력에 대한 필터링이 없기 때문에 &&, ;, | 등을 사용하여 여러 개의 명령어를 연속으로 실행시킬 수 있다. 127.0.0.1 && dir && ipconfig 간단한 명령어 입력으로 디렉토리 경로, 파일명 ,IP정보를 알 수 있다. Medium level Medium 단계에서는 "&&"과 ";"만 필터링 되고 있다. 다른 문자들을 이용하여 공격에 성공할수 있다. 2022. 10. 30.
DVWA-Brute Force(low, medium) 실습 Brute Force 란? 비밀번호를 조합하거나 사전 파일에 들어있는 문자들을 각각 대입하여 공격하는 방식으로 가능한 모든 문자를 조합하여 공격하므로 비밀번호의 자릿수가 늘어 날 수록 시간이 기하급수적으로 늘어난다. low level 먼저 아이디/비밀번호를 123으로 입력하여 로그인을 해보자 단순 아이디와 비밀번호가 틀렸다는 문구만 출력되고 아무런 조치가 없는 것을 보아 brute force공격에 취약한것을 알 수 있다. 버프스위트로 요청을 확인해 봤을때 아이디/비밀번호가 POST방식이 아닌 GET방식으로 전송 되는것을 알 수 있다. 이로 인해 아이디/비밀번호가 노출되어 변경하여 요청을 보내면 공격 할 수 있다. 버프스위트 intruder 기능을 통해 position에서 아이디/비밀번호를 설정해주고 공격.. 2022. 10. 30.
728x90