Bài đăng

Đang hiển thị bài đăng từ Tháng 5, 2019

Intigriti XSS challenge #2 write-up

Hình ảnh
Hi guys, Intigriti (Bug bounty platform) has released a nice XSS challenge at  https://challenge.intigriti.io/2/#aW50aWdyaXRpLWNoYWxsZW5nZQ== The challenge is over, so I think I have to write something :D Here their banner In short, we have to exploit this vulnerable script to trigger a DOM-Based XSS < script > var b64img = window . location . hash . substr ( 1 ); var xhttp = new XMLHttpRequest (); xhttp . onreadystatechange = function () { if ( this . readyState == 4 && this . status == 200 ) {    var reader = new FileReader ();    reader . onloadend = function () {      document . write ( `       <a href=" ${ b64img } " alt=" ${ atob ( b64img ) } ">         <img src=" ${ reader . result } ">       </a>` );   }    reader . readAsDataURL ( this . response ); } }; xhttp . responseType = 'blob' ; xhttp . open ( "GET" , b64img , true ); x

WebAssembly101 - Chạy đoạn mã WASM đầu tiên

Hình ảnh
Tôi có viết một bài giới thiệu về WebAssembly tại đây , nội dung cũng khá dài, ở đây tôi chỉ note lại một số phần về kỹ thuật cho bạn đọc. Một vài đặc điểm của WASM  bạn đọc cần chú ý, theo quan điểm của tác giả: WASM sinh ra để giải quyết bài toán hiệu năng của Javascript trước tiên, tận dụng sức mạnh tính toán ở phía thiết bị của người dùng, đặc biệt ở các tác vụ xử lý truyền thông đa phương tiện (video, audio, image), game, mô phỏng, thuật toán,... WASM là hợp ngữ (Assembly Language) được thiết kế riêng cho các Javascript Engine, đây không hẳn là một ngôn ngữ lập trình độc lập, chỉ có các Javascript Engine mới có thể hiểu và thực thi các Instruction của WASM. WASM có thể làm được mọi việc Javascript có thể làm, nhưng không phải được thiết kế để thay thế một ngôn ngữ linh động như Javascript, ít nhất ở thời điểm hiện tại vẫn cần Javascript để chạy được WASM. WASM được nạp vào trình duyệt dưới định dạng nhị phân (chuỗi bytecode), vì vậy mã nguồn thường sẽ được viết bằng cách n