[題目]
The purpose of this challenge is to demonstrate the MITRE Top 25 programming flaw: 'Missing Authorization'.
The developer of the vulnerable application has simply not implemented authorization checks. You have the vulnerable code below. See if you can spot the programming error.
<!--contents of administration page cwe862admin.jsp--> <% if(session.getAttribute("cwe862loggedin")==null || !(boolean)session.getAttribute("cwe862loggedin")){ response.sendRedirect("cwe862.jsp?loggedin=false"); } %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>CWE862 - Missing Authorization - Admin</title>
|
[題目說明]
這一題是要我們根據以上的JSP Java Code 找出漏洞可以讓我們登入網頁後可以藉著在網址加上某個參數之後便可以存取管理員才能使用的資源。
[弱點提示]
The software does not perform an authorization check when an actor attempts to access a resource or perform an action.
From MITRE CWE 862
該弱點是指雖然應用程式有保護機制,但該應用程式在執行授權的機制有漏洞,原因是該機制透過URL所帶的參數判斷是否給予使用者存取網頁的權限,若Hacker可以知道該參數為何以及其以什麽樣的值來判斷是某給於存取權限且該值並沒有任何特殊機制保證Hacker不容易猜測值域,特殊網頁就有被竊取的風險。
[解答]
- 進入網頁: https://abc.xxx.elasticbeanstalk.com/cwe862.jsp
- 只要把 URL 改成如下及破解改網頁: https://abc.xxx.elasticbeanstalk.com/cwe862admin.jsp?cwe862loggedin=1111
- cew862admin.jsp是未經授權不可存取的網頁,但透過cwe862loggedin參數的應用便可以輕鬆竊取該網頁內容。
[安全原理]
該弱點被利用的關鍵在於cew862admin.jsp程式碼中只單純的檢查存取者是否有在url 中帶入cwe862loggedin 參數作為其是否為合法使用者的依據,若url沒有該參數則視為非法使用者而將其導到其他頁面,因此只要hacker知道該參數且任意在url後添加該參數並給予任意值便可以破解該cwe862admin.jsp網頁。
2019年2月20日星期三
留言列表