系統滲透漏洞の未授權訪問
背景:
我們做的頁面是巢狀在營銷系統中,所以沒有登入介面,造成了直接訪問 ip:port/地址可以進入,這樣造成了安全隱患
思路;
想到了加上過濾器,在使用者登入成功之後,才授權登入訪問頁面(當使用者登入成功後,將使用者資訊存在session中,過濾器判斷當session中有使用者資訊才可放行)
新增過程:
1.首先在web.xml中新增過濾器配置
其中url-pattern 為限制的範圍,根據實際情況填寫即可
2.將使用者資訊存到session中
找到使用者登入才會跳轉的介面,將session中的資料獲取到,並傳入此係統tomcat的session中
<form action="${pageContext.request.contextPath }/login/loginIn.do" method="post">
<input type="hidden" name="loginNo" value="${param.loginNo}" />
<input type="hidden" name="loginName" value="${param.loginName}" />
<input type="hidden" name="regionCode" value="${param.regionCode}" />
<input type="hidden" name="userId" value="${param.userId}" />
<input type="hidden" name="staffId" value="${param.staffId}" />
<input type="hidden" name="forwordUrl" value="${param.forwordUrl}" />
<input type="hidden" name="param" value="${param.param}" />
</form>
@RequestMapping("/loginIn.do")
public String loginIn(HttpServletRequest request, HttpSession session, ModelAndView mdv)
throws UnsupportedEncodingException {
String forwordUrl = request.getParameter("forwordUrl") != null ? request.getParameter("forwordUrl") : "ahTelecom/login/error";
try {
// 工號資訊
session.setAttribute("loginNo", request.getParameter("loginNo") != null ? request.getParameter("loginNo") : "sys");
session.setAttribute("loginName", request.getParameter("loginName") != null ? request.getParameter("loginName") : "sys");
session.setAttribute("regionCode", request.getParameter("regionCode") != null ? request.getParameter("regionCode") : "0");
session.setAttribute("userId", request.getParameter("userId") != null ? request.getParameter("userId") : "9999");
session.setAttribute("staffId", request.getParameter("staffId") != null ? request.getParameter("staffId") : "9999");
// 生成token
String token = randomGUID.toString();
// 將token放入session
session.setAttribute("token", token);
return forwordUrl;
}catch (Exception e) {
return "ahTelecom/login/error";
}
}
3.在過濾器中配置
@Override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
HttpSession session = request.getSession();
// String loginNo = request.getParameter("loginNo");
String loginNo = (String) session.getAttribute("loginNo");
String requestURI = request.getRequestURI();
System.out.println("requestURI="+requestURI);
System.out.println("loginNo="+loginNo);
if(loginNo!=null && !"".equals(loginNo)){
chain.doFilter(request, response);
return;
}
//chain.doFilter(request, response);
}
這樣就完成了對登入的限制
相關文章
- mongodb未授權訪問漏洞MongoDB
- Redis 未授權訪問漏洞利用Redis
- 【漏洞復現】Redis未授權訪問漏洞Redis
- 利用CouchDB未授權訪問漏洞執行任意系統命令
- 利用redis未授權訪問漏洞(windows版)RedisWindows
- 銘說 | Redis未授權訪問漏洞GetshellRedis
- Redis未授權訪問漏洞利用總結Redis
- JBOSS未授權訪問
- Redis v6.0.5未授權訪問漏洞復現Redis
- Redis 未授權訪問漏洞(附Python指令碼)RedisPython指令碼
- Mongodb未授權訪問漏洞全網探測報告MongoDB
- Java安全漏洞:Druid未授權訪問解決JavaUI
- Linux sudo 漏洞可能導致未經授權的特權訪問Linux
- Redis 未授權訪問缺陷可輕易導致系統被黑Redis
- spark未授權RCE漏洞Spark
- 從零開始學習各種常見未授權訪問漏洞
- 多款Intel產品未授權訪問漏洞(CVE-2017-5689)Intel
- Druid未授權訪問實戰利用UI
- Redis未授權漏洞復現Redis
- 常見的授權滲透環境
- Etcd REST API 未授權訪問漏洞暴露 750MB 密碼和金鑰RESTAPI密碼
- 記一次授權滲透測試
- 記一次特別的未授權訪問
- 【雲原生攻防研究】Istio訪問授權再曝高危漏洞
- SaltStack未授權訪問及命令執行漏洞分析(CVE-2020-16846/25592)
- 容器編排系統K8s之訪問控制--RBAC授權K8S
- MySQL建立使用者授權訪問MySql
- 配置apache授權訪問目錄(轉)Apache
- 安全滲透測試中日誌分析技術與授權機制
- Hadoop Yarn REST API未授權漏洞利用挖礦分析HadoopYarnRESTAPI
- CVE-2021-45232 Apache APISIX 從未授權訪問到RCEApacheAPI
- mysql8.0授權root遠端訪問MySql
- <web滲透-檔案上傳漏洞>Web
- 基於Docker的MongoDB實現授權訪問DockerMongoDB
- Flipboard 資料庫未經授權訪問使用者賬號密碼洩露資料庫密碼
- 滲透測試公司 對於越權漏洞的檢測與修復
- 滲透測試系統kali配置源
- 記學習滲透測試之使用後門和惡意軟體保持訪問權五