Hướng dẫn htmlentities bypass - bỏ qua htmlentities

Nhà nghiên cứu an ninh Paulos Yibelo đã chia sẻ cách anh ta bỏ qua HTMLEntentity ().

Vâng, tôi không biết cách phá vỡ nó cho bạn, bạn chỉ có thể (nếu chức năng được sử dụng đúng cách và chính xác là nơi cần thiết). Nhưng nó có thể có nhiều khả năng rằng hầu hết các nhà phát triển không sử dụng nó đúng cách, vì nó giống như một tiêu chuẩn đối với một số nhà phát triển không sử dụng các chức năng tích hợp đúng cách: p. Vì vậy, tôi sẽ nói về một số trường hợp tôi đã đưa ra trong khi bị dồn nén. HTMLENTITY () và HTMLSPECAILCHARS () là các hàm chủ yếu được phát triển để lọc các cuộc tấn công kịch bản trang web chéo.htmlentities() and htmlspecailchars() are functions mainly developed to filter out cross site scripting attacks.

Hướng dẫn htmlentities bypass - bỏ qua htmlentities
But I can promise you that you can build a better function if your user input is massive since that’s when most exploitation scenarios begin. How? Well, the functions html entity the characters < , > “ and ‘. So without those there seems there is no XSS. Or isn’t really? Well, I can think of one. Something like javascript:alert(1); will be executed since none of the characters in it are filtered to be html entityed… but there is a limitation to this. Without using “> or any similar technique we will not be able to break out of the attribute we are inside.

Ngoài ra, thuộc tính giá trị trong HTML không dễ bị tổn thương vì nó chỉ chấp nhận các chuỗi và chúng tôi cần các tập lệnh có thể thực hiện một thứ gì đó như href, Onclick sẽ làm điều đó nhưng ai sẽ đặt một sai lầm ngu ngốc như vậy phải không? Vâng, bạn sẽ tin rằng nếu tôi nói với bạn ngay cả các công ty lớn như Facebook cũng vậy. Có một mã như thế nào?
Have a code like?

in '

hoặc thậm chí & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; In "Bấm vào đây";
                print "Click Here";

JavaScript: Cảnh báo (1); Will bỏ qua nó vì nó không chứa các ký tự sẽ được lọc. Nhưng để ý một giới hạn ở đây? Mã của chúng tôi sẽ chỉ thực thi nếu người dùng nhấp vào nút Nhấp vào đây. Vì vậy, đó là một giới hạn rất lớn. Hoặc là nó? Mã HTML sẽ trở thành một cái gì đó giống như will bypass it because it doesn’t contain the characters that will be filtered. But notice a limitation here? Our code will only execute if user clicks the Click Here button. So that’s a huge limitation. Or is it? The html code will become something like

Bấm vào đây

Nhưng chúng ta cần thoát khỏi thẻ HREF và thực hiện một JavaScript độc hại hơn. Nhưng bằng cách nào? Nếu chúng ta cố gắng thoát ra khỏi nó bằng cách sử dụng nó

Bấm vào đây

Nhưng chúng ta cần thoát khỏi thẻ HREF và thực hiện một JavaScript độc hại hơn. Nhưng bằng cách nào? Nếu chúng ta cố gắng thoát ra khỏi nó bằng cách sử dụng nó“javascript:alert(1);’>” is given

Đúng? Không hẳn là chính xác lắm. HTMLENTITY đi kèm với một trích dẫn đơn () không được lọc theo mặc định và bạn phải chỉ định một công tắc đặc biệt có tên ENT_Quotes để khai báo điều đó. Vì vậy, đầu ra thực khi các giá trị như "JavaScript: ALERT (1);">

A hope! We broke out of the attribute so giving values like

Một niềm hy vọng! Chúng tôi đã thoát ra khỏi thuộc tính để đưa ra các giá trị như

JavaScript: cảnh báo (1); lấy nét tự động

Bấm vào đây

Nhưng chúng ta cần thoát khỏi thẻ HREF và thực hiện một JavaScript độc hại hơn. Nhưng bằng cách nào? Nếu chúng ta cố gắng thoát ra khỏi nó bằng cách sử dụng nó

Đúng? Không hẳn là chính xác lắm. HTMLENTITY đi kèm với một trích dẫn đơn () không được lọc theo mặc định và bạn phải chỉ định một công tắc đặc biệt có tên ENT_Quotes để khai báo điều đó. Vì vậy, đầu ra thực khi các giá trị như "JavaScript: ALERT (1);">

Would successfully bypass the function htmlentities and prints out the source of

Bấm vào đây

Nhưng chúng ta cần thoát khỏi thẻ HREF và thực hiện một JavaScript độc hại hơn. Nhưng bằng cách nào? Nếu chúng ta cố gắng thoát ra khỏi nó bằng cách sử dụng nó

Đúng? Không hẳn là chính xác lắm. HTMLENTITY đi kèm với một trích dẫn đơn () không được lọc theo mặc định và bạn phải chỉ định một công tắc đặc biệt có tên ENT_Quotes để khai báo điều đó. Vì vậy, đầu ra thực khi các giá trị như "JavaScript: ALERT (1);">print "Click Here";

Well now, we may can’t break out of the cage we are inside but still can execute JavaScript in the attribute we are inside. However, the value html attribute is off limits. we cannot execute JavaScript inside it. But when you find code like:

Một niềm hy vọng! Chúng tôi đã thoát ra khỏi thuộc tính để đưa ra các giá trị như

JavaScript: cảnh báo (1); lấy nét tự động

sẽ xuất ra nguồn html như

Vì vậy, wow… tải trọng cuối cùng của chúng tôi để bỏ qua bộ lọc sẽ trông giống như

Paulos xông onf Focus = ALERT (0); lấy nét tự động

Đúng? Không hẳn là chính xác lắm. HTMLENTITY đi kèm với một trích dẫn đơn () không được lọc theo mặc định và bạn phải chỉ định một công tắc đặc biệt có tên ENT_Quotes để khai báo điều đó. Vì vậy, đầu ra thực khi các giá trị như "JavaScript: ALERT (1);">

Cool.

Một niềm hy vọng! Chúng tôi đã thoát ra khỏi thuộc tính để đưa ra các giá trị như

JavaScript: cảnh báo (1); lấy nét tự động