SQL注入 入门简单实验 服务器环境搭建

首先搭建服务器环境

采用tomcat 9.0进行配置,安装成功后在上面部署网站搭建简易实验环境。

搭建网站

可以随便找一个登陆模板,或者简单代码写一个就行。
SQL注入 入门简单实验 服务器环境搭建_第1张图片或者写一个表单,把账号密码传到UserCheck的页面进行验证

<form>
<div>
<input />
div>
form>
类似的结构

SQL注入 入门简单实验 服务器环境搭建_第2张图片
这里的样式就不发出来啦,有需要可以私信我。

检验信息

<%@ page language="java" import="java.sql.*" import="java.util.*" pageEncoding="UTF-8"%>
<%
 request.setCharacterEncoding("utf-8");
 //获得登录的用户名和密码
 String name = request.getParameter("username");
 String password = request.getParameter("pass");
 try{
  Class.forName("com.mysql.jdbc.Driver");
  }catch(ClassNotFoundException e) {
   System.out.println("加载数据库驱动时抛出异常,内容如下:");
   e.printStackTrace();
  }
  Connection conn = DriverManager.getConnection(
  "jdbc:mysql://localhost:3306/project1","root","admin");
  Statement stmt = conn.createStatement();
  ResultSet rs = stmt.executeQuery("select * from users where username = '"+name+"' and password = '"+password+"'");
    if (rs.next()){
    response.sendRedirect("index.jsp");
   }else{
    response.sendRedirect("index.html");
   } 
   %>
  • 首先连接数据库,并保证你的数据库里有用户表可以用于验证,没有就创建就行啦。
  • 其次对于表单传过来的数据进行接收,使用request.getParameter方法
  • 对接收到的数据进行数据库查询
    ResultSet rs = stmt.executeQuery(“select * from users where username = '”+name+"’ and password = ‘"+password+"’");
  • 然后写一个简单的重定向即可。

数据库注入

对于数据库查询的语句,其实通过语句本身的漏洞就行查询语句的转义,从而实现我们想要的查询,达到绕过数据库的目的。有很多注入的方式和方法,这里我先掩饰最简单的一种,在用户名和密码处输入1’=‘1’or’1即可绕过数据库检测。原理是我们上述的查询语句是查询账户和密码,此时我们输入该语句,则会变成’1’='1’or’1’此时该语句在数据库是恒为真的语句。因为or是只要有真就是真,同理 输入1’or’1类似的语句都可以。

可以把查询语句放到数据库里执行一下,如果成功了,就知道这个语句已经可以绕过安全措施了。

SQL注入 入门简单实验 服务器环境搭建_第3张图片

防止数据库注入

这里有很多方法,主要原理都是检验用户输入的内容,从源头上防止数据库注入。
比如这里我们可以进行一下数据库的用户名和密码是否匹配我们的接收到的用户名和密码,再来决定是否验证成功。
SQL注入 入门简单实验 服务器环境搭建_第4张图片

希望看到这里的各位完事都如意~

你可能感兴趣的:(SQL注入 入门简单实验 服务器环境搭建)