科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道[Sql server]应用程序中的高级SQL注入(3)

[Sql server]应用程序中的高级SQL注入(3)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

SQL是一种用于关系数据库的结构化查询语言。它分为许多种,但大多数都松散地基于美国国家标准化组织最新的标准SQL-92。

作者:aspcool 来源:aspcool 2007年9月15日

关键字: 注入 数据库 SQL Server SQL Server 各版本

  • 评论
  • 分享微博
  • 分享邮件

rso.open( sql, cn );

if (rso.EOF) {

rso.close();

%>

<FONT Face='tahoma' color='cc0000'>

<H1> <BR><BR>

<CENTER>ACCESS DENIED</CENTER>

</H1>

</BODY>

</HTML>

<% Response.end return; }

else {

Session("username") = "" + rso("username");

%>

<FONT Face='tahoma' color='00cc00'>

<H1> <CENTER>ACCESS GRANTED<BR> <BR>

Welcome, <% Response.write(rso("Username")); Response.write( "</BODY></HTML>" ); Response.end }

}

function Main() { //Set up connection

var username

var cn = Server.createobject( "ADODB.Connection" );

cn.connectiontimeout = 20;

cn.open( "localserver", "sa", "password" );

username = new String( Request.form("username") );

if( username.length > 0) {

Login( cn );

}

cn.close();

}

Main();

%>

出现问题的地方是process_lgin.asp中产生查询语句的部分:

Var sql="select * from users where username='"+username+"' and password='"+password+"'";

如果用户输入的信息如下:

Username:';drop table users—

Password:

数据库中表users将被删除,拒绝任何用户进入应用程序。'—'符号在Transact-SQL中表示忽略'—'以后的语句,';'符号表示一个查询的结束和另一个查询的开始。'—'位于username字段中是必须的,它为了使这个特殊的查询终止,并且不返回错误。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章