ผมได้รับโจทย์นึงมาจากอาจารย์ของผมเองคือช่วยทำเว็บนึงให้หน่อย โดยทางอาจารย์ก็ได้ให้ user pass ของ server มหาลัย

ซึ่งสิ่งที่ได้มาเป็นของที่ out of date ไปหมดแล้ว ทางผมก็ทำอะไรไม่ได้กะว่าทำส่งๆ ไปก็ได้ แต่ไหนๆ ก็ไหนแล้วทำแล้วก็ทำให้ดีๆ เลยดีกว่า โดยปกติผมมักจะไม่ใช่ Server หรือ Software อะไรก็ตามที่ตกรุ่นไปแล้ว ผมมักจะดันให้มันเวอร์ชั่น the latest release แต่ที่ได้มาถึงจะผมก็ต้องใช้ 5555555

ตกรุ่นไปแล้วขนาดนี้ไม่ดียังไง

  1. ช้า
  2. ช่องโหว่
  3. ปัญหาการโดนแฮก

และปัญหานู่นนี่อีกมากมายแล้วแต่บุญกรรมที่ทำมา

ผมทำเว็บอยู่สัก 2-3 วันก็เสร็จ มีแก้ข้อมูลแต่หน้าเพจเพิ่มนิดหน่อยระบบก็นิ่ง จนวันนั้นก่อนส่งงาน ผมออนไลน์เว็บทิ้งไป เกือบๆ 2 เดือนโดยไม่มีปัญหา และในวันนึงผมจะส่งงานปัญหาก็เกิดจนได้คือ login เข้า admin ไม่ได้ คือหน้า wp-admin โดน redirect ไปหน้า 404 เลย ผมก็เอ้า อะไรวะ ผมก็ไม่ได้เปลี่ยนหน้า login นี่หว่า (ที่ผมไม่เปลี่ยนเพราะกลัวจะมีปัญหากับ plugin)

เลย ftp ไปดูที่เครื่องว่าไฟล์ wordpress core ยังอยู่ดีมั้ย แต่สิ่งที่ได้เจอคือ

ftp file list

ที่หน้ามี directory pkv เพิ่มขึ้นมา และไม่กี่วันหลังจากนั้นก็ robopragma ซึ่งเป็น hotlink ของเว็บพนัน nft ครับ

แต่ผมลบไม่ได้เนื่องจากผมไม่ได้ user มาเป็นสิทธิ root user ผมมีสิทธิแค่ upload/download เท่านั้น แต่ directory ที่ถูกสร้างมันน่าจะถูกสร้างโดยใช้ช่องโหว่ของ PHP เพราะว่า permisstion 48 48 ซึ่งผมเช็คแล้วว่าเป็นที่ php ชัวร์ๆ แต่ผมก็ทำอะไรไม่ได้เนอะ (php ver. 7.4.27) ✌🏻🥹

ลบก็ลบไม่ได้ แก้ชื่อก็ไม่ได้ ย้ายออกจาก public ก็ไม่ได้คือทำอะไรไม่ได้เลย และนี่ถือว่าเป็นครั้งแรกที่ผมทำเว็บอะไรสักอย่างนึงแล้วโดนแบบนี้ เว็บส่วนใหญ่ที่ผมทำมักจะอยู่หลัง cloudflare หมด เพราะมันเร็วมาก แล้ว cloudflare ก็มีการ drop package attack ที่อันตรายทิ้งหมด เพราะงั้น ถ้าแบบนี้อยู่หลัง cloudflare ก็อาจจะลดโอกาสไปแล้วเยอะเลย ผมว่า 70:30 เลยด้วยซ้ำ ผมคิดว่าสิ่งที่ผมเจอน่าจะเป็น bots ของ hacker ที่สแกนไป google แล้วเจอเว็บแล้วของสแกน technology ของ server ดูว่ามีจุดอ่อนอะไรหรือไม่ ถ้ามีก็โดน

