Web Security Upload File

Web Security

http://zone-h.org ยังเคยโดน hack แล้วจะเอาอะไรกับเว็บไทย

สวัสดีครับ ช่วงนี้ผมเองวุ่นๆ มาก งานเข้ามากมาย ก็ต้องค่อยๆ แกป้ญหากันไปครับ ..
ยิ่งเจอปัญหายากๆ ย่ิงสนุก จะทำให้เรากล้าแกร่ง และมีประสบการณ์ ขอบคุณปัญหา

วันนี้มีเรื่อง web security มาพูดกันสักนิดนึงครับ 98% ของการ hack web ในปัจจุบัน
มาจากความผิดพลาดของ web application หรือพูดกันแบบบ้านๆ ก็คือ program
ที่เขียนมีจุดอ่อน ทำให้ hacker สามารถใช้ช่องโหว่เข้ามาโจมตีและลักลอบขโมยข้อมูล
ไปได้ ไม่ว่าจะเป็นวิธี injection, cross site script ที่หนักสุดก็คือ upload php shell ..
Injection คือการใช้จุดอ่อนในการเขียน sql เข้ามากระทำต่างๆ กับ database
Cross site script คือการส่ง parameter ต่างๆ ที่สามารถทำงานที่ต้องการผ่าน script
PHP Shell คือ file php เพียง 1 file ที่ upload ขึ้นไปแล้วสามารถทำอะไรก็ได้บน server

สำหรับผมเองจะ stick กับเรื่องพวกนี้มาก เพราะว่าถ้าปล่อยให้หลุดไป ปัญหามันแก้กัน
ลำบาก ไม่รู้ว่ามีคนแอบเอา PHP Shell ไปวางไว้ตรงไหนบ้าง อะไรแบบนี้ file บน server
มีเป็นจำนวนมาก ไล่หาคงไม่เจอแน่ๆ ซึ่งถ้าโดนเข้าไปแล้ว ต่อให้ลง server ใหม่ก็ไม่หาย
เว็บไทย ส่วนใหญ่ไม่ค่อยสนใจเรื่องพวกนี้ ทำให้เว็บใหญ่ๆ ดังๆ หลายที่มีข่าวว่าโดน hack ..

สำหรับท่านที่เป็นโปรแกรมเมอร์ ผมมีวิธีแนะนำในการตรวจสอบและป้องกันง่ายๆ ก่อนที่จะ
upload file ขึ้น server ให้ test ต่างๆ ประมาณนี้ ก็จะทำให้มั่นใจว่าปลอดภัยระดับหนึ่ง ..
1.กรองการส่งค่าแบบ GET เข้ามาทาง URL และอย่าลืมทำการ addslashes() ค่าที่รับมา
ก่อนทุกครั้ง เพื่อป้องการการ injection และการ cross site script
2.อันนี้สำคัญมากคือพวกโปรแกรมที่ปล่อยให้ upload file ขึ้นมาบน server ได้ เท่าที่พบ
บ่อยที่สุด ก็คือพวกประกวดรูปภาพ แล้วให้คนมาโหวต ผมยังไม่เห็นเว็บไหนที่โกงไม่ได้
เพราะว่าพวกที่จะ hack ก็จ้องอยู่แล้วว่าเมื่อไรจะมี event พวกนี้ จะได้ส่งไปโหวตบ้างได้ของ
วิธีการปั่นโหวต ก็มีสารพัดวิธี แล้วแต่ใครถนัด แต่ก็ยังมีอีกพวก ที่ไม่ชอบปั่นแต่ hard core
คือ hack เข้าไปที่เว็บนั้นๆ เลย วิธีการก็โดยการพยายาม upload PHP Shell ขึ้นไป
ในเมื่อเว็บมีที่ให้ upload อยู่แล้ว การจะ upfile ขึ้นไป ก็ไม่ใช่เรื่องยากเท่าไรนัก ในมุมมอง
ของโปรแกรมเมอร์ อาจจะคิดว่าทำทุกอย่าง กันทุกอย่างแล้ว จะ upload เข้ามาได้อย่างไร
แต่อย่าลืมว่า hacker คือคนที่รู้และมีประสบการณ์ เรื่องพวกนี้ดีกว่า จุดอ่อนและวิธีการ
มีสารพัดวิธี แล้วแต่ใครถนัด ขนาดใช้ MySQL upload file ยังสามารถทำได้เลย ..
ที่จะแนะนำก็คือ ให้เชคให้ละเอียดว่า file ที่ให้ upload เป็น images ที่ไม่เป็นอันตราย
ไม่ใช่ check แค่ extensions หรือใช้ $_FILES เพราะว่าพวกนี้ปลอม header เข้ามาได้
ให้ใช้ getimagesize() แทนจะแน่นอนกว่า สำหรับตัวอย่างสามารถหาดูได้ที่
URL :
http://php.net/manual/en/function.getimagesize.php

