본문 바로가기
웹/비박스

서버 측 요청 변조

by SH_L 2022. 7. 31.
반응형

[서버 측 요청 변조의 정의]

 

 

서버 측 요청 변조는 공격자가 요청을 변조하여 취약한 서버가 내부 망에 악의적인 요청을 보내게 하는 취약점이다. 서버 측 요청 변조에는 여러 유형이 있는데, 첫 번째는 RFI를 사용하여 포트를 스캔하는 것이고 두 번째는 XXE를 사용하여 내부 망 자원에 접근하며, 세 번째는 XXE를 통하여 스마트 TV를 해킹한다.

 

 

 

[RFI를 이용한 내부 네트워크 호스트의 포트 스캔]

 

SSRF 유형 중 RFI로 비박스 서버의 포트를 스캐닝하는 방법으로, RFI 취약점이 존재하는 rlfi.php 페이지에 접속한다.

 

 

RFI에 사용할 PHP 코드는 비박스 가상 환경에서 /var/www/evil 디렉토리에 존재한다.

 

 

ssrf-1.txt는 포트 스캐닝 후 결과를 출력하는 PHP 코드로, 스캔하는 포트를 배열로 선언하여 주로 사용하는 9개 포트가 열려 있는지 확인한다. ssrf-1.txt 첫 줄에서 echo 명령어에 입력한 스크립트문을 호출하기에 PHP 코드가 실행되면 "U 4r3 0wn3d by MME!!!"라는 내용이 스크립트가 출력된다.

 

 

URL에 소켓을 열기 위하여 IP 변수를 추가하고, 포트를 스캐닝할 웹 서버의 IP 주소를 입력한다. 그 다음 language 변수에 ssrf-1.txt가 있는 경로를 입력한다.

 

최종적으로 "http://192.168.70.129/bWAPP/rlfi.php?ip=192.168.70.129&language=http://192.168.70.129/evil/ssrf-1.txt
"를 입력한다.

 

 

코드가 실행되면 "U 4r3 0wn3d by MME!!!" 메시지가 출력된다.

 

 

경고창에 있는 확인 버튼을 클릭하면 포트 스캐닝 결과가 나온다. 포트 스캐닝 결과 총 5개의 포트가 열려 있다.

 

 

 

[XXE를 이용한 내부 네트워크 자원 접근]

 

SSRF의 공격으로 XML의 외부 엔티티를 사용하여 네트워크에 있는 자원에 접근하는 방법이 있다. XML 문서는 엔티티라는 저장 단위로 구성되어 있는데, 외부 엔티티를 선언하면 다른 파일의 텍스트를 가져올 수 있다.

 

 

먼저 XML로 비밀번호 힌트를 초기화하는 sqli_8-1.php 페이지에 접속한다.

 

그 다음 비밀번호 힌트를 초기화하는 "Any Bugs?" 버튼을 클릭하여 버프 스위트로 연결 요청을 가로챈다. sqli_8-2.php 페이지를 요청하는 세션을 Repeater로 보낸다. sqli_8-2.php 페이지는 비밀번호를 초기화하기 위하여 변수를 받는 용도이다.

 

 

Repeater에서 XML 형식으로 선언된 변수 위에 XML 코드를 추가하여 강제로 외부 엔티티를 사용한다.

 

 

XML 문서 선언을 위하여 DTD를 사용하는데, DTD 내부에 엔티티를 선언한다. 'bWAPP'이라는 이름의 엔티티는 비박스에 있는 'heroes.xml' 파일을 'php://filter/read=convert.base64-encode/resource=' 필터를 통하여 Base64로 인코딩한 결과를 출력한다. 엔티티 선언 후에는 선언한 엔티티를 참조하기 위하여 'bWAPP;'를 변수에 입력한다.

 

 

해당 코드는 ssrf.php 페이지에서 Access 하이퍼링크를 클릭하면 확인할 수 있다.

 

 

"Send" 버튼을 클릭한 다음 Response 탭으로 들어가면 XML 엔티티를 추가한 요청에 대한 응답 값을 확인할 수 있다. 응답 값에는 Base64로 인코딩된 내용이 보인다.

 

 

오른쪽 마우스 버튼을 클릭하여 "show response in browser" 메뉴를 선택한다. 그 다음 메시지 박스의 URL를 복사하여 웹 브라우저에 입력하면 Base64로 인코딩된 내용을 확인할 수 있다.

 

 

페이지에서 인코딩 값을 모두 복사하여 Base64 디코딩 사이트에서 'heroes.xml' 파일의 원문을 알아낸다. 디코딩 결과 'heroes.xml' 파일은 'superhero' 그룹 사용자의 계정 정보를 저장한 파일임을 알 수 있다.

 

반응형

' > 비박스' 카테고리의 다른 글

비밀번호 변경 & 비밀번호 힌트 변경  (0) 2022.07.31
반사된 XSS 취약점  (0) 2022.07.31
세션 관리 취약점  (0) 2022.07.17
Blind SQL Injection - Time Based  (0) 2022.07.07
Blind SQL Injection - Boolean Based  (0) 2022.07.05