SQL注入

数据库:mysql5.1

login.jsp:

<form action="login">
	username:<input type="text" name="username"><br>
	password:<input type="password" name="password"><br>
	<input type="submit" value="login">
</form>

LoginServlet:

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		String username = req.getParameter("username");
		String password = req.getParameter("password");
		
		String selectSQL = "select username, password, phone from tb_user where username='" + username + "' and password='" + password + "'";
		Statement stmt = null;
		ResultSet rs = null;
		User user = null;
		
		try {
			stmt = DBUtil.createStatement();
			rs = stmt.executeQuery(selectSQL);
			while (rs.next()) {
				user = new User(rs.getString(1), rs.getString(2), rs.getString(3));
			}
		} catch (SQLException e) {
			throw new ServletException(e);
		} finally {
			DBUtil.closeResultSet(rs);
			DBUtil.closeStatement(stmt);
		}
		
		if (user == null) {
			req.getRequestDispatcher("login.jsp").forward(req, resp);
		} else {
			req.setAttribute("user", user);
			req.getRequestDispatcher("login_success.jsp").forward(req, resp);
		}
	}

在登录页面的username,输入:

' or 1=1;-- 

注意:--后面至少要有一个空格。

不输入password,也可以顺利登录。

如果username输入:

' or 1=1;#

不输入password,也可以顺利登录。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值