หน้าเว็บ

วันอังคารที่ 19 มิถุนายน พ.ศ. 2555

ลง Windows 7 , BlackBuntu..

          สวัสดีครับ วันนี้บล๊อกไม่มีอะไรครับจะมาบ่นอะไรนิดๆหน่อยๆ ประสบการณ์ และปัญหาในการลง Windows 7 และ BlackBuntu ( Dual Boot ) เนื่องจากตอนนี้ผมเปลี่ยนมาใช้ Linux เป็น OS หลักแล้ว

          เนื่องจากได้ External HDD 1 TB มาเป็นของขวัญวันเกิดของตัวเอง ( ซื้อให้ตัวเอง ) แล้วเลยเก็บไฟล์ไว้ในนี้หมดเลยครับ พวกโปรแกรมที่เขียนๆไว้ พวกสคริปโปรแกรมต่างๆ อยู่ในนี้หมด HDD 160GB ของผมเลยต้องนำมาใช้ประโยชน์กับตัวเองซักหน่อย โดยการลง Linux และ 7 เพื่อใช้งาน :)...



          ก่อนหน้านี้ใช้ Windows XP เพราะสเปคคอมผมช้ามา เพราะซื้อมาจะ 3 ปีแล้วครับสเปคเครื่องตามนี้ ( กำลังจะอัพแรมเป็น 4GB และ >_<" อัพแล้ว 28/07/2012 ) เมื่อสามปีก่อน เครื่องผมแรงมากเลยนะ ฮาา เทียบกับสมัยนี้คนละเรื่องเลย เทคโนโลยีมันอัพเดททุกเวลาจริงๆ ...


         CPU :             Intel Pentium Dual Core E5300 2.6 GHz

         RAM :            DDR2 800/1066 4GB

         Harddisk :      Samsung SATA 160 GB

         VGA :            NVIDIA Geforce 9400GT 512MB


          ตอนที่ลงนั่นใช้เวลาพอสมควรครับวางแผนไว้ว่า HDD160 GB จะแบ่งเป็น 3 ส่วนคือ Windows 7 = 60GB , BlackBuntu = 40GB , Data 50 GB พอได้ตามนี้ผมก็เริ่มเลยครับ และระหว่างลงมีปัญหานิดหน่อยจะไล่แต่ละเหตุการณ์ให้ฟังครับ ฮาๆ

         - DVD Drive ของเครื่องผมไม่ยอมอ่านแผ่น DVD ที่ใช้ลง (ปกติอ่านได้นะ T_T) เลยต้องยืมเพื่อนมาก่อน
         - ลง BlackBuntu 0.3 ปรากฏว่าลงไม่ได้ เพราะยังไม่ได้ Format HDD 160GB
         - ใช้ Partition Magic 8.5 จากแผ่น Hiren Boot CD ไม่ได้เพราะเก่าเกินไป HDD แจ้ง partition table error #105 found
         - ใช้แผ่น Windows 7 ในการ Format และแบ่ง Partition เลย
         - ลง Windows 7 Professional 32Bit สำเร็จ
         - ลง BlackBuntu 0.3 สำเร็จ
         - BlackBuntu ไม่มีไดร์ฟเวอร์ nVidia ให้ต้องลงเอง นอกนั้นไดร์ฟเวอร์เจอหมด *0*

         จากนั้นก็ไม่มีอะไรมาก ตอนบูทเครื่องจะให้เลือกเลยว่าจะใช้ OS ไหนถ้าไม่มีการเลือก 10 วิก็จะรันเข้า BlackBuntu เพราะถ้าไม่มีอะไรที่จะต้องทำบน Windows เช่นเขียนโปรแกรมหรือทำอะไรเฉพาะผมก็ใช้ BlackBuntu เป็นหลักครับ เครื่องไม้เครื่องมือเยอะดี อิอิ ( เครื่องมืออะไรคงไม่ต้องบอก )

         เหตุผลที่ผมใช้ BlackBuntu ( Based on Ubuntu ) ก็เพราะต้องการศึกษาระบบไฟล์ของ Linux บ้างเพราะอยู่บน Windows มา 20 ปีแล้ว ฮาๆ อีกอย่างคนไทยเราเป็น Develop ได้ฝึกพิมพ์เพราะเป็น Command Line ล้วนๆ ถึงแม้จะมี GUI บ้างก็เถอะ แต่รู้สึกว่าพิมพ์เยอะกว่ามาก..ความจริงอยากจะใช้มาตั้งนานแล้วแต่ว่าติดหลายเรื่องเลยไม่ได้ลงใช้ซักที คราวนี้ได้ใช้ได้ศึกษาจริงๆซักที นี่คือ Desktop ที่ใช้ล่าสุดครับ :D




ท้ายสุดนี้ก็ต้องขอขอบคุณ @Kalumnoy ที่ช่วยแก้ปัญหาต่างๆนะครับ :)

