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

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

Hack@Night 2008

เมื่อวันที่ 25 พ.ย. ที่ผ่านมา มีโอกาศไปร่วมแข่งขัน Hack@Night
ที่ Central ลาดพร้าว ทีมผมมีกัน 4 คน มีพี่อัท พี่วิน เซียนกอล์ฟ และผม
ชื่อทีมไม่มี ก็เลยเอาชื่อจริงเซียนกอล์ฟตั้งเป็นชื่อทีม การแข่งขันเริ่มเวลา
ประมาณ 19.00 น. มีด่านทั้งหมด 4 ด่าน ต้องผ่านให้ได้ภายใน 3 ชม.
ด่านที่ 1 Hack WEP Key ของ AP โดยใช้พวก aircrack-ng
ด่านที่ 2 ทำการ Exploit Webmin จะได้ /etc/shadow ออกมา
จากนั้นใช้ John the Ripper crack passwd อีกทีนึง ก็จะสามารถ
ssh เข้า shell ได้ ถือเป็นการจบด่านที่ 2
ด่านที่ 3 เป็นการหาเครื่อง Web Server ใน Intranet แล้วทำการ
Injection Database จะได้ข้อมูล User/Password มา จากนั้น scan หา
path ต่าง ๆ บน Web Server นั้น ๆ แล้วทำการ Login ด้วยข้อมูลที่ได้มา
Upload พวก PHP Shell เข้าไปทางช่อง Upload รูป ก็จะครองเครื่องได้แล้ว
จากนั้นหาหมายเลข Credit Card ที่เข้ารหัสไว้แบบ base64 แล้วถอดรหัส
ด่านที่ 4 หาหมายเลข CVV 3 หลัก
ดูเหมือนง่าย ๆ นะครับ แต่มีทีมที่ผ่านถึงด่านที่ 2 แค่ 2 ทีม ทีมผมเอง
งานนี้อ่อนซ้อมไปหน่อยด่าน Hack WiFi ยังไม่ผ่านเลย ก็เลยไม่มีสิทธิ
ที่จะไป Access Network ภายใน งานนี้ก็เลยต้องกลับมาทำการบ้าน
กันยกใหญ่ ผมเองก็ต้องหาซื้อ Wireless USB ดี ๆ สักตัวเหมือนกัน เพราะ
ดู Trend แล้ว ต่อไป ถ้ามีการแข่งขัน Hack อีก ด่านแรกก็คงเป็น Crack
WEP Key ซึ่งโดยปกติแล้วทำได้ไม่ยาก ..
ก็ต้องขอแสดงความดีใจกับทีมที่ชนะด้วยครับ ดีใจกับทีมรุ่นน้องที่ลาดกระบัง
ด้วยที่ไปได้รางวัลมาทุกงาน เจ๋งจริง ๆ อนาคตสดใส แน่นอน ..
ส่วนรูป ผมไม่ได้เอากล้องไป เดี๋ยวขอรูปจากพี่อัท แล้วจะลงให้ดูอีกทีครับ

วันก่อนไปเดินร้านอมร ที่ฟอร์จูนมา เห็นชุด Kit สมัยนี้เจ๋งดี มีหนังสือให้อ่าน
และมีชิ้นส่วนและ IC ต่าง ๆ ให้พร้อม สามารถเขียน Program ลงพวก MC
เพื่อบังคับ Robot ได้เลย ซึ่งเห็นแล้วอยากกลับไปเล่นพวกนี้อีกครั้ง
สมัยเด็ก ๆ ผมชอบมาก แต่สมัยนี้พอทำงานแล้ว หน้าที่การงานที่รับผิดชอบ
ก็คือดูแลระบบ ต้องใช้แต่พวกความรู้ทาง Unix กับ Network ไม่ได้ลงมา
จับพวก Hardware และพวกเขียน Micro Controller อีกเลย ..
วันนี้ได้คุยกับคุณอ้น (Aon Micro) ก็เลยปรึกษาหน่อยว่าจะไปเริ่มต้นเล่น
พวกนี้ใหม่อย่างไรดี ก็ได้รับคำแนะนำที่เป็นประโยชน์ เดี๋ยวก่อนปีใหม่
จะเอา Robot ของผมมาให้ดูกันครับ ว่ามันมีความสามารถอะไรบ้าง ..

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