ที่มา : zone-it.com, unixwiz.net
# Code injection : เป็นเทคนิคที่สามารถทำให้โค้ด ทำงานอย่างอื่นได้นี่เป็นเทคนิคที่พวกแฮกเกอร์ และแครกเกอร์ใช้เป็นประจำเพื่อที่จะเข้าไปยังระบบโดยไม่ได้อนุญาติ
ตัวอย่างการ Injection
# SQL Injection
# มีเว็บเพจอยู่หน้าหนึ่ง มีช่องสองช่อง ให้ผู้ใช้ใส่ Username และ Password
# เบื้องหลังโปรแกรมนั้น จะรันคำสั่ง SQL เพื่อเช็ครหัสผ่านของผู้ใช้
SELECT Username FROM Users
WHERE username = '$username' AND password = '$password'
# ถ้าเราใส่ข้อมูลว่า username เป็น someone และใส่ password เป็น ' OR 1 = '1 คำสั่ง SQL จะเป็น
SELECT Username FROM Users
WHERE username = 'someone' AND password = ' ' OR 1 ='1'
# จากคำสั่งที่เห็น มันจะส่งค่าที่เป็นจริงมาเสมอครับ
# การป้องกันเบื้องต้น
1. หลีกเลี่ยงตัวเเปรเเบบ Global
2. พยายามใช้หน้าใดหน้านึงเป็นหน้าหลักเเล้วค่อย Include หน้าอื่นเอา
3. หมั่นกรองตัวแปร string ด้วย htmlentities( ) strip_tags( ) utf8_decode( ) htmlspecialchars ( )
add/stripslashes ( ) md5 ( ) escapeshellcmd ( ) ฯลฯ
4. รัดกุม หรือ หลีกเลี่ยง เรื่อง cross-site scripting หรือพวก ระบบ back-end
5. เน้น Define ( ค่าคงที่ ) แต่ ลด Session
6. ใช้การ encrypt / decrypt เข้ามาช่วยในการเก็บข้อมูลใน DB
7. เป็นไปได้ให้ เช็ค ip ของผู้เข้าใช้ ส่วนของ admin เลยยิ่งดี
# PHP Injection
สมมติเรามีโค้ด
<form>
<select name="COLOR"> <option value="red">red <option value="blue">blueการป้องกัน - หรองข้อมูลให้เป็นอย่างใดอย่างนึงเท่านั้น
# Shell Injection : การทำให้โค้ด รับโปรแกรม Unix เอง อย่างเช่น เราเขียนโปรแกรมมาให้มันส่งข้อความจากโปรแกรม funnytext
# โปรแกรมนี้ สามารถ Inject ได้หลายวิธีครับ
`command` จะรันคำสั่งอีกคำสั่งได้
$(command) จะรันคำสั่งอีกคำสั่งได้
;command จะรันคำสั่งอีกคำสั่งได้ และส่งค่ากลับไปยังเซอร์เวอร์
command จะรันคำสั่งอีกคำสั่งได้ และส่งค่ากลับไปยังเซอร์เวอร์
command จะรันคำสั่งอีกคำสั่งได้ และส่งค่ากลับไปยังเซอร์เวอร์
&& command จะรันคำสั่งอีกคำสั่งได้ และส่งค่ากลับไปยังเซอร์เวอร์
> /home/user/phpguru/.bashrc จะเป็นการแก้ไฟล์ /home/user/phpguru/.bashrc ด้วยคำแปลกๆ ที่ผู้ใช้ส่งไป
< /home/user/phpguru/.bashrc จะเป็นการนำไฟล์ /home/user/phpguru/.bashrc มาเป็น command line
# Cross site scripting (XSS) : Cross Site Scripting เป็นการรันข้อมูลอันตรายบนเว็บอีกแบบ มันเคยมีตัวย่อว่า CSS แต่ว่า มันซ้ำกับ , Cascading Style Sheets และก้อ Content-Scrambling System จึงเปลี่ยนชื่อเป็น XSS
# เหตุการจำลอง
XSS แบบที่ 0
1. แมลอรี่ส่งลิ้งค์ไปให้อลิซ ไม่ว่าจะโดย e-mail หรือ msn หรืออะไรก้อตาม ลิ้งค์นั้นเป็นเว็บที่มีโค้ดไม่ดีอยู่
2. อลิซ คลิกที่ลิ้งค์
3. JavaScript ในเพจนั้น รันข้อมูล และลงโปรแกรมต่างๆ ในเครื่อง
4. โปรแกรมสามารถรันในเครื่องได้เลย
5. โปรแกรมสามารถเจาะข้อมูลต่างๆ ได้หมด
XSS แบบที่ 1
1. อลิสเข้าเว็บหนึ่งเป็นประจำ เป็นเว็บของบ๊อบ
2. แมลอรี่รู้ว่าเว็บบองลบ๊อบ มีรูรั่ว XSS
3. แมลอรี่เข้าสู่ระบบผู้ควบคุมแล้วส่งลิ้งค์ไปให้อลิซ โดยที่ให้เหมือนว่าส่งมาจากบ๊อบ
4. อลิซคลิกที่ลิ้งค์
5. หากโปรแกรมอยู่บนโดเมนของบ๊อม โปรแกรมสามารถที่จะส่งข้อมูล เช่น รายการสั่งซื้อ รหัว เครติต หรือข้อมูลในการล๊อกอินได้ หรือไม่ โปรแกรมมาจจะลงข้อมูลต่างๆ ก้อได้
XSS แบบที่ 3
1. บ๊อบโฮสต์เว็บบอร์ดไว้
2. แมลอรี่รู้ว่าเว็บบองลบ๊อบ มีรูรั่ว XSS คือข้อมูลที่พิมพ์ลงไป ไม่ผ่าน HTMLSpecialChars
3. แมลอรี่ส่งลิ้งค์โค้ดไปยังเว็บบอร์ด แล้วตั้งหัวข้อให้คนมาอ่าน
4. พอคนเข้ามาดู โปรแกรมจะ.....
# โค้ดที่สามารถให้ในการ Injection สามารถดูได้ที่เว็บนี้ ha.ckers.org
No comments:
Post a Comment