웹사이트를 보호하는 WAF를 찾는 방법은 무엇입니까?
게시 됨: 2021-10-11공격자는 핑거프린팅을 시작하기 전에 네트워크에서 일반적으로 WAF가 사용되는 위치를 아는 것이 좋습니다.
침투 테스터는 공격 결과가 영향을 받을 수 있으므로 웹 애플리케이션 참여를 시작하기 전에 WAF를 알고 있어야 합니다.
하지만 그 전에…
WAF는 무엇입니까?
WAF(Web Application Firewall)는 웹사이트 보안에서 중요한 역할을 합니다. 트래픽을 필터링하고 모니터링합니다. 웹 응용 프로그램 방화벽은 주요 결함에 대한 보호 기능을 제공합니다. 많은 조직에서 웹 애플리케이션 방화벽을 포함하도록 인프라를 현대화하고 있습니다. 윤리적 해킹 전문가에 따르면 웹 애플리케이션 방화벽은 자체적으로 보안 문제를 해결할 수 없습니다. 외부 위협을 인식하고 차단하려면 적절한 구성이 필요합니다.
WAF는 특정 온라인 애플리케이션의 콘텐츠를 필터링할 수 있다는 점에서 기존 방화벽과 다른 반면 기존 방화벽은 서버 간의 안전 장벽 역할을 합니다.

