วิธีค้นหา WAF ที่ปกป้องเว็บไซต์
เผยแพร่แล้ว: 2021-10-11เป็นความคิดที่ดีเสมอที่ผู้โจมตีจะทราบว่า WAF มักใช้ที่ไหนในเครือข่ายก่อนที่จะเริ่มพิมพ์ลายนิ้วมือ
ผู้ทดสอบการเจาะข้อมูลต้องทราบ WAF ก่อนเริ่มการมีส่วนร่วมกับเว็บแอปพลิเคชัน เนื่องจากผลการจู่โจมของพวกเขาอาจได้รับผลกระทบ
แต่ก่อนหน้านั้น…
WAF คืออะไร?
WAF (Web Application Firewall ) มีบทบาทสำคัญในการรักษาความปลอดภัยของเว็บไซต์ พวกเขากรองและตรวจสอบการจราจร Web Application Firewalls ให้การป้องกันข้อบกพร่องที่สำคัญ หลายองค์กรกำลังปรับปรุงโครงสร้างพื้นฐานของตนให้ทันสมัยเพื่อรวมไฟร์วอลล์ของเว็บแอปพลิเคชัน ผู้เชี่ยวชาญด้านการแฮ็กข้อมูลตามหลักจริยธรรม ไฟร์วอลล์ของเว็บแอปพลิเคชันไม่สามารถแก้ไขปัญหาด้านความปลอดภัยได้ด้วยตนเอง จำเป็นต้องมีการกำหนดค่าที่เพียงพอเพื่อรับรู้และป้องกันภัยคุกคามภายนอก
WAF แตกต่างจากไฟร์วอลล์แบบเดิมตรงที่อาจกรองเนื้อหาของแอปพลิเคชันออนไลน์บางตัว ในขณะที่ไฟร์วอลล์แบบเดิมทำหน้าที่เป็นอุปสรรคด้านความปลอดภัยระหว่างเซิร์ฟเวอร์

การโต้ตอบ HTTP อยู่ภายใต้ชุดของกฎ กฎเหล่านี้จัดการกับช่องโหว่ทั่วไป เช่น การเขียนสคริปต์ข้ามไซต์และการฉีด SQL โดยทั่วไป
มีเครื่องมือโอเพนซอร์ซฟรีมากมายบนอินเทอร์เน็ตที่สามารถค้นพบไฟร์วอลล์ที่อยู่เบื้องหลังเว็บแอปพลิเคชัน
และในบทความนี้ เราจะมาดูแนวทางและเครื่องมือที่สามารถใช้ในการค้นหา WAF ได้
โปรดทราบ: ในบทช่วยสอนนี้ ฉันได้ใช้ไซต์ของตัวเองเพื่อแจกแจงรายละเอียด อย่าทำการสแกนหรือกิจกรรมการแฮ็กอื่น ๆ บนเว็บไซต์ใด ๆ โดยไม่ได้รับอนุญาตล่วงหน้าจากเจ้าของ
การค้นพบด้วยตนเอง
การตรวจจับโดยใช้ TELNET
ผู้ดูแลระบบเครือข่ายและผู้ทดสอบการเจาะระบบใช้ Telnet เป็นหลัก Telnet ช่วยให้คุณสามารถเชื่อมต่อกับโฮสต์ระยะไกลผ่านพอร์ตใดก็ได้ตามที่ระบุไว้ก่อนหน้านี้
- พารามิเตอร์ HTTP มักจะเหลือ (หรือแทรก) ในส่วนหัวการตอบสนองโดยไฟร์วอลล์ของเว็บแอปพลิเคชัน
- สามารถใช้ Telnet เพื่อรับข้อมูลการรวบรวมขั้นพื้นฐาน เช่น เซิร์ฟเวอร์และคุกกี้ที่ใช้ในการพิมพ์ลายนิ้วมือ
- พิมพ์
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 แล้วกดปุ่ม Enter
[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.ระบุเซิร์ฟเวอร์ที่โฮสต์เว็บไซต์และภาษาส่วนหลังที่สร้างขึ้นหลังจากใช้ telnet บนพอร์ต 80 เป้าหมาย
ระบบ WAF บางระบบอนุญาตให้แก้ไขส่วนหัวได้ และยังทำให้เว็บเซิร์ฟเวอร์ส่งการตอบกลับ HTTP ที่แตกต่างจากระบบมาตรฐานได้อีกด้วย
ดังที่แสดงในผลลัพธ์ข้างต้น เว็บเซิร์ฟเวอร์ตอบสนองต่อคำขอของเราและเปิดเผยว่าไฟร์วอลล์/เกตเวย์ขอบคือวานิช
การค้นพบอัตโนมัติ
#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 --torข้อได้เปรียบหลักของเครื่องมือ Whatwaf คือมันพยายามให้ payloads โดยอัตโนมัติเพื่อเลี่ยงผ่านไฟร์วอลล์ที่เปิดเผย
#3. การตรวจจับโดยใช้ Wafw00f
เครื่องมือที่รู้จักกันดีที่สุดสำหรับการตรวจจับไฟร์วอลล์ของเว็บแอปพลิเคชันคือ Wafw00f Wafw00f ส่งคำขอ HTTP ไปยังไฟร์วอลล์ของเว็บแอปพลิเคชันเพื่อระบุ เมื่อส่งคำขอ HTTP ล้มเหลว wafw00f จะส่งคำขอ HTTP ที่เป็นอันตราย หากการสร้างคำขอ HTTP ที่เป็นอันตรายล้มเหลว wafw00f จะตรวจสอบคำขอ HTTP ก่อนหน้าและใช้อัลกอริธึมง่ายๆ เพื่อตรวจสอบว่าไฟร์วอลล์ของเว็บแอปพลิเคชันตอบสนองต่อการโจมตีของเราหรือไม่
Wafw00f ไม่ได้ติดตั้งไว้ล่วงหน้าในการแจกแจง Kali Linux
จะติดตั้ง Wafw00f ได้อย่างไร?
แพ็คเกจ zip สามารถดาวน์โหลดได้จากแหล่ง GitHub อย่างเป็นทางการ
ดาวน์โหลดเครื่องมือวาฟวูฟ คุณยังสามารถใช้ไคลเอ็นต์ 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
