1. Burp Suite란?
- Local Proxy도구
- 외부로 전송하기 전에 수정이 필요하다면 여기서 수정한 후 전송 가능
- https://portswigger.net/burp
Burp Suite - Application Security Testing Software
Get Burp Suite. The class-leading vulnerability scanning, penetration testing, and web app security platform. Try for free today.
portswigger.net
Bufp Suite를 사용하기 전 구글링을 통해 자신의 운영체제에 맞는 Proxy 설정을 해야한다.
2. DVWA에 사진 및 웹 셸 업로드
웹 셸을 업로드하기에 앞서 간단한 사진업로드를 해보자.

우선 환경은 이렇다.
이미지 파일을 업로드 할 수 있는 칸이 있다.
1. Low Level

70kb인 고양이 사진은 잘 올라간다.
여기서 메세지를 통해 업로드 위치를 확인할 수 있다.
../ 를 통해 두 경로 올라가고 다시 hackable/upload로 내려오면 된다. 따라서
http://IP Address/dvwa/hackable/uploads/
이곳으로 이동해보자.

정확하다. kitty도 잘 업로드 된 것을 볼 수 있다.

하지만 100kb가 넘는 살바도르 달리 초상화는 올라가지 않는다.
Burp Suite를 사용해 넘어가는 정보를 캐치해보자.


최대 파이 사이즈가 100kbytes이다.
0을 붙여 사이즈를 늘려준 후 Forward를 눌러보자

잘 올라간다.
사실 용량 제한을 클라이언트에서 체크하고 있으므로 개발자모드(F12)를 통해 변환할 수도 있다.

셸도 잘 올라간다.
2. Medium Level
페이지 소스를 보자.

이번에도 파일 사이즈를 확인하고 있으며
업로드 타입이 꼭 image/jpeg 혹은 image/png여야 한다고 한다.
Burp Suite를 이용해서 Proxy Raw Data를 확인하자.

마찬가지로 MaxFileSize를 바꿔주고 Content-Type을 image/jpeg로 바꿔서 보내자.

잘된다.
3. High Level
이번에도 페이지 소스를 보자.

이번엔 확장자 자체가 strlower 함수로 소문자 jpg, jpeg, png여야 한다.
그럼 확장자를 바꿔서 .png 파일로 업로드해보자.

단순히 확장자를 바꾼 것만으로는 업로드 되지 않는다.
그렇다면 Uploaded_ext 함수는 파일의 파일시그니처까지
확인한다고 유추할 수 있다.
HexEditor를 활용해 png 파일의 시그니처 ( 89 50 4E 47 0D 0A 1A 0A )
총 8bytes를 추가하고 업로드해보자.

업로드에는 성공했다.
하지만 png파일이므로 실행이 되지 않는다. 어떤 방법이 있을까?
php 자체를 업로드할 수는 없으므로 다른 방법을 찾아봐야한다.
DVWA 목록의 Command injection에 들어가서 mv 명령어를 통해 확장자를 바꿔버리면 된다.
IP Address | mv ../../hackable/uploads/b374k12.png ../../hackable/uploads/b374k12.php
위 명령어는 Command Injection Midium Level에서 진행했다.


업로드에 성공했고 셸도 정상적으로 작동한다.
3. 문제점
웹 셸을 이용해서 /etc/shadow는 읽을 수 없다. 왜 그럴까?
- 웹서버(apache2)를 실행할 때 www-data라는 일반 사용자 계정을 실행했기 때문
- 공격자는 공격에 성공해도 www-data의 권한을 가지게 됨
- 만일, root 권한으로 웹서버(apache2)를 실행하면 공격자가 공격에 성공했을 때
- root 권한을 갖게 되므로 매우 위험해짐.
'정보보안 > WebHacking' 카테고리의 다른 글
| [정보보안][웹해킹] Reflected, Stored XSS(Cross-site Scripting)과 SecureCoding (0) | 2023.07.29 |
|---|---|
| [정보보안][웹해킹] DVWA를 통한 Blind SQL Injection (0) | 2023.07.29 |
| [정보보안][웹해킹] DVWA를 통한 SQL Injection (0) | 2023.07.25 |
| [정보보안][웹해킹] 인터넷의 시작과 Web의 기초, HTML (0) | 2023.07.25 |