ปล.วันนี้มาเขียนแค่นี้ก่อนครับ วันหลังเดี๋ยวมาเขียนต่อ รอติดตามกันนะครับ 🙂

กลับจากค่าย NLC9

รูปบรรยากาศค่าย NLC9 ครับ ถ่ายมาน้อยไปหน่อยครับ

กลับมาจากค่าย NLC9 ที่บ้านวิทยาศาสตร์สิรินธร ก็เอารูปมาลงครับ
งานนี้รูปมาน้อย เพราะมัวแต่นั่งเล่นให้ห้องอบรมครับ อิอิ  ..
งานนี้ได้เจอคนเก่ง ๆ มากมาย ทั่วประเทศ โดยเฉพาะน้อง ๆ ม.ปลาย
ที่เทพ ๆ กันหลายคน อนาคตของชาติ ถ้ามีเด็กเก่ง ๆ แบบนี้อยู่
ต่อไปคงพัฒนาทางด้าน Unix, Open Source ไปได้ในทางที่ดี
เนื้อหาในการเข้้าค่ายอบรมครั้งนี้ ส่วนตัวคิดว่าครอบคลุม แต่เนื้อหา
ที่สอบก็ยังไม่ค่อยดีนัก อาจจะเป็นเพราะว่าเป็นครั้งแรก ที่มีการอบรม
ครั้งต่อไป น่าจะดีกว่านี้ ส่วนเรื่องที่พัก อาหารการกิน กิจกรรมต่าง ๆ
ผมว่าดีมาก ๆ โดยเฉพาะอาหาร อร่อยทุกมื้อ เรียกได้ว่ามาอยู่ค่าย
ไม่ต้องจ่ายตังค์ อะไรเลย แถมยังได้ค่าเดินทางอีกด้วย ดีจริง ๆ ..
ในห้องอบรม ไม่มี Internet ให้ใช้ มีแต่ WiFi ที่ติด Authen แต่ว่า
ถ้า Set Proxy ข้างนอก ก็สามารถทะลุออกมาได้ ทั้งห้องเรียนก็เลย
มี Internet ให้เล่นกันสนุกสนาน ผมปล่อย AP FreeNet-NLC ไป
จากเจ้า PowerBook G4 ของผม มีเครื่องมาเกาะ กว่า 40 เครื่อง
แต่ก็รับไหว เจ๋งดีจริง ๆ AirPort Extreme Broadcom
ส่วนน้องบางคนถึงกับเอาเครื่องตัวเองเป็น Client Mode แล้วต่อ
จาก LAN Interface เข้าวง LAN ทำเครื่องเป็น Proxy แล้ว Share
Internet ให้เพื่อน ๆ ได้ใช้กันทั่ววง LAN ที่ใช้ในการอบรม นี่ก็เจ๋ง
บางคนก็ฝึกเป็น Hacker เข้าไป Hack เครื่องคนอื่นกระจาย แต่ก็
ดีที่จะได้แก้ไข เครื่องผมก็โดนเหมือนกัน โดน rm -rf / แต่ก็ไปเอา
file จากเครื่องอื่น ๆ ที่ปกติมาลง ก็เป็นอันเสร็จ ไม่มีอะไรมาก น้อง ๆ
เค้าตามจับ คนที่มา Hack กันสนุกดี ในที่สุดก็หาเจอ เด็กพวกนี้เก่ง
เห็นแล้วคิดถึงตัวเอง ว่าสมัยอายุเท่านี้ ยังทำอะไรแบบนี้ไม่เป็นเลย
แต่เด็กสมัยนี้เก่งมาก ๆ ต่อไปมีลูก ต้องสอนให้เก่งแบบนี้บ้าง อิอิ ..

งานเลี้ยงย่อมมีวันเลิกลา แล้วระยะเวลา ที่เข้าค่ายก็จบลง จบด้วย
การทดสอบวัดความรู้ที่เรียนมา แล้วเอาประเภทละ 10 คน เข้าไปแข่ง
รอบชิงที่ สยามพารากอน เดือนกุมภาพันธ์ปีหน้า ผมเองยังรอลุ้นอยู่
เหมือนกัน ว่าจะติดหรือเปล่า เพราะมีแต่คนเก่ง ๆ ทั้งนั้น ติดไม่ติด
ก็ไม่เป็นไร ถือว่าคุ้มแล้วกับประสบการณ์ครั้งนี้ ถ้าไม่ติดก็จะไปเชียร์เพื่อน ๆ
ถ้าติดก็จะเตรียมตัวไปแข่งอย่างเต็มที่ วันนี้ผล น่าจะออก อิอิ ลุ้น ๆๆๆๆ