初探SQL注入 – 作者:libanwu

作为长期霸占OWASP Top10榜首的注入漏洞,很多新手入门所认识的第一种攻击手段就是SQL注入,甚至于还未入门便听说过它的大名。下面我们对SQL注入进行一次简单的认识。

0X00:SQL注入原理介绍

由于程序员的的疏忽,当web应用向后台数据库传递SQL语句时,没有对用户输入的参数进项适当的处理导致用户输入的SQL语句可以被数据库执行。攻击者可通过这一漏洞,获取数据库信息或对重要数据进行修改。

0X01:SQL注入的分类

1、常见的SQL注入根据参数可以分为两种:数字型与字符型。即当注入点的参数为数字,例如:1、2、3等为数字型,当注入点参数为字符串,例如:‘1’,‘2’,‘string’等 则是字符型。

2、根据数据返回信息与页面反馈的结果,可将其分为回显注入,报错注入,盲注。

顾名思义,回显注入可以直接从当前页面获取数据库返回的信息

报错注入:将数据库返回的错误信息显示在页面内,尽管没有将SQL语句的查询内容直接返回,但是仍可以通过构造SQL语句获取想要的内容

盲注:从页面的返回无法获取任何数据库中的信息,根据不同的页面回馈可分为时间盲注和布尔盲注。

事实上,除去以上两种的分类方式,我们还可以以注入方式进行分类,但由于种类繁多,而我们可以再以后的实战中进行学习,所以这里不做赘述。

0X10:SQL注入流程

此次演示使用自己搭建的环境。

图片[1]-初探SQL注入 – 作者:libanwu-安全小百科从地址栏看到url:http://127.0.0.1/sqli-labs-master/Less-1/?id=1

1、寻找注入点

直接在地址后加入’,url为http://127.0.0.1/sqli-labs-master/Less-1/?id=1‘

假设最初的查询语句为SELECT * FROM users WHERE id=’$id’ LIMIT 0,1

则此时的查询语句为SELECT * FROM users WHERE id=’1’’ LIMIT 0,1,单引号没有闭合出现错误

此时的页面为

图片[2]-初探SQL注入 – 作者:libanwu-安全小百科由此可以判断此处有注入点。

当然我们也可以使用逻辑判断:id=1’and‘1’=‘1 和id=1’and‘1’=‘2判断注入点。

2、构造语句获取需要的信息

构造语句:http://127.0.0.1/sqli-labs-master/Less-1/?id=%27union%20select%201,2,database()–+获取当前库信息图片[3]-初探SQL注入 – 作者:libanwu-安全小百科由回显可知当前库为securiy。

至此我们对SQL注入有了简单的认识。

来源:freebuf.com 2020-07-28 19:27:35 by: libanwu

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论