ซึ่งผมก็ได้ออนไลน์อีกเว็บนึงในอีก domain นึง ใช้ server ตัวเดียวกัน เหมือนกันทุกอย่าง wordpress theme plugins ต่างๆ ก็ตัวเดียวกัน แต่เว็บนั้นไม่โดนอะไร เว็บนั้นก็ออนไลน์มาสักพักแล้วเหมือนกัน แต่เว็บนั้นผมไม่ได้ add เข้า google search ในมันแสดงหน้าเว็บ

สิ่งที่ผมแก้ไขเบื้องต้นแล้วหลังว่าจะ work แล้ว ช่วย block ได้คือ เขียน .htaccess robots.txt หน้าเปลี่ยน login ไป path อื่นแทน และสิ่งสุดท้ายที่ผมหวังว่าจะช่วยได้คือยัด cloudflare turnstile เข้ามา

เนื่องจาก directory ที่ถูก hacker สร้างผมลบเองไม่ได้เพราะติด permisstion ไม่พอเลยต้องเขียน robots.txt เพื่อให้ google bots รู้ว่ารอบหน้าที่ update ผลการค้นหาใหม่ ไม่ต้องแสดงหน้าของ hacker แต่ทางเนื่องเว็บที่ผมทำให้เป็นของมหาลัย ผมจึงยังไงว่าถ้าในเมื่อมันรันในเซิฟเวอร์ตัวเดียวกัน น่าจะมีช่องโหว์เหมือนกัน สรุปคือโป๊ะ ผมได้ทำการ dnsdump ดู domain ทั้งหมด ลองสุ่มสักเว็บที่ wordpress สรุปคือมี script มีหน้าของ hacker ฝั่งอยู่ทั้งหมดเลย ผมก็ omg กูทำไงละเนี่ย

บางเว็บคืออาการหนักเลย ผมคลิ๊กเข้าเว็บแล้วผมที่เปิดขึ้นมาคือเด้งไปเว็บพนันเลยครับ 55555 ไอเราก็เออ กูคงทำอะไรไม่ได้แล้วสินะ

แล้วอีกปัญหาที่ผมเจอคือ db ช้ามาก เนื่องจากผมว่าทั้งมหาลัยคงใช้ db ตัวเดียวสำหรับเว็บ info ต่างๆ ปัญหานี้แก้ไม่ช้า ผมได้ทำการ pull docker mysql มาใช้แทน db ของมหาลัยที่ให้มา ผลคือไวขึ้นแบบมหาศาล

แต่จริงๆ แล้วปัญหาระหว่างทางมันเยอะกว่านั้นอีก เนื่องจาก server อยู่ใน internal network เวลาที่มีเหตุต้อง remote เป็นเข้าไปแก้อะไรสักอย่างที่ db server จะต้อง VPN ซึ่งถือว่าเป็นความปลอดภัยผมเข้าใจได้

แต่ ftp server นี่สิตัวปัญหา ตอนที่อาจารย์ให้ user/pass มามันก็ต้องมี address มาด้วยใช่มั้ยละ dxxxxftp.xxxxx.ac.th สมมุติว่าประมาณนี้ อันนี้สำหรับ internal

แต่ถ้าสำหรับ online คือ xxxweb.xxxxx.ac.th แทนนี้คือซึ่งผมไม่เข้าใจว่า ไหนๆ เซิฟเวอร์ ftp มันออนไลน์อยู่แล้ว ทำไมใช้ domain ตัวเดียวกันไปเลย แยกกันแบบนี้ลำบากมากนะ

โดยทั่วไป ผมเริ่มทำเว็บมาตั้งแต่ 2017 ผมใช้ sftp แล้วซึ่งมันเป็น default แล้วเพราะปลอดภัยกว่า ftp ที่ไม่ encrypt และแน่นอนมหาลัยนี้ใช้ ftp เพียวๆ

หลังจากการแก้ไขครั้งนี้ผมหวังว่าคงจะช่วยให้เว็บมัน secure ขึ้นสักนิดก็ได้ ผมนี่อยากจะเอาชื่อตัวเองออกจาก footer เว็บเลยว่ะ

ไอเดียนี้เป็นไงบ้าง?
0 responses
ได้แรงบันดาลใจ
ได้แรงบันดาลใจ
0
ลงไอเดียอีกน้า~
ลงไอเดียอีกน้า~
0
โคตรปังง
โคตรปังง
0