เมื่อ Google พาเที่ยว Directory
สวัสดีคับตอนนี้เราเข้าใจวิธีการใช้ Google Advanced Operators ในการค้นหา
แบบไม่ธรรมดากันแล้วนะคับ ต่อไปเราจะนำเครื่องมือเหล่านั้นมาประยุกต์ใช้ในการ
ทำการทดสอบระบบกัน วันนี้ผมจะแสดงให้ดูว่า google ก็พาเราไปเที่ยว directory
ต่างๆที่อยู่ใน webserver ได้อย่างไรคับ
Directory Listing
เวลาที่เราเล่น internet ค้นหา web ต่างๆ บางครั้งเราก็เข้าไปเจอ website หน้าตาแบบนี้
นี่คือตัวอย่าง website ที่ได้ถูกทำ Directory listing โดย Browser ของคุณคับ
ซึ่งจริงๆแล้วมีข้อเสียทางด้าน security ดังนี้คือ
- ทำให้สามารถมองเห็น file ที่อยู่ใน webserver ที่เราไม่ได้ตั้งใจจะให้เห็นได้ ไม่ว่าจะเป็นรูปภาพ,สคริ๊ป,หรือโปรแกรมต่างๆที่เราเก็บไว้ใน directory นั้น
- แสดงข้อมูลที่เกี่ยวกับ webserver ที่ทำให้เกิดประโยชน์กับ hackerเช่น ใช้ webserver ของอะไร version อะไร
- Web ที่ไม่มี index.htm หรือ index.html มักจะแสดงหน้านี้ออกมาทำให้ hacker สามารถเห็น file และ download ข้อมูลที่เราไม่ต้องการได้
ค้นหา Directory ด้วย Google
การใช้ Google ค้นหา Directory นั้นสามารถทำได้โดยการสังเกตุคับ
ถ้าเราลองสังเกตุดูดีๆ ก็จะเห็นว่า ไอ้ web หน้าตาแบบข้างบนเนี่ยจะมีข้อมูลที่อยู่ใน
แทค title ว่า “index of” ดังนั้นเราจึงใช้ operator ที่ค้นหาใน title ว่า….
Intitle:”index of” หรือ intitle:index.of
ซึ่ง “.” นี้จะใช้แทนความหมายเป็นตัวอักษรใดก็ได้ใน Google (google’s wildcard)

คราวนี้เราจะเห็นว่าผลของการ search ลำดับที่สองนี้จะไม่ใช่ web ที่เป็น
Directory listing ดังนั้นเราควรใช้คำสั้งนี้คู่กับสิ่งที่เราต้องการจะหาด้วยเช่น
Intitle:index.of “parent directory”

สังเกตุว่า Google จะทำการค้นหา phase “Parent Directory” ในหน้า page นั้นๆ
คราวนี้ต้องใช้จินตนาการซักนิดนึงคับคือเปลี่ยนเป็นอย่างอื่นที่เราต้องการเช่น
Intitle:index.of.admin หรือ intitle:index.of inurl:admin
Intitle:index.of inurl:etc
(ลองใช้คำที่เป็นชี่อของ directory ดูคับ)
(ลองใช้คำที่เป็นชี่อของ directory ดูคับ)
เราสามารถใช้ค้นหา file ได้โดยระบุชื่อ file ตามหลังคับตัวอย่างเช่น
Intitle:index.of ws_ftp.log
Intitle:index.of passwd
หรือเราอาจจะลองใช้ operator inurl กับ filetype ดูก็ได้คับ
Inurl:ws_ftp.log filetype:log
Server version เหรอ? ใครจะไปสน?
เมื่อกี้ผมเกริ่นว่า Google สามารถค้นหา version ของ webserver ได้
บางคนสงสัยว่าจะไปสนใจทำไมกับมันเนี่ย? คือ…เรื่องมันเป็นแบบนี้คับ
โดยปกติแล้วหลังจากที่ทำ Directory listing จะปรากฎ webserver version
ข้างล่างแบบนี้คับ

