MYSQL注射精华.docVIP

  • 1
  • 0
  • 约8.57千字
  • 约 10页
  • 2017-11-23 发布于江苏
  • 举报
MYSQL注射精华

MYSQL 注射精华 Tsenable 前言 鄙人今天心血来潮突然想写篇文章,鄙人从来没写过文章,如果有错误的地方请多多指教.本文需要有基础的SQL语句知识才可以更好的理解.建议想学习的人多去了解一下SQL语句和编程语言,知己知彼才能百战百胜. 我不希翼得到读者您的好评,尽管我尽力了;只希望本文能解决您学习过程的障碍,希望您早日掌握有关MYSQL注入方面的知识. 1.MYSQL 注射的产生. 漏洞产生原因 : 程序执行中未对敏感字符进行过滤,使得攻击者传入恶意字符串与结构化数据查询语句合并,并且执行恶意代码. 咱们先创造一个没有过滤的程序. 因为我机器上没有PHP,所以我就是用 JAVA了,我会详细注释. 代码 数据库: create database if not exists `test`; USE `test`; /*数据表 `account` 的表结构*/ DROP TABLE IF EXISTS `account`; CREATE TABLE `account` ( `accountId` bigint(20) NOT NULL auto_increment, `accountName` varchar(32) default NULL, `accountPass` varchar(32) default NULL, PRIMARY KEY (`accountId`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; /*数据表 `account` 的数据*/ insert into `account` values (1,account1,account1); /*数据表 `admin` 的表结构*/ DROP TABLE IF EXISTS `admin`; CREATE TABLE `admin` ( `adminId` bigint(20) NOT NULL auto_increment, `adminName` varchar(32) default NULL, `adminPass` varchar(32) default NULL, PRIMARY KEY (`adminId`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; /*数据表 `admin` 的数据*/ insert into `admin` values (1,admin,admin); : 程序: %@ page language=java import=java.util.*,java.sql.* pageEncoding=utf-8% !DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN html body % //连接MYSQL的字符串. //jdbc:mysql://localhost:3306/test //驱动:数据库://地址:端口/数据库名称 String mysqlConnection = jdbc:mysql://localhost:3306/test; //加载驱动 com.mysql.jdbc.Driver 是JAVA与MYSQL 连接用的JDBC驱动 Class.forName(com.mysql.jdbc.Driver).newInstance(); //建立MYSQL链接 root是用户名 cx0321 是密码 Connection connection = DriverManager.getConnection(mysqlConnection, root, cx0321); //建立一个查询对象 Statement statment = connection.createStatement(); //建立一个查询返回集合. 就是说查询完以后返回的数据全部都在这个里面. ResultSet resultSet = null; //从account里面读取数据. resultSet = statment.executeQuery(select * from account where accountId = + request.getParameter(id) +); //循环,直到resultSet结束 while(resultSet.next()) { //从resultSet读取出值输出到页面. out.print(resultSet.getInt(1)+|);//取出第一列的值,因为是数字类型的所以是getInt(); out.print(resultSet.getString(2)+|);//取出第二列的值,因为是字

文档评论(0)

1亿VIP精品文档

相关文档