HTTP 상호 작용에는 일련의 규칙이 적용됩니다. 이러한 규칙은 일반적으로 교차 사이트 스크립팅 및 SQL 삽입과 같은 일반적인 취약점을 해결합니다.
인터넷에는 웹 애플리케이션 뒤에 있는 방화벽을 발견할 수 있는 많은 무료 오픈 소스 도구가 있습니다.
그리고 이 기사에서는 WAF를 발견하는 데 사용할 수 있는 접근 방식과 도구를 살펴보겠습니다.
참고: 이 튜토리얼에서는 세부 사항을 열거하기 위해 내 사이트를 사용했습니다. 소유자의 사전 동의 없이 웹사이트에서 스캔 또는 기타 해킹 활동을 수행하지 마십시오.
수동 검색
TELNET을 사용하여 감지
Telnet은 주로 네트워크 관리자와 침투 테스터가 사용합니다. 텔넷을 사용하면 앞에서 설명한 대로 모든 포트를 통해 원격 호스트에 연결할 수 있습니다.
- HTTP 매개변수는 웹 애플리케이션 방화벽에 의해 응답 헤더에 남겨지거나 삽입되는 경우가 많습니다.
- 텔넷을 이용하여 핑거프린팅에 사용되는 서버, 쿠키 등 기본적인 수집 정보를 얻을 수 있습니다.
-
Telnet Targetwebsite.com 80입력
[email protected]: # telnet Targetwebsite.com 80 Trying 18.166.248.208... Connected to Targetwebsite.com. Escape character is '^]'. 위 명령어 실행 후 HEAD / HTTP / 1.1 하고 엔터키를 누릅니다.
[email protected]: # telnet 18.166.248.208 80 Trying 18.166.248.208... Connected to 18.166.248.208. Escape character is '^]'. HEAD / HTTP/1.1 Host: 18.166.248.208 HTTP/1.1 200 OK Date: SUN, 10 Oct 2021 05:08:03 IST Server: Apache X-Powered-By: PHP/5.3.5 ZendServer/5.0 Set-Cookie: SESSIONID VULN SITE=t25put8gliicvqf62u3ctgjm21; path=/ Expires: Thu, 19 Nov 1981 08:52:00 IST Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache X-Varnish: 4723782781 Age: 0 Via: 1.1 varnish Connection: close Content-Type: text/html Connection closed by foreign host.웹 사이트가 호스팅되는 서버와 대상 포트 80에서 텔넷을 사용한 후 생성된 백엔드 언어를 나타냅니다.
일부 WAF 시스템은 헤더 수정을 허용하며 웹 서버가 표준과 다른 HTTP 응답을 보내도록 할 수도 있습니다.
위의 결과에서 보듯이 웹서버는 우리의 요청에 응답하여 방화벽/에지 게이트웨이가 Varnish임을 밝혀냈습니다.
자동 검색
#1. NMAP을 사용하여 감지
웹 애플리케이션 방화벽을 식별할 수 있는 스크립트가 있는 Nmap도 이 용도로 사용할 수 있습니다.
- Nmap은 많은 침투 테스터와 네트워크 관리자가 일반적으로 사용하는 보안 평가 도구입니다.
- Nmap은 대상에 대한 정보를 얻는 데 사용됩니다.
- 스크립트가 이전과 동일한 웹페이지에 대해 실행되었습니다.
-
nmap –script=http-waf-fingerprint targetweb.com명령을 입력합니다.
[email protected]:# nmap --script=http-waf-fingerprint targetwebsite.com Starting Nmap 7.90 ( https://nmap.org ) at 2021-10-10 07:58 IST Nmap scan report for targetsite.com (18.166.248.208) Host is up (0.24s latency). Not shown: 982filtered ports PORT STATE SERVICE 53/tcp open domain 80/tcp open http | http-waf-fingerprint: | Detected WAF | Citrix Netscaler 443/tcp open https 5432/tcp closed postgresql 8080/tcp closed http-proxy Nmap done: 1 IP address (1 host up) scanned in 25.46 seconds위의 Nmap 명령을 사용한 후 Citrix Netscaler 방화벽이 감지되었습니다.
#2. Whatwaf를 사용하여 감지
Whatwaf는 웹 앱의 지문을 만들고 WAF의 존재를 감지하기 위한 보안 도구입니다. 이 도구는 보안 평가 중에 웹 애플리케이션이 WAF에 의해 보호되는지 여부를 판별하는 데 유용합니다.
이 경우 우회 및 회피 전략이 온라인 응용 프로그램을 추가로 테스트하거나 활용하는 데 도움이 될 수 있습니다.
방화벽 우회, 응용 프로그램 감지, 응용 프로그램 지문 및 소프트웨어 식별은 모두 WhatWaf에서 자주 사용됩니다. 회로망
펜 테스터와 보안 전문가는 이 프로그램의 의도된 사용자입니다.
WhatWaf를 설치하는 방법?
Kali-Linux에 설치
sudo apt install python3-pip git clone https://github.com/ekultek/whatwaf cd whatwaf sudo pip3 install -r requirements.txt실행 시 Python 버전 없이 실행 파일을 쉽게 지정할 수 있습니다.
./whatwaf --help
그러나 Python 2 종속성을 설치하지 않았으므로 Python 버전을 구체적으로 제공하는 것이 좋습니다.
python3 ./whatwaf --help도구 사용
Whatwaf 방화벽 탐지 도구는 사용하기 쉽습니다! 다음 명령을 실행하기만 하면 됩니다.
./whatwaf -u https://www.targetsite.com아래에서 볼 수 있듯이 이 도구는 제공된 웹사이트 URL에 대한 방화벽을 감지했습니다.
알림! – 스캔을 위해 자체 사이트를 사용했습니다.
┌──(rootkali)-[/home/writer/WhatWaf] └─# ./whatwaf -u https://www.renjith.org ,------. ' .--. ' ,--. .--. ,--. .--.| | | | | | | | | | | |'--' | | | | | | | | | | __. | | |.'.| | | |.'.| | | .' | | | | |___| | ,'. |hat| ,'. |af .---. '--' '--' '--' '--' '---' /><script>alert("WhatWaf?<|>v2.0.3($dev)");</script>%00 [11:12:34][ERROR] you must install psutil first `pip install psutil` to start mining XMR [11:12:34][INFO] checking for updates [11:12:34][WARN] it is highly advised to use a proxy when using WhatWaf. do so by passing the proxy flag (IE `--proxy http://127.0.0.1:9050`) or by passing the Tor flag (IE `--tor`) [11:12:34][INFO] using User-Agent 'whatwaf/2.0.3 (Language=2.7.18; Platform=Linux)' [11:12:34][INFO] using default payloads [11:12:34][INFO] testing connection to target URL before starting attack [11:12:35][SUCCESS] connection succeeded, continuing [11:12:35][INFO] running single web application 'https://www.renjith.org' [11:12:35][WARN] URL does not appear to have a query (parameter), this may interfere with the detection results [11:12:35][INFO] request type: GET [11:12:35][INFO] gathering HTTP responses [11:12:42][INFO] gathering normal response to compare against [11:12:42][INFO] loading firewall detection scripts [11:12:42][INFO] running firewall detection checks [11:12:44][FIREWALL] detected website protection identified as 'Apache Generic' [11:12:44][INFO] starting bypass analysis [11:12:44][INFO] loading payload tampering scripts [11:12:45][INFO] running tampering bypass checks [11:19:09][SUCCESS] apparent working tampers for target: ------------------------------ (#1) description: tamper payload by changing characters into a wildcard example: '/bin/cat /et?/?asswd' load path: content.tampers.randomwildcard ------------------------------위의 결과에서 보듯이 웹서버는 우리의 요청에 응답했고 방화벽이 Apache임을 밝혀냈습니다. tor 서비스를 사용하여 WAF를 스캔할 수도 있지만 대기 시간이 늘어날 수 있습니다.