ผู้ประสงค์ร้ายจะใช้ข้อมูลเหล่านี้ในการค้นหาช่องโหว่ต่างๆใน internet
และหาทางใช้ exploits ในการเจาะเข้าไปในระบบได้ โดยที่เข้าไป search ใน
โดยคำสั่งที่ใช้ในการค้นหาคือ
Intitle:index.of “Apache/2.0.50”
Intitle:index.of “Apache/1.3.26 Server at”
Intitle:index.of “Microsoft-IIS/4.0”
Intitle:index.of “OmniHTTPd/2.10”
Intitle:index.of “Red Hat Secure/3.0 server at”
Intitle:index.of “Oracle HTTP Server Powered by Apache”
และอีกมากมายโดยที่เราจะแทน webserver banner ในเครื่องหมาย ” ” คับ
นอกจากนั้นเรายังสามารถที่จะระบุระบบปฏิบัติการที่ webserver run อยู่ลงไปได้ด้วย
Intitle:index.of “Apache/1.3.26 (Unix) Debain GNU/linux PHP/4.1.2 mod_dtcl”
Intitle:index.of “Apache/1.3.27 (Unix) mod_ssl/2.8.11 OpenSSL/0.9.6g FrontPage/5.0.2.2510 mod_gzip/1.3.26 PHP/4.1.2 mod_throttle/3.1.2”
Incremental Supstitution
โดยทั่วไปแล้ว Google จะทำการค้นหาข้อมูลที่ถูกลิงค์จาก page อื่น
หากไม่มีการลิ้งค์ Google ก็จะไม่เจอ นั่นหมายความว่าถ้าหากว่า webmaster
ได้ทำการ backup หน้า page พวก index.htm ไว้เป็น index1.htm,index2.htm
Google ก็จะหาไม่เจอ ดังนั้นให้เราลองทดสอบการค้นหาหน้า page ที่เป็น backup ดูโดย
Intitle:index.of “index1.htm”(แทนตัวเลข 1 ไปเรื่อยๆนะคับ 1,2,3…)
Inurl:index.php.bak
ที่ที่สองใช้คำสั่ง inurl ในการค้นหาแบบนี้เพราะว่า เราไม่สามารถจะ view source code
หน้าที่เป็น php ได้คับ ส่วนใหญ่ webmaster เมื่อทำการแก้ page จะ backup ไว้เป็น
Index.php.bak คับ ไม่เชื่อลองดูดิ?
Directory Traversal
นอกจากเราใช้หา file ที่ต้องการแล้วเรายังใช้เพื่อการค้นหา directory ต่างๆได้ด้วยนะคับ
ยกตัวอย่างเช่น ถ้าเราต้องการจะค้นหา directory ของ admin หรือ student ก็ใช้
Intitle:index.of inurl”/admin/*”
Intitle:index.of inurl”/student/*”
นอกจากนี้เรายังสามาถที่จะคลิ๊กไปที่ Parent Directory เพื่อออกไปสู่ top level ได้คับ
แต่ว่ายังออกไปไม่ถึง root directory ได้คับ เพราะว่าปกติแล้ว webserver จะสร้าง
Default top directory เอาไว้คับ ขอยกตัวอย่างแล้วกัน สมมุติว่า webserver ของคุณ
กำหนดให้ default top directory เป็น /var/www/htdocs นั่นหมายความว่า เราต้อง
Upload file index.html ไว้ที่ directory นั้น ผู้เข้าชม website ก็จะสามารถจะเข้ามาได้
ไม่เกินไปกว่า top directory ที่เรากำหนดไว้คับ แต่ถ้าหากว่าใน website นั้นมีการใช้
Script พวก php, asp, pl, cgi ที่เขียนมาไม่ดีมีช่องโหว่ให้ทำ Cross-Site Scripting ได้
จะสามารถทำให้ผู้โจมตีเข้ามาที่ directory อื่นไม่ว่าจะเป็น root, etc หรือแม้กระทั่งเข้า
มาขโมย passwd ไปได้คับ ไว้ผมจะเล่าเรื่อง Cross-Site Scripting ในบทความอื่นแล้วกัน
คับเดี๋ยวมันจะยาวเกินไป
ก่อนจบบทความอยากให้ลองค้นหาดูว่า website ของคุณเปิดเผยช่องโหว่แบบนี้บ้างหรือป่าวนะคับ