++ SQL INJECTION : คำสั้นๆที่น่ากลัว ++

เริ่มโดย @Roverpost, 26 ตุลาคม 2015, 12:34:05

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

@Roverpost

สวัสดีครับ สำหรับโปรแกรมเมอร์หลายๆท่าน อาจจะรู้จักคำนี้  "SQL INJECTION" หรือบางท่านอาจจะเคยได้ยินแต่ไม่เคยพบเจอกับตัวเอง สำหรับกระทู้นี้ผมอยากจะโพสเพื่อถือเป็น Case Study ครั้งใหญ่สำหรับนักพัฒนาระบบที่ไม่คาดคิดมาก่อนว่า ระบบของเราจะโดน Hack ถึงแม้ว่าจะไม่ได้เว็บดังใหญ่โตอะไร แต่ก็มีมือดีมา Hack หาผลประโยชน์เข้าตัวเองได้ครับ ถึงแม้ว่ามันจะเล็กน้อย แต่ก็ไม่ควรมองข้ามเลย

เริ่มจากตัวผมนั้น เป็นผู้พัฒนาและคิดค้นระบบ Roverpost ผมไม่ได้ใช้ framework อะไรครอบระบบผมไว้เลย เหตุผลเพราะว่า ถ้าจะใช้ framework ซักตัว จะต้องเสียเวลาศึกษา 1-2 เดือนกว่าจะเชี่ยวชาญ ซึ่งพอคำนวณคิดดูแล้ว ถ้าเขียนแบบ Hardcode แล้ว Refactor code ดีๆ ก็น่าจะเร็วกว่าด้วยซ้ำ ผมจึงตัดสินใจเขียนสดๆเอง

แน่นอนครับทุกหน้าก็มี GET กับ POST แต่มันสามารถโดน SQL Injec เข้ามาได้ ลองหาในกูเกิ้ลดูครับว่า พวก Hacker เขาทำกันยังไง ส่วนวิธีแก้ผมทำตามนั้ครับ ไม่รู้ว่าจะป้องกันได้ขนาดไหน
http://www.palthai.com/articles_view.php?id=17

แต่อีก 1 ทางที่น่าจะปลอดภัยที่สุดคือเอาเข้า Cloudflare ครับ

ผมรู้ได้ไงว่าโดนเจาะเข้ามา
ด้วยความบังเอิญ ผมลองตรวจสอบ User ที่ใช้โพสเว็บบอร์ดดู ปรากฏว่าพบ หัวข้อกระทู้แปลกที่ User ผมโพสเรียงติดต่อกันประมาณ 3-4 กระทู้ ผมจึงกดเข้าไปดู แล้วพบว่า หัวข้อและเนื้อหากระทู้ที่โพสไปนั้นไม่ได้มาจากระบบของผมเลย ผมเลยเช็คดู IP ครับว่า IP นั้นมาจาก Server ของผมจริงหรือป่าว ปรากฏว่า คนละ IP กัน จากภาพ

ภาพที่ 1:


ภาพที่ 2:


ภาพที่ 3:


ภาที่ 1 กับ 2 เป็นกระทู้ที่ผมไปพบ และลอง Loginเข้าไปตรวจสอบดูว่า ip ที่โพสมากจาไหน เมื่อได้ ip แล้ว ก็เอา โดเมนลิงค์ที่ผมพบในกระทู้ไปเช็คดูด้วย ดังภาพที่ 3 ปรากฏว่าชุดเลข IP ตรงกัน นั่นหมายความ เจ้าของเว็บไซต์นี้เป็นคนนำไปใช้ ซึ่งเจ้าของเว็บไซต์นี้ได้ออกแบบและทำระบบคล้ายๆกับผม

หลังจากนั้นผมก็ได้ทำการค้นหา Facebook และเบอร์โทรศัพท์ และได้พูดคุยกับเขา เหมือนกับว่าน้องเขากำลังจะสอบเข้า ม. ไม่แน่ใจเห็นยังใส่ชุด นักเรียนอยู่ น้องเขาบอกกับว่าผม มีคนมาขายให้กับเค้า นั่นแปลว่า มีคนอีก 1 คนที่เกี่ยวข้องด้วย แต่น้องคนนี้เป็นแค่คนที่ซื้อมา จนสืบไปสืบมาก็ได้คุยกับคนที่แฮคจริงๆ โดยใช้ SQL INJECTION เข้ามาครับ


