ผมขออธิบายง่ายๆนะครับ สำหรับความรู้ด้าน security นี้ กล่าวคือ
XSS เป็น script ที่ใช้ javascript ใส่ต่อไปในfile ที่เรียกขึ้นมาเพื่อที่จะส่งข้อมูล(cookie) ไปให้ file บันทึกไว้ ซึ่งหากคุณเป็น admin แน่นอนว่า คุ๊กกี้ admin ของคุณจะตกไปอยู่ในมือเขาผู้นั้น ซึ่งหากเขาปลอมคุ๊กกี้เข้าเว็บคุณมา ผลที่ได้ เขาก็มี สิทธิ แอดมินของคุณและ ปลอมเป็นคุณไปในทันที ซึ่ง เจ้า XSS นีผมได้เอาลองกับ Hi5 ที่กำลัง โด่งดังแล้ว ปรากฏว่าสามารถใช้งานได้ และจากการทดสอบ ผมสามารถที่จะ เข้าไปแก้ไข โปรไฟล์ของคนนั้นๆได้ ทุกอย่างที่เขาสามารถทำได้ด้วยหลักการง่ายๆโดยใช้
document.cookie
ในjavascript ส่งต่อไปให้ไฟล์ php ซึ่งผู้ไม่หวังดีอาจจะเขียน ไว้ในลักษณะ การรับค่าตัวแปร $_GET เข้ามาเพื่อที่จะ บันทกข้อมูลคุ๊กกี้เหล่านั้นมาเป็น file text หรือ ลง database เลยก็ได้
ส่วนวิธีการใช้งานนั้นก็ต้องประยุกต์กันไปตามสถาณะการ แต่หลักๆคือทำยังไงก็ได้ให้มันสามารถส่งข้อมูล cookie ไปยัง save ยัง file ปลายทางของเรา (ผู้เคราะห์ร้าย อาจจะรู้ตัวหรือไม่นั้นก็ขึ้นอยู่กับผู้ไม่ประสงค์ดีอีกที)
ข้างบนบางคนอ่านแล้วอาจจะงงๆสักนะครับ เดี่ยวผมขอยกตัวอย่าง ที่ผมลองทำกับ hi5(ตอนนี้ เอาออกแล้ว) ให้ดูนะครับ
- หาวิธี ใส่ html และ javascript ลงในหน้า profile ของเราให้ได้
- ใช้ <iframe src="xss file+cookie"></iframe>
- ซ่อน iframe ไม่ให้แสดงผล ออกมาให้เห็น (อาจจะใ่ส่ width=1 height=1 border=0)
- เอา xss script นี้ไปใส่ในหน้าprofile
ตามข้างบนครับ เมื่อ คุณหรือใครเข้ามาใน profile ของผม ก็จะทำให้ cookie ของคุณถูกส่งไปที่ไฟล์ที่ผมเขียนไว้ ซึ่งมันจะบันทึกคุ๊กกี้ของเก็บไว้รอผม มาปลอมอีกที โดนที่คุณไม่รู้ตัวเลยว่าคุณโดนขโมยคุ๊กกี้ไปเรียบร้อยแล้ว และหากผมปลอมคุ๊กกี้ของคุณขึ้นมาผมก็สามารถ ใช้งาน account ของคุณได้เหมือนว่าผมเป็น เจ้าของ account เอง
วิธี ป้องกันสำหรับ user
- ปิด javascript ซะ
วิธีป้องกันสำหรับ Webmaster
- หาวิธีที่ทำให้ javascript ไม่สามารถทำงานได้เมื่อโพสโดย user เช่น ในphp htmlspecialchars() และอื่นๆ เลือกใช้ได้ตามชอบครับ ฯลฯ
วิธีแก้ไข เมื่อโดนขโมยคุ๊กกี้
- ตอนนี้ยังไม่มี
ปล.ผมไม่ใช่ hacker,creacker หรอกนะ เพียงแต่ผมต้องให้ทราบเรื่องราวด้านความปลอดภัยกันบ้าง และก็บางทีอาจจะมี พวก hacker(Cracker) แอบทำกันแล้ว แต่คุณไม่รู้ เลยเอามา เผยแพร่ให้รู้กัน จะได้ไม่ตกเป็น เหยื่อ ให้โดน ยึดเอาง่ายๆครับ
ส่วน code จริงๆนั้นผมขอไม่เอามาเผยแพร่นะครับ สำหรับใครที่อยาก hack ก็ลองใช้การหาข้อมูลเอาเองดีกว่า(ผมว่าข้างบนนั้น คุณก็น่าจะคิดออกแล้วครับ)