ช่องโหว่ Serialization ใน PHP โจมตีผ่าน Stream Wrapper “Phar://”

โพสต์นี้เป็นการ update ตัวเองเกี่ยวกับช่องโหว่ serializtion ที่ทาง @Sam Thomas  เจอและนำมาพูดในงาน Blackhat USA 2018 ช่วงสัปดาห์ที่ผ่านมา ก็เลยเอามาสรุปซักหน่อยครับ (หากใครไม่รู้จัก Serialization แนะนำให้ไปอ่านใน link นี้ก่อนครับ) โดยปกติแล้ว พวก function fopen(), copy(), file_exists() และ filesize() มีการ support wrapper ต่างๆมากมายโดย default มาตั้งแต่…
View Post

เรียนรู้ Python Deserialization

ก่อนหน้านี้เราพูดถึง Java และ Php Serialization มาแล้ว คราวนี้มาพูดถึง Python Serialization กันบ้าง *** หากใครงสัยว่า serialization เป็นยังไง กลับไปอ่านที่ Php serializaion แทนละกันครับ มาดูพฤติกรรมปกติกันก่อน ในที่นี้เราจะใช้ pickle ในการทำ serialization object กัน ตัว app จะทำการสร้าง serialization จาก my_data…
View Post

อธิบาย Java Serialization (OWASP A8:2017-Insecure Deserialization – Part 2)

หลังจากอธิบาย PHP Serialization ไปแล้ว ก็มาต่อกับ Java Serialization กันครับ โดยในโพสต์นี้ผมจะไม่ได้โพสต์เริ่มใหม่นะครับ เพราะได้อธิบายหลักการของ Serialization และ Unserialization ไปหมดแล้ว แต่จะมาอธิบายความแตกต่างระหว่าง PHP กับ Java ว่ามีลักษณะในการทำ Serialization และ Unserialization แตกต่างกันยังไงแค่นั้นครับ ตัวอย่าง Code ของการทำ Serialization ใน Java ตัว…
View Post

อธิบาย PHP Serialization (OWASP A8:2017-Insecure Deserialization)

ใน OWASP Top 10 มีความเสี่ยงหนึ่งที่ถูกเพิ่มเข้ามานั่นคือ A8:2017-Insecure Deserializationซึ่งเป็นช่องโหว่ที่ไม่พบมากนัก แต่ก็ถือว่าเป็นช่องโหว่อีกช่องโหว่หนึ่งที่รุนแรงมากเช่นกัน เรามาดูกันดีกว่าว่ามันคืออะไรครับ PHP Object  จาก Class จะเห็นถึงการสร้าง PHP Object จาก class นะครับ และมีการเรียกใช้ฟังก์ชั่น PrintVariable() จาก class ที่ถูกสร้างมา ทีนี้ Class นั้นสามารถมี function ที่เรียกว่า Magic function…
View Post