WEB:小宁写了一个登陆验证页面,随手就设了一个密码。

本文记录了一次CTF竞赛中的轻松经历,通过使用默认的admin账号及常见密码123456,成功绕过系统登录验证,直接获得挑战题目的解答。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

描述
在这里插入图片描述
假设随便登录就会报这样的错
please login as admin
所以我们就登陆admin 然后密码123456就直接过了
别问我为什么 人生中第一个直接AC的ctf题目
cyberpeace{a94af68050e70b3462816f5ee4bf1552}

好的,下面是一个基于 Java 的 Web 页面的登录功能的示例代码,包括前端页面和后端处理程序: 1. login.jsp 页面 ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Login Page</title> </head> <body> <h2>Login Page</h2> <form method="post" action="login"> <label>Username:</label> <input type="text" name="username"><br> <label>Password:</label> <input type="password" name="password"><br> <input type="submit" value="Login"> </form> </body> </html> ``` 2. LoginServlet 处理程序 ```java import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; public class LoginServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String username = request.getParameter("username"); String password = request.getParameter("password"); if (username.equals("admin") && password.equals("admin123")) { HttpSession session = request.getSession(); session.setAttribute("username", username); response.sendRedirect("welcome"); } else { response.sendRedirect("login?error=1"); } } } ``` 3. welcome.jsp 页面 ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Welcome Page</title> </head> <body> <h2>Welcome <%= session.getAttribute("username") %>!</h2> <a href="logout">Logout</a> </body> </html> ``` 4. LogoutServlet 处理程序 ```java import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; public class LogoutServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { HttpSession session = request.getSession(); session.invalidate(); response.sendRedirect("login"); } } ``` 5. web.xml 配置文件 ```xml <web-app> <servlet> <servlet-name>LoginServlet</servlet-name> <servlet-class>LoginServlet</servlet-class> </servlet> <servlet> <servlet-name>LogoutServlet</servlet-name> <servlet-class>LogoutServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>LoginServlet</servlet-name> <url-pattern>/login</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>LogoutServlet</servlet-name> <url-pattern>/logout</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>login.jsp</welcome-file> </welcome-file-list> </web-app> ``` 这个示例代码中,用户在 login.jsp 页面输入用户名和密码,点击提交按钮后,会访问 LoginServlet 处理程序,根据用户名和密码进行验证,如果验证通过,则将用户名保存在 Session 中,并跳转到 welcome.jsp 页面,展示欢迎信息和退出登录的链接;如果验证不通过,则重定向到 login.jsp 页面,并提示错误信息。当用户点击退出登录链接时,会访问 LogoutServlet 处理程序,销毁当前的 Session,并重定向到 login.jsp 页面
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值