สุดท้ายแล้ว ผมอยากให้จะนักพัฒนาระบบทุกท่าน อย่ามองข้ามเรื่องเล็กๆน้อยๆนะครับ เพราะสิ่งที่เราไม่คิดว่ามันจะเกิด มันก็เกิดขึ้นได้ครับ

ขอบคุณ๕รับ
[direct=https://www.shibot.ai/sitemap.xml]Shibot[/direct] [direct=https://www.shibot.ai/]โปรแกรมแชทบอท[/direct] พร้อม[direct=https://www.shibot.ai/]ระบบไลฟ์สด[/direct] ที่สามารถเพิ่มยอดขายได้จริง

smapan

[direct=http://cp.siamhostweb.com/cart.php?gid=1]จูมล่าโฮส สยามโฮสเว็บ[/direct] [direct=http://www.modty.com]modty.com[/direct]
[direct=http://www.apartment.in.th]รวมที่พัก เช่ารายวัน ที่พักเช่ารายเดือนมากที่สุดแจ่มจริง[/direct]
***Tel 083-757-1515 ติดปัญหา Joomla ตรงไหนรับปรึกษาฟรี โทรมาเถอะครับ ถ้าตอบได้ช่วยแน่นอน ไม่มีกั้ก. ***

fangbif

บ้านเรามีนักสืบทางนี้โดยตรงมั๊ยคะ ควรจะมีนะ ใครเก่งๆ เรื่องแฮคเรื่องอะไรแบบนี้ลองจัดดู น่าจะมีลูกค้าเยอะ  :P

CopterMaster

จขกท. ก็ระวังเว็บตัวเองด้วยนะครับ ผมมีเฟส 4 เฟส ทักไปเตือนทุกเฟส แต่ก็ยังไม่แก้
ปล.เฟสผมปลิวไป 3 ละ
ติด Banner ให้เว็บผม 1 เดือน
แลกกับ สคริปหาเพื่อนออนไลน์ (จ้างเขียน)
สนใจ PM

meawjosa


@Roverpost

#5
อ้างถึงจาก: CopterMaster ใน 26 ตุลาคม 2015, 20:07:30
จขกท. ก็ระวังเว็บตัวเองด้วยนะครับ ผมมีเฟส 4 เฟส ทักไปเตือนทุกเฟส แต่ก็ยังไม่แก้
ปล.เฟสผมปลิวไป 3 ละ

ขอบคุณครับสำหรับคำเตือน ตอนนี้ผมได้ทำการแก้ไขแล้ว แต่ไม่รู้ว่าครบหมดหรือป่าว
แต่ผมก็พอรู้ครับว่า กลุ่มไหนบ้างที่เป็นคนทำเรื่องแบบนี้
[direct=https://www.shibot.ai/sitemap.xml]Shibot[/direct] [direct=https://www.shibot.ai/]โปรแกรมแชทบอท[/direct] พร้อม[direct=https://www.shibot.ai/]ระบบไลฟ์สด[/direct] ที่สามารถเพิ่มยอดขายได้จริง

icez

#6
- sql injection ไม่ทำให้ได้ code นะคัรบ โดยทั่วไปก็ได้แค่พวกข้อมูลในฐานข้อมูล แต่ถ้าซวยหน่อยก็อาจมีข้อมูลการเข้าระบบที่อยู่ในฐานข้อมูล ที่เอาไปใช้ทำอย่างอื่นต่อได้
- cloudflare ก็ไม่ได้ช่วยกัน sql injection ให้ได้ดีเท่าไหร่
- สุดท้ายถ้า code ยังรั่ว ยังไงมันก็ยังรั่วครับ ระบบป้องกันภายนอกดีแค่ไหนแต่ข้างในเน่าเฟะก็เท่านั้น เหมือนสร้างกำแพงล้อมบ้านอย่างดีแต่คนในบ้านติดเชื้อซอมบี้เดินไปมา
[direct=http://www.thzhost.com/]THZHost[/direct] SSD Hosting ไทย/สิงคโปร์ พร้อม firewall ป้องกันการยิงเว็บ + scan ไวรัสในเว็บ

@Roverpost

อ้างถึงจาก: icez ใน 26 ตุลาคม 2015, 22:21:07
- sql injection ไม่ทำให้ได้ code นะคัรบ โดยทั่วไปก็ได้แค่พวกข้อมูลในฐานข้อมูล แต่ถ้าซวยหน่อยก็อาจมีข้อมูลการเข้าระบบที่อยู่ในฐานข้อมูล ที่เอาไปใช้ทำอย่างอื่นต่อได้
- cloudflare ก็ไม่ได้ช่วยกัน sql injection ให้ได้ดีเท่าไหร่
- สุดท้ายถ้า code ยังรั่ว ยังไงมันก็ยังรั่วครับ ระบบป้องกันภายนอกดีแค่ไหนแต่ข้างในเน่าเฟะก็เท่านั้น เหมือนสร้างกำแพงล้อมบ้านอย่างดีแต่คนในบ้านติดเชื้อซอมบี้เดินไปมา

ครับคุณไอซ์ sql injec ทำให้ได้ database ไปครับ
สุดท้ายก็ต้องกลับมามองที่ Code ที่เราเขียนครับว่า ดีแล้วหรือยัง สำหรับผมแล้วต้องพัฒนาอีกเยอะ เก็บประสบการณ์ไปครับ ^+^
[direct=https://www.shibot.ai/sitemap.xml]Shibot[/direct] [direct=https://www.shibot.ai/]โปรแกรมแชทบอท[/direct] พร้อม[direct=https://www.shibot.ai/]ระบบไลฟ์สด[/direct] ที่สามารถเพิ่มยอดขายได้จริง

ossytong

#8
SQL INJECTION : คือการทำให้คำสั่ง SQL ที่จะนำไป Query กับ DB ถูกบิดเบือนเป็นค่าอื่นเพื่อหวังผลในการแสดงผลค่าที่ไม่ควรถูกนำมาแสดงออกมา เพื่อใช้เป็นช่องทางในการ exploit ต่อไป หรือ สามารถใช้คำสั่ง sql ในการเขียนไฟล์เพื่อ วาง backdoor หรือ Shell ลงไปได้

ทีนี้ Case ของ จขกท. ผมมีความเห็นประมาณนี้ครับ

1. CloudFlare ไม่ได้กัน SQL INJECTION ครับ
2. โอกาส Code หลุดที่เกิดจาก SQL INJECTION มีน้อยกว่าช่องโหว่ที่ จขกท. โดนวางไฟล์ Shell ลงไปจากนั้นถูก Download Code ทั้งหมด รวมถึง DB ออกมา

อย่างหลายกรณี ผมเองเคยลองไปดู พวก script ที่ขายๆกัน แล้วเค้าจะมี Demo ผมก็ลองเทสดูเลย วิ่งหาช่อง Upload แล้ว Up Shell ขึ้นไป หลายๆที่ upload ไปได้ซะงั้น ก็จบครับ
หรือเขียน Write ตรงๆไปได้เลยก็มีเพราะเปิด 777 ไว้ ก็สบายครับ

ผมสามารถ Download ทั้งหมดลงได้ทันทีด้วยซ้ำ ครับ
หรือ เกิดจาก XSS ที่เค้าแทรกเอาไว้ แล้วใช้เทคนิค Session Hijacking จากนั้นจะได้ Session Admin จากนั้นเค้าก็ เข้าใข้งานในสิทธิ Admin แล้วหาจุดที่วาง Shell ขึ้นไปก็เป็นไปได้ครับ

vii

อ้างถึงจาก: ossytong ใน 26 ตุลาคม 2015, 22:49:04
SQL INJECTION : คือการทำให้คำสั่ง SQL ที่จะนำไป Query กับ DB ถูกบิดเบือนเป็นค่าอื่นเพื่อหวังผลในการแสดงผลค่าที่ไม่ควรถูกนำมาแสดงออกมา เพื่อใช้เป็นช่องทางในการ exploit ต่อไป หรือ สามารถใช้คำสั่ง sql ในการเขียนไฟล์เพื่อ วาง backdoor หรือ Shell ลงไปได้

ทีนี้ Case ของ จขกท. ผมมีความเห็นประมาณนี้ครับ

1. CloudFlare ไม่ได้กัน SQL INJECTION ครับ
2. โอกาส Code หลุดที่เกิดจาก SQL INJECTION มีน้อยกว่าช่องโหว่ที่ จขกท. โดนวางไฟล์ Shell ลงไปจากนั้นถูก Download Code ทั้งหมด รวมถึง DB ออกมา

อย่างหลายกรณี ผมเองเคยลองไปดู พวก script ที่ขายๆกัน แล้วเค้าจะมี Demo ผมก็ลองเทสดูเลย วิ่งหาช่อง Upload แล้ว Up Shell ขึ้นไป หลายๆที่ upload ไปได้ซะงั้น ก็จบครับ
หรือเขียน Write ตรงๆไปได้เลยก็มีเพราะเปิด 777 ไว้ ก็สบายครับ

ผมสามารถ Download ทั้งหมดลงได้ทันทีด้วยซ้ำ ครับ
หรือ เกิดจาก XSS ที่เค้าแทรกเอาไว้ แล้วใช้เทคนิค Session Hijacking จากนั้นจะได้ Session Admin จากนั้นเค้าก็ เข้าใข้งานในสิทธิ Admin แล้วหาจุดที่วาง Shell ขึ้นไปก็เป็นไปได้ครับ

กรณี upload shell นี้ผมสงสัยว่า
ถ้าเขียนโค้ดกันตอนอัพโหลดไว้ โดยไม่ได้ตรวจแต่ extension อย่างเดียว แต่ตรวจ mime type ด้วย อย่างนี้จะยังบุกรุกเข้ามาโดยวิธีนี้ได้อีกไหมครับ?
เพราะผมดูใน Youtube วิดีโอนี้ https://www.youtube.com/watch?v=cADIR6Zrqjg แล้วก็สงสัยในขั้นตอน Live HTTP headers ว่ามันทำงานยังไง ถ้าใช้วิธีนี้ในแบบตรวจ mime type ด้วย จะรอดไหม? ถ้าไม่รอด ทางแก้คืออะไร?

amazegu

อ้างถึงจาก: vii ใน 27 ตุลาคม 2015, 09:25:06
อ้างถึงจาก: ossytong ใน 26 ตุลาคม 2015, 22:49:04
SQL INJECTION : คือการทำให้คำสั่ง SQL ที่จะนำไป Query กับ DB ถูกบิดเบือนเป็นค่าอื่นเพื่อหวังผลในการแสดงผลค่าที่ไม่ควรถูกนำมาแสดงออกมา เพื่อใช้เป็นช่องทางในการ exploit ต่อไป หรือ สามารถใช้คำสั่ง sql ในการเขียนไฟล์เพื่อ วาง backdoor หรือ Shell ลงไปได้

ทีนี้ Case ของ จขกท. ผมมีความเห็นประมาณนี้ครับ

1. CloudFlare ไม่ได้กัน SQL INJECTION ครับ
2. โอกาส Code หลุดที่เกิดจาก SQL INJECTION มีน้อยกว่าช่องโหว่ที่ จขกท. โดนวางไฟล์ Shell ลงไปจากนั้นถูก Download Code ทั้งหมด รวมถึง DB ออกมา

อย่างหลายกรณี ผมเองเคยลองไปดู พวก script ที่ขายๆกัน แล้วเค้าจะมี Demo ผมก็ลองเทสดูเลย วิ่งหาช่อง Upload แล้ว Up Shell ขึ้นไป หลายๆที่ upload ไปได้ซะงั้น ก็จบครับ
หรือเขียน Write ตรงๆไปได้เลยก็มีเพราะเปิด 777 ไว้ ก็สบายครับ

ผมสามารถ Download ทั้งหมดลงได้ทันทีด้วยซ้ำ ครับ
หรือ เกิดจาก XSS ที่เค้าแทรกเอาไว้ แล้วใช้เทคนิค Session Hijacking จากนั้นจะได้ Session Admin จากนั้นเค้าก็ เข้าใข้งานในสิทธิ Admin แล้วหาจุดที่วาง Shell ขึ้นไปก็เป็นไปได้ครับ

กรณี upload shell นี้ผมสงสัยว่า
ถ้าเขียนโค้ดกันตอนอัพโหลดไว้ โดยไม่ได้ตรวจแต่ extension อย่างเดียว แต่ตรวจ mime type ด้วย อย่างนี้จะยังบุกรุกเข้ามาโดยวิธีนี้ได้อีกไหมครับ?
เพราะผมดูใน Youtube วิดีโอนี้ https://www.youtube.com/watch?v=cADIR6Zrqjg แล้วก็สงสัยในขั้นตอน Live HTTP headers ว่ามันทำงานยังไง ถ้าใช้วิธีนี้ในแบบตรวจ mime type ด้วย จะรอดไหม? ถ้าไม่รอด ทางแก้คืออะไร?
ผมเคยโดน เช็ค mime แล้วยังไม่รอดครับ ต้อง file_get_contents เอามาเช็คเลยว่าข้างในวาง backdoor ไว้หรือเปล่า  :P :P :P

vii

#11
อ้างถึงจาก: amazegu ใน 27 ตุลาคม 2015, 09:59:32
อ้างถึงจาก: vii ใน 27 ตุลาคม 2015, 09:25:06
อ้างถึงจาก: ossytong ใน 26 ตุลาคม 2015, 22:49:04
SQL INJECTION : คือการทำให้คำสั่ง SQL ที่จะนำไป Query กับ DB ถูกบิดเบือนเป็นค่าอื่นเพื่อหวังผลในการแสดงผลค่าที่ไม่ควรถูกนำมาแสดงออกมา เพื่อใช้เป็นช่องทางในการ exploit ต่อไป หรือ สามารถใช้คำสั่ง sql ในการเขียนไฟล์เพื่อ วาง backdoor หรือ Shell ลงไปได้

ทีนี้ Case ของ จขกท. ผมมีความเห็นประมาณนี้ครับ

1. CloudFlare ไม่ได้กัน SQL INJECTION ครับ
2. โอกาส Code หลุดที่เกิดจาก SQL INJECTION มีน้อยกว่าช่องโหว่ที่ จขกท. โดนวางไฟล์ Shell ลงไปจากนั้นถูก Download Code ทั้งหมด รวมถึง DB ออกมา

อย่างหลายกรณี ผมเองเคยลองไปดู พวก script ที่ขายๆกัน แล้วเค้าจะมี Demo ผมก็ลองเทสดูเลย วิ่งหาช่อง Upload แล้ว Up Shell ขึ้นไป หลายๆที่ upload ไปได้ซะงั้น ก็จบครับ
หรือเขียน Write ตรงๆไปได้เลยก็มีเพราะเปิด 777 ไว้ ก็สบายครับ

ผมสามารถ Download ทั้งหมดลงได้ทันทีด้วยซ้ำ ครับ
หรือ เกิดจาก XSS ที่เค้าแทรกเอาไว้ แล้วใช้เทคนิค Session Hijacking จากนั้นจะได้ Session Admin จากนั้นเค้าก็ เข้าใข้งานในสิทธิ Admin แล้วหาจุดที่วาง Shell ขึ้นไปก็เป็นไปได้ครับ

กรณี upload shell นี้ผมสงสัยว่า
ถ้าเขียนโค้ดกันตอนอัพโหลดไว้ โดยไม่ได้ตรวจแต่ extension อย่างเดียว แต่ตรวจ mime type ด้วย อย่างนี้จะยังบุกรุกเข้ามาโดยวิธีนี้ได้อีกไหมครับ?
เพราะผมดูใน Youtube วิดีโอนี้ https://www.youtube.com/watch?v=cADIR6Zrqjg แล้วก็สงสัยในขั้นตอน Live HTTP headers ว่ามันทำงานยังไง ถ้าใช้วิธีนี้ในแบบตรวจ mime type ด้วย จะรอดไหม? ถ้าไม่รอด ทางแก้คืออะไร?
ผมเคยโดน เช็ค mime แล้วยังไม่รอดครับ ต้อง file_get_contents เอามาเช็คเลยว่าข้างในวาง backdoor ไว้หรือเปล่า  :P :P :P
แปลกจัง เช็คด้วย finfo_file() รึเปล่าครับ?
เพราะว่า finfo_file กับ getimagesize จะเป็นการอ่านค่า mime type จากในไฟล์โดยตรง ไม่ใช่จาก $_FILES
และตัว getimagesize จะเป็นการหาค่าขนาดภาพได้ด้วย
แต่ผมก็ไม่แน่ใจกับการอัพโหลด shell เพราะในวิดีโอดังกล่าวมันมีการ replay ได้ด้วยโดยเปลี่ยนนามสกุลไฟล์เอาเลยจาก header เลยไม่มั่นใจว่าทั้งสองอย่างจะกันได้มั้ยน่ะครับ

@Roverpost

อ้างถึงจาก: vii ใน 27 ตุลาคม 2015, 11:05:09
อ้างถึงจาก: amazegu ใน 27 ตุลาคม 2015, 09:59:32
อ้างถึงจาก: vii ใน 27 ตุลาคม 2015, 09:25:06
อ้างถึงจาก: ossytong ใน 26 ตุลาคม 2015, 22:49:04
SQL INJECTION : คือการทำให้คำสั่ง SQL ที่จะนำไป Query กับ DB ถูกบิดเบือนเป็นค่าอื่นเพื่อหวังผลในการแสดงผลค่าที่ไม่ควรถูกนำมาแสดงออกมา เพื่อใช้เป็นช่องทางในการ exploit ต่อไป หรือ สามารถใช้คำสั่ง sql ในการเขียนไฟล์เพื่อ วาง backdoor หรือ Shell ลงไปได้

ทีนี้ Case ของ จขกท. ผมมีความเห็นประมาณนี้ครับ

1. CloudFlare ไม่ได้กัน SQL INJECTION ครับ
2. โอกาส Code หลุดที่เกิดจาก SQL INJECTION มีน้อยกว่าช่องโหว่ที่ จขกท. โดนวางไฟล์ Shell ลงไปจากนั้นถูก Download Code ทั้งหมด รวมถึง DB ออกมา

อย่างหลายกรณี ผมเองเคยลองไปดู พวก script ที่ขายๆกัน แล้วเค้าจะมี Demo ผมก็ลองเทสดูเลย วิ่งหาช่อง Upload แล้ว Up Shell ขึ้นไป หลายๆที่ upload ไปได้ซะงั้น ก็จบครับ
หรือเขียน Write ตรงๆไปได้เลยก็มีเพราะเปิด 777 ไว้ ก็สบายครับ

ผมสามารถ Download ทั้งหมดลงได้ทันทีด้วยซ้ำ ครับ
หรือ เกิดจาก XSS ที่เค้าแทรกเอาไว้ แล้วใช้เทคนิค Session Hijacking จากนั้นจะได้ Session Admin จากนั้นเค้าก็ เข้าใข้งานในสิทธิ Admin แล้วหาจุดที่วาง Shell ขึ้นไปก็เป็นไปได้ครับ

กรณี upload shell นี้ผมสงสัยว่า
ถ้าเขียนโค้ดกันตอนอัพโหลดไว้ โดยไม่ได้ตรวจแต่ extension อย่างเดียว แต่ตรวจ mime type ด้วย อย่างนี้จะยังบุกรุกเข้ามาโดยวิธีนี้ได้อีกไหมครับ?
เพราะผมดูใน Youtube วิดีโอนี้ https://www.youtube.com/watch?v=cADIR6Zrqjg แล้วก็สงสัยในขั้นตอน Live HTTP headers ว่ามันทำงานยังไง ถ้าใช้วิธีนี้ในแบบตรวจ mime type ด้วย จะรอดไหม? ถ้าไม่รอด ทางแก้คืออะไร?
ผมเคยโดน เช็ค mime แล้วยังไม่รอดครับ ต้อง file_get_contents เอามาเช็คเลยว่าข้างในวาง backdoor ไว้หรือเปล่า  :P :P :P
แปลกจัง เช็คด้วย finfo_file() รึเปล่าครับ?
เพราะว่า finfo_file กับ getimagesize จะเป็นการอ่านค่า mime type จากในไฟล์โดยตรง ไม่ใช่จาก $_FILES
และตัว getimagesize จะเป็นการหาค่าขนาดภาพได้ด้วย
แต่ผมก็ไม่แน่ใจกับการอัพโหลด shell เพราะในวิดีโอดังกล่าวมันมีการ replay ได้ด้วยโดยเปลี่ยนนามสกุลไฟล์เอาเลยจาก header เลยไม่มั่นใจว่าทั้งสองอย่างจะกันได้มั้ยน่ะครับ

นั่นหมายความว่า ถ้าเกิดไฟล์ shell ถูกอัพโหลดขึ้นไปแล้ว มีการเปิดไฟล์ขึ้น การเข้าถึง Path ใน server ก็จะสำเร็จใช่ไหมครับ แต่ถ้าไม่ได้ทำการเปิดไฟล์ ก็จะไม่เกิดอะไรใช่ไหครับ
[direct=https://www.shibot.ai/sitemap.xml]Shibot[/direct] [direct=https://www.shibot.ai/]โปรแกรมแชทบอท[/direct] พร้อม[direct=https://www.shibot.ai/]ระบบไลฟ์สด[/direct] ที่สามารถเพิ่มยอดขายได้จริง

icez

getimagesize เจอฝัง php shell มากับ gif /jpeg comment ก็ไม่รอดครับ

แต่โดยหลักการบน server ผมจะบังคับว่าถ้า php จะทำงานต้องนามสกุล .php เท่านั้น ถ้าอัพมาเป็นนามสกุลอย่างอื่นอย่าหวังว่ามันจะไปเรียก php ให้ทำงานขึ้นมา แบบนี้ก็โล่งไปเยอะครับ
[direct=http://www.thzhost.com/]THZHost[/direct] SSD Hosting ไทย/สิงคโปร์ พร้อม firewall ป้องกันการยิงเว็บ + scan ไวรัสในเว็บ

smapan

#14
อ้างถึงจาก: icez ใน 27 ตุลาคม 2015, 14:38:06
getimagesize เจอฝัง php shell มากับ gif /jpeg comment ก็ไม่รอดครับ

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

ขอบคุณที่ เตือนครับ  :laugh:

ถ้าใครยังไม่เข้าใจลองค้นหา "comment exif image" ดูครับ
[direct=http://cp.siamhostweb.com/cart.php?gid=1]จูมล่าโฮส สยามโฮสเว็บ[/direct] [direct=http://www.modty.com]modty.com[/direct]
[direct=http://www.apartment.in.th]รวมที่พัก เช่ารายวัน ที่พักเช่ารายเดือนมากที่สุดแจ่มจริง[/direct]
***Tel 083-757-1515 ติดปัญหา Joomla ตรงไหนรับปรึกษาฟรี โทรมาเถอะครับ ถ้าตอบได้ช่วยแน่นอน ไม่มีกั้ก. ***


h8

อ้างถึงจาก: 2T^d ใน 27 ตุลาคม 2015, 11:10:35
อ้างถึงจาก: vii ใน 27 ตุลาคม 2015, 11:05:09
อ้างถึงจาก: amazegu ใน 27 ตุลาคม 2015, 09:59:32
อ้างถึงจาก: vii ใน 27 ตุลาคม 2015, 09:25:06
อ้างถึงจาก: ossytong ใน 26 ตุลาคม 2015, 22:49:04
SQL INJECTION : คือการทำให้คำสั่ง SQL ที่จะนำไป Query กับ DB ถูกบิดเบือนเป็นค่าอื่นเพื่อหวังผลในการแสดงผลค่าที่ไม่ควรถูกนำมาแสดงออกมา เพื่อใช้เป็นช่องทางในการ exploit ต่อไป หรือ สามารถใช้คำสั่ง sql ในการเขียนไฟล์เพื่อ วาง backdoor หรือ Shell ลงไปได้

ทีนี้ Case ของ จขกท. ผมมีความเห็นประมาณนี้ครับ

1. CloudFlare ไม่ได้กัน SQL INJECTION ครับ
2. โอกาส Code หลุดที่เกิดจาก SQL INJECTION มีน้อยกว่าช่องโหว่ที่ จขกท. โดนวางไฟล์ Shell ลงไปจากนั้นถูก Download Code ทั้งหมด รวมถึง DB ออกมา

อย่างหลายกรณี ผมเองเคยลองไปดู พวก script ที่ขายๆกัน แล้วเค้าจะมี Demo ผมก็ลองเทสดูเลย วิ่งหาช่อง Upload แล้ว Up Shell ขึ้นไป หลายๆที่ upload ไปได้ซะงั้น ก็จบครับ
หรือเขียน Write ตรงๆไปได้เลยก็มีเพราะเปิด 777 ไว้ ก็สบายครับ

ผมสามารถ Download ทั้งหมดลงได้ทันทีด้วยซ้ำ ครับ
หรือ เกิดจาก XSS ที่เค้าแทรกเอาไว้ แล้วใช้เทคนิค Session Hijacking จากนั้นจะได้ Session Admin จากนั้นเค้าก็ เข้าใข้งานในสิทธิ Admin แล้วหาจุดที่วาง Shell ขึ้นไปก็เป็นไปได้ครับ

กรณี upload shell นี้ผมสงสัยว่า
ถ้าเขียนโค้ดกันตอนอัพโหลดไว้ โดยไม่ได้ตรวจแต่ extension อย่างเดียว แต่ตรวจ mime type ด้วย อย่างนี้จะยังบุกรุกเข้ามาโดยวิธีนี้ได้อีกไหมครับ?
เพราะผมดูใน Youtube วิดีโอนี้ https://www.youtube.com/watch?v=cADIR6Zrqjg แล้วก็สงสัยในขั้นตอน Live HTTP headers ว่ามันทำงานยังไง ถ้าใช้วิธีนี้ในแบบตรวจ mime type ด้วย จะรอดไหม? ถ้าไม่รอด ทางแก้คืออะไร?
ผมเคยโดน เช็ค mime แล้วยังไม่รอดครับ ต้อง file_get_contents เอามาเช็คเลยว่าข้างในวาง backdoor ไว้หรือเปล่า  :P :P :P
แปลกจัง เช็คด้วย finfo_file() รึเปล่าครับ?
เพราะว่า finfo_file กับ getimagesize จะเป็นการอ่านค่า mime type จากในไฟล์โดยตรง ไม่ใช่จาก $_FILES
และตัว getimagesize จะเป็นการหาค่าขนาดภาพได้ด้วย
แต่ผมก็ไม่แน่ใจกับการอัพโหลด shell เพราะในวิดีโอดังกล่าวมันมีการ replay ได้ด้วยโดยเปลี่ยนนามสกุลไฟล์เอาเลยจาก header เลยไม่มั่นใจว่าทั้งสองอย่างจะกันได้มั้ยน่ะครับ

นั่นหมายความว่า ถ้าเกิดไฟล์ shell ถูกอัพโหลดขึ้นไปแล้ว มีการเปิดไฟล์ขึ้น การเข้าถึง Path ใน server ก็จะสำเร็จใช่ไหมครับ แต่ถ้าไม่ได้ทำการเปิดไฟล์ ก็จะไม่เกิดอะไรใช่ไหครับ

Path ใน server  ถ้าเป็น cloud แท้ จะเปลี่ยนทางตลอดที่ถูกเรียก
ถ้าหากยังหา  Path  ได้ แสดงว่า เป็น cloud เทียม
[direct=https://support-teams.appspot.com/th.php]Google App Engine  Deploy & Wordpress [/direct]
[direct=https://searchletsgo.appspot.com][direct=https://goo.gl/5oGzRN]

vii

อ้างถึงจาก: icez ใน 27 ตุลาคม 2015, 14:38:06
getimagesize เจอฝัง php shell มากับ gif /jpeg comment ก็ไม่รอดครับ

แต่โดยหลักการบน server ผมจะบังคับว่าถ้า php จะทำงานต้องนามสกุล .php เท่านั้น ถ้าอัพมาเป็นนามสกุลอย่างอื่นอย่าหวังว่ามันจะไปเรียก php ให้ทำงานขึ้นมา แบบนี้ก็โล่งไปเยอะครับ
คาราวะ 1 thanks