./whatwaf -u https://www.targetsite.com --torWhatwaf 도구의 주요 장점은 공개된 방화벽을 우회하도록 페이로드를 자동으로 제공하려고 한다는 것입니다.
#삼. Wafw00f를 사용하여 감지
웹 애플리케이션 방화벽을 탐지하는 가장 잘 알려진 도구는 Wafw00f입니다. Wafw00f는 HTTP 요청을 웹 애플리케이션 방화벽으로 보내 식별합니다. HTTP 요청 전송이 실패하면 wafw00f는 악성 HTTP 요청을 합니다. 악의적인 HTTP 요청이 실패하면 wafw00f는 이전 HTTP 요청을 검사하고 간단한 알고리즘을 사용하여 웹 애플리케이션 방화벽이 우리의 공격에 반응하는지 확인합니다.
Wafw00f는 Kali Linux 배포판에 사전 설치되어 있지 않습니다.
Wafw00f를 설치하는 방법?
zip 패키지는 공식 GitHub 소스에서 다운로드할 수 있습니다.
Wafwoof 도구를 다운로드합니다. git 클라이언트를 사용하여 저장소를 복제할 수도 있습니다. 패키지를 가져오려면 다음 명령을 실행합니다.
$ git clone https://github.com/EnableSecurity/wafw00f.git시스템에서 wafw00f 도구를 다운로드하려면 wafw00f 폴더 또는 디렉터리로 이동하여 다음 명령을 수행합니다.
$ python setup.py install설정 파일이 처리되고 시스템에 wafw00f가 설치됩니다.
도구 사용
이 도구를 사용하려면 이 명령을 실행하십시오.
$ wafw00f <url>알림 – 테스트가 허용된 웹사이트만 스캔하십시오.
┌──(rootkali)-[/home/writer/wafw00f] └─# wafw00f https://webhashes.com ______ / \ ( Woof! ) \ ____/ ) ,, ) (_ .-. - _______ ( |__| ()``; |==|_______) .)|__| / (' /|\ ( |__| ( / ) / | \ . |__| \(_)_)) / | \ |__| ~ WAFW00F : v2.1.0 ~ The Web Application Firewall Fingerprinting Toolkit [*] Checking https://whatismyip.com [+] The site https://whatismyip.com is behind Cloudflare (Cloudflare Inc.) WAF. [~] Number of requests : 2죄송합니다. 방화벽이 감지되었습니다!
토론 목적으로 다른 대상 웹사이트를 시도할 것입니다.
┌──(rootkali)-[/home/writer/wafw00f] └─# wafw00f https://renjith.org ______ / \ ( Woof! ) \ ____/ ) ,, ) (_ .-. - _______ ( |__| ()``; |==|_______) .)|__| / (' /|\ ( |__| ( / ) / | \ . |__| \(_)_)) / | \ |__| ~ WAFW00F : v2.1.0 ~ The Web Application Firewall Fingerprinting Toolkit [*] Checking https://renjith.org [+] Generic Detection results: [-] No WAF detected by the generic detection [~] Number of requests: 7이번에는 방화벽이 감지되지 않았습니다.
그리고 Verbose 모드에서 사용하려면 다음 명령을 실행하십시오.
wafw00f <url> -v이 명령을 실행하여 이 유틸리티의 몇 가지 추가 기능을 볼 수 있습니다.
wafw00f <url> --help마무리
이 기사에서는 웹 애플리케이션 방화벽을 감지하기 위한 다양한 전략과 도구를 살펴보았습니다. 이것은 모든 웹 애플리케이션 침투 테스트의 정보 수집 단계에서 수행되어야 하는 중요한 활동입니다.
또한 WAF가 제자리에 있다는 것을 알면 침투 테스터가 다양한 접근 방식을 시도하여 방어를 우회하고 온라인 애플리케이션의 모든 구멍을 이용할 수 있습니다.
윤리적 해킹 연구원에 따르면 웹 애플리케이션 방화벽(WAF)의 필요성이 점점 더 커지고 있습니다. 백엔드 웹 애플리케이션 서버에서 발생하는 새로운 공격을 탐지하기 위해 웹 애플리케이션 로그를 분석하는 것은 항상 중요합니다. 이를 통해 웹 애플리케이션 방화벽의 규칙을 사용자 정의하여 최고 수준의 보호를 제공할 수 있습니다.
다음도 읽을 수 있습니다. Nikto Scanner를 사용한 취약점.
