SEO注入是什么(SQL注入漏洞原理)

cesc

SQL注入漏洞是Web层面最高危的漏洞之一。错误博客( cuowu.com )分享的是《SEO注入是什么(SQL注入漏洞原理)》。希望对大家有所帮助。

SQL注入漏洞原理
SQL注入漏洞原理

想要更好地研究SQL注入,就必须深入了解每种数据库的SQL语法及特性。虽然现在的大多数数据库都会遵循SQL标准,但是每种数据库也都有自己的单行函数及特性。

例如一个登陆页面的SQL注入。

用户输入正确的账户和密码后,如果用户存在且密码正确,则会登陆成功并跳转;如果不存在或者密码不正确,会提示账户或者密码错误。

接下来使用一个比较特殊的用户名登陆

or 1=1–

密码随意或者不写,在点击登陆时,一样也是可以登陆的。比较奇怪的是任意密码都可以登陆,进入数据库查看,发现根本没有or 1=1–这个用户。

最后分析发现,登陆处最终调用了findAdmin方法,代码如下:

public boolean findAdmin(Admin admin){

String sql=”select count(*)from admin where username='”+admin.getUsername()+”‘ and password='”+admin.getPassword()+”‘”;//SQL查询语句

try {

ResultSet res =this.conn. createStatement().executeQuery(sql);//执行SQL语句

if(res.next()){

int i = res.getInt(1);//获取第一列的值

if(i>0){

return true; //如果结果大于0,则返回true

}

}

} catch (Exception e){

e.printStackTrace();  //打印异常信息

}

return false;

}

上述SQL语句的意思非常清楚:在数据库中查询username=xxx,并且password=xxx的结果,若查询的值大于0,则代表用户存在,返回true,代表登陆成功,否则返回false,代表登陆失败。

这段代码看起来并没有什么错误,现在提交账户为admin,密码为password,跟踪SQL语句,发现最终SQL语句为:

select count(*)from admin where username=’admin’ and password = ‘password’

在数据库中,存在admin用户,并且密码为password,所以此时返回结果为1。显然,1大于0,所以通过验证,用户可以成功登录。

接下来继续输入这个特殊用户 ‘or 1=1–,并跟踪SQL语句,最终执行SQL语句为

select count(*)from admin where username=’ ‘or 1=1– ‘ and password=”

终于找到问题的根源了,从开发人员的角度理解,SQL语句的本义是:

username=‘账户’ and password=‘密码’

现在却变成:

username=‘账户’ or 1=1–‘ and password=”

此时的password已经被注释掉了,而且username=’账户’ or 1=1这条语句永远为真。

在SQL标准中标准的注释方式是”–“注释,即单行注释。故上述的password被注释

那么最终执行的SQL语句相当于:

select count(*) from admin //查询admin表所有的数据条数

很显然,返回条数大于0,所以可以顺利通过验证,登录成功。这就是一次最简单的SQL注入过程。虽然过程很简单,但是其危害极大,比如用户名位置输入:

‘ or 1=1;drop table admin —

因为SQL Server支持多语句执行,所以这里可以直接删除admin表。

由此可得知,SQL注入漏洞的形成原因就是:用户输入的数据被SQL解释器执行。

仅仅知道SQL注入漏洞的形成的原因还不足以完美地做好SQL注入的防护工作,因为它是防不胜防的。还需要注入漏洞的多种类型。

以上就是错误博客( cuowu.com )分享的是《SEO注入是什么(SQL注入漏洞原理)》。感谢您的阅读。

随机文章

化妆品的市场分析和市场调研
游戏怎么吸引玩家(游戏是怎么撩到玩家爽点的)
老男人网站(PearOCR 完全免费无限制的文字识别网站)
小小课堂:SEO案例:百度移动端14天如何从BR0到BR4
众人帮发布悬赏规范
DNF等级预约活动千万别碰的5个职业:剑魂排第一,漫游是第三
DNF红眼打漩涡本-团长大气给3保1-进图后遭遇这种队友
大话西游2春节签到活动中的神兽年谁得了?速来围观

百度搜索“错误博客”即可找到本站,微信搜索“cuowucom”关注错误博客公众号。错误博客( cuowu.com )欢迎用户投稿,发布者:中二少年,文章版权归作者所有,投稿文章不代表错误博客立场,中二少年发布为错误博客原创文章,转载请注明出处:https://cuowu.com/2516.html

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注