#273
1. 개요
1) 문제명 : HTML Injection - Reflected(GET)
2) 난이도 : low
3) 관련 개념 : HTML, WEB, PHP, Injection 공격
*Injection 공격이란?
공격자가 프로그램 또는 시스템에 임의의 코드나 데이터를 삽입하여 원하지 않는 동작을 유발하는 것
4) 문제 : HTML 코드를 Injection하여 원하는 데이터 출력
2. 서비스 확인
먼저 기본적인 서비스를 확인해보도록 하겠습니다.
기본적인 서비스는 이름을 입력하고 출력하는 서비스입니다.
3. 소스 코드 확인
1) 난이도 설정
문제를 푸는데 있어 난이도를 설정하는 부분입니다.
난이도에 따라 입력값을 검증하는게 다른 것으로 보이는데요.
일단 저희는 low(0)레벨이기 때문에 별도로 입력값을 검증하지 않습니다.
2) 서비스 코드
실제 메인 서비스에 해당되는 코드입니다.
firstname과 lastname을 입력 받아 데이터가 있을경우 데이터를 검증(htmli)하여 출력하는 서비스입니다.
4. 문제풀이
서비스와 소스코드를 확인한 결과 low레벨의 경우 별도로 입력값을 체크하지 않는다는 것을 확인할 수 있습니다.
문제가 되는 소스를 삽입할 수 있지만 저는 HTML코드를 삽입하여 취약한지 안한지 확인해보도록 하겠습니다.
마침 웹에 벌 이미지가 있더라구요.
이미지를 삽입하여 출력해보겠습니다.
그리고 GET 요청이다보니 입력한 값들이 URL에 표시되는 것을 보실 수 있습니다.
만약 실제 서비스 중에서 사용자 정보를 입력하는 부분에 입력값이 검증되지 않는다면, 악성 스크립트를 삽입할 수 있겠죠?
5. 웹 로그 확인
그렇다면 이렇게 공격을 시도했을때 과연 웹 서버에는 어떻게 로그가 남아있는지 확인해보도록 하겠습니다.
- 웹 로그경로 : /var/log/apache2/access.log
1) 접근 IP : 192.168.128.141
2) HTTP METHOD : GET
3) 응답 : 200
4) 요청 URL : /bWAPP/htmli_get.php?firstname=<img src="./images/bee_1.png">&lastname=<img src="./images/blogger.png">&form=submit
이미지가 삽입되어 공격이 성공한 것을 알 수 있었으나 웹 로그를 확인하였을때도 정상적인 응답(200)을 하였기 때문에 공격이 성공한 것을 확인할 수 있습니다.
'컴소니 > 보안' 카테고리의 다른 글
[비박스(bWAPP)] low-A1-Injection HTML Injection -Reflected(URL) (0) | 2024.01.19 |
---|---|
[비박스(bWAPP)] low-A1-Injection HTML Injection -Reflected(POST) (0) | 2024.01.19 |
[비박스(bWAPP)] Kali 리눅스에서 비박스 접속하기 (0) | 2024.01.15 |
[비박스(bWAPP)] 웹 취약점 예제 프로그램 설치하기 (1) | 2024.01.11 |
[CyberChef] Base64, URL 인코딩/디코딩 및 간단한 암/복호화를 제공하는 서비스 (1) | 2024.01.10 |
댓글