วันพุธที่ 6 มิถุนายน พ.ศ. 2555

ปิด Functions อันตรายใน PHP.



          สวัสดีครับ ห่างหายไปนานกับการเขียนบล๊อกเนื่องจากช่วงปิดเทอมแล้วเพิ่งเปิดเทอมก็มาอยู่หอแล้วตอนนี้ :) เข้่าเรื่องดีกว่า เรื่องของเรื่องคือผมอ่านทวิตเตอร์อยู่แล้วไปเจอ ลิงค์นี้ PHP Shell Detector – web shell detection tool สคริปนี้เป็น Tool ที่ใช้ตรวจสอบและค้นหา php shell ครับผมเลยลองเปิดไฟล์หลักดูพบกับโค้ด..
private $_regex = '%(preg_replace.*\/e|\bpassthru\b|\bshell_exec\b|\bexec\b|\bbase64_decode\b|\beval\b|\bsystem\b|\bproc_open\b|\bpopen\b|\bcurl_exec\b|\bcurl_multi_exec\b|\bparse_ini_file\b|\bshow_source\b)%'; //system: regex for detect Suspicious behavior

          ผมก็เลยสดุดตาว่าพวกนี้เป็นฟังก์ชั่นของ php ที่อันตรายสคริปนี้ดักไว้หมดเลยนี่หว่า :O เลยจับมาเขียนบทความซะหน่อยว่าควรจะปิดฟังก์ชั่นไหนอย่างไร

- สิ่งที่ควรทำ ?
          ฟังก์ชั่นอันตรายของ php อะไรบ้างที่ควรปิดมัน เพราะมันไม่ปลอดภัยเลยถ้าเปิดฟังก์ชั่นพวกนี้อยู่ เพราะมันจะเป็นอันตรายต่อ server และข้อมูลที่เก็บไว้ของคุณนั้นเอง แต่ถ้าคุณยังใช้ฟังก์ชั่นที่อันตรายนั้นๆอยู่ควรจะใช้มันด้วยความปลอดภัย เขียนโค้ดให้รัดกุมเพื่อป้องกันการถูกเจาะได้ครับ...

- ทำไมต้องทำ ?
          ปิดการใช้งานฟังก์ชั่นอันตรายจะทำให้การโจมตีนั้นยากยิ่งขึ้นและเพิ่มประสิทธิภาพของเว็บในการเสี่ยงที่จะโดนแฮกได้ ซึ่งการโจมตีที่พบมากนั้นคือช่องโหว่ Upload File นั้นเองซึ่งจะสามารถอัพโหลดสคริปอันตรายที่มีฟังก์ชั่นอันตรายเข้ามาใน server และโจมตี server ได้เราจึงต้องปิดฟังก์ชั่นอันตรายของ php เพื่อทำให้สคริปนั้นใช้งานไม่ได้หรือใช้งานได้ยากขึ้นนั้นเอง..

- ทำอย่างไร ?
          ขั้นแรก list รายชื่อฟังก์ชั่นที่อันตรายซึ้งมีดังนี้ (ซึ่งอาจมีมากกว่านี้ ดูที่ Ref )..
eval
system
exec
shell_exec
passthru
popen
proc_open
parse_ini_file
show_source
symlink
curl_exec
curl_multi_exec
          ขั้นที่สอง ปิดการใช้งานฟังก์ชั่นนั้นๆที่ไฟล์ php.ini ครับซึ่ง php.ini นั้นใน windows จะอยู่ที่..
C:\Windows\php.ini
(แล้วแต่การ config path)
         และใน linux จะอยู่ที่...
/etc/php5/apache2/php.ini
/usr/local/lib/php.ini
(แล้วแต่การ config path)
         ให้ค้นหา "disable_functions" ในไฟล์ php แล้วเพิ่มชื่อฟังก์ชั่นที่ต้องการจะปิดเข้าไปครับเช่นตัวอย่าง..
disable_functions =eval,exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source
          เมื่อเสร็จแล้วก็ทำการ Save ไฟล์ php.ini แล้ว Restart Web Server เป็นอันเสร็จครับ หรือถ้าเลี่ยงไม่ได้ที่จะต้องใช้ควรกรอง input ด้วยฟังก์ชั่น escapeshellarg() เพื่อป้องกันการใช้คำสั่งอันตรายครับ..
          ขอจบบทความเพียงเท่านี้ ขอบคุณที่อ่านจนจบครับผม ,, ICheer_No0M

Ref : http://web.securityinnovation.com/appsec-weekly/blog/bid/79067/Disable-Dangerous-Functions-in-PHP
http://blog.eukhost.com/webhosting/dangerous-php-functions-must-be-disabled/