Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > PHP > PHP Forum > ช่วยอธิบาย ช่องโหว่ใน PHP ที่เกิดจากฟังก์ชัน htmlspecialchars() และ htmlentities()



 

ช่วยอธิบาย ช่องโหว่ใน PHP ที่เกิดจากฟังก์ชัน htmlspecialchars() และ htmlentities()

 



Topic : 067351



โพสกระทู้ ( 5 )
บทความ ( 0 )



สถานะออฟไลน์




ช่วยอธิบาย ช่องโหว่ใน PHP ที่เกิดจากฟังก์ชัน htmlspecialchars() และ htmlentities() ทำให้เกิด heap overflow ใน php เวอร์ชั่นที่ต่ำกว่า 5.1.6

คือผมจะทำโปรเจคเกี่ยวกับ php Security อย่ากทราบเรื่องนี้ครับ ว่าต้องใส่ตัวอักษรอะไรหรือทำอย่างไรถึกจะเกิด heap overflow ใน php วอร์ชั่นที่ต่ำกว่า 5.1.6 ครับ ช่วยหน่อยนะครับ ตามหามาหลายวันแล้วครับ



Tag : PHP







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2011-09-29 16:57:05 By : ACM View : 2268 Reply : 7
 

 

No. 1



โพสกระทู้ ( 5 )
บทความ ( 0 )



สถานะออฟไลน์


ไม่มีใครทราบเลยหรอครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-29 21:11:19 By : ACM
 


 

No. 2



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

เท่าที่เจอคือจะเป็น SQL injection ครับ

เช่น

Code (PHP)
$strSQL = " SELECT * FROM table WHERE User = '".$_POST["txtUser"]."' AND  Password = '".$_POST["txtPassword"]."' ";


ปกติถ้าค่า 2 ตัวนี้ว่างมันจะได้เป็น

Code
SELECT * FROM table WHERE User = '' AND Password = '';


ซึ่งไม่มีค่าที่กำหนด และวิธีการ injection จะใส่การส่งค่า ' or '1'='1 เมื่อนำไปใช้กับ SQL Statement


SELECT * FROM table WHERE User = ' ' or '1'='1' AND Password = '';

จะเห็นว่า or '1'='1' ได้เงื่อนไขถูกต้องทันที




Code
statement := "SELECT * FROM userinfo WHERE id = " + a_variable + ";"


ใส่ 1;DROP TABLE users

Code
SELECT * FROM userinfo WHERE id=1;DROP TABLE users;


แบบนี้น่ากลัวมาก
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-29 21:22:02 By : webmaster
 

 

No. 3



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

ลองอ่านบทความ SQL_injection ดูครับ http://en.wikipedia.org/wiki/SQL_injection ส่วน Head Overflow มันเป็นยังไงครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-29 21:22:57 By : webmaster
 


 

No. 4



โพสกระทู้ ( 5 )
บทความ ( 0 )



สถานะออฟไลน์


ขอบคุณมากครับ
แต่ heap overflow มันเกิดจาก error ของ ฟังก์ชัน htmlspecialchars() และ htmlentities() ใน php วอร์ชั่นที่ต่ำกว่า 5.1.6
ดูที่นี้นะครับ http://www.compspot.net/index.php?option=com_content&task=view&id=210&Itemid=49


ประวัติการแก้ไข
2011-09-29 22:54:45
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-29 22:51:15 By : ACM
 


 

No. 5



โพสกระทู้ ( 4,756 )
บทความ ( 8 )



สถานะออฟไลน์


http://en.wikipedia.org/wiki/Heap_overflow
A heap overflow is a type of buffer overflow that occurs in the heap data area. Heap overflows are exploitable in a different manner to that of stack-based overflows. Memory on the heap is dynamically allocated by the application at run-time and typically contains program data. Exploitation is performed by corrupting this data in specific ways to cause the application to overwrite internal structures such as linked list pointers. The canonical heap overflow technique overwrites dynamic memory allocation linkage (such as malloc meta data) and uses the resulting pointer exchange to overwrite a program function pointer.


น่าจะเป็นอะไรที่เกี่ยวกับหน่วยความจำ ประมาณว่าใส่โค้ดเข้ามาใน input ทำให้โปรแกรม error หน่วยความจำล้น เกิดช่องโหว่ให้ใช้คำสั่ง execute code อะไรแบบนี้

ถ้าเป็นอย่างนี้ปัญหาอยู่ที่ php ไม่ใช่เราผู้เขียนโค้ด
คนดูแล server ต้องคอยอัปเดท php ใหม่ๆเสมอ

ตัวอย่างโค้ดโจมตี หาไม่เจอ แต่ลองดูในนี้ไม่รู้จะมีรึเปล่า ไม่ได้อ่านละเอียด
http://bugs.php.net/bug.php?id=44872
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-29 23:19:50 By : mr.v
 


 

No. 6



โพสกระทู้ ( 5 )
บทความ ( 0 )



สถานะออฟไลน์


ขอบคุณมากๆครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-09-30 10:06:15 By : ACM
 


 

No. 7

Guest


อธิบาย Heap Overflow แบบเข้าใจง่ายๆ ก็แล้วกันครับ Heap Overflow จริงๆ แล้วมันช่องโหว่ที่เกิดจากพฤติกรรมของการคืนค่าหน่วยความจำครับ โดยเมื่อระบบปฏิบัติการมีการคืนค่าหน่อยความจำกลับมาก้อนหนึ่ง ในก้อนนั้นจะประกอบด้วย header ของหน่วยความจำก้อนนั้น ซึ่งจะระบุส่วนของพื้นที่ที่ถูกคืนค่าให้ระบบปฏิบัติการได้รู้ ว่าเป็นพื้นที่ใด ขนาดเท่าใด การที่หน่วยความจำ heap ถูกเขียนจนเกินพื้นที่ จะส่งผลให้ header ของหน่วยความจำก้อนถัดไปที่วางอยู่ติดกัน ถูกเขียนทับ เมื่อมีการคืนค่าหน่วยความจำ ก็จะทำให้ระบบปฏิบัติการพยายามคืนค่าหน่วยความจำผิดเพี้ยนไปจากตอนที่ขอหน่วยความจำไว้ ทีนี้ แฮกเกอร์ จะใช้พฤติกรรมแบบนี้แหละครับ โดยการเขียนโค้ดเข้าไปเพื่อให้เกิดพฤติกรรมการคืนค่าหน่วยความจำ heap แบบผิดเพี้ยน และเข้าไปแก้ไข header ของหน่วยความจำนั้น โดยการแก้ค่า fd(forward poiter) โดยปกติค่านี้จะทำการชี้บอกให้ระบบปฏิบัติการรู้ว่า หน่วยความจำก้อนถัดไปอยู่ตรงไหน และค่า bk(back - pointer) ซึ่งเป็นค่าที่จะบอกให้ระบบปฏิบัติการรู้ว่า หน่วยความจำก่อนหน้าอยู่ตรงไหน เมื่อค่าของ fd และ bk ถูกแก้ แฮกเกอร์ก็จะสามารถชี้ไปยังตำแหน่งใดๆ ก็ได้ เพื่อเปลี่ยนค่าตารางพอยเตอร์ ซึ่งก็จะทำให้ไปเรียกฟังก์ชั่นใดๆ ที่แฮกเกอร์ต้องการได้นั่นเองแหละครับ ^^
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-05-22 02:45:32 By : zeroray
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ช่วยอธิบาย ช่องโหว่ใน PHP ที่เกิดจากฟังก์ชัน htmlspecialchars() และ htmlentities()
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 01
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่