作为长期霸占OWASP Top10榜首的注入漏洞,很多新手入门所认识的第一种攻击手段就是SQL注入,甚至于还未入门便听说过它的大名。下面我们对SQL注入进行一次简单的认识。
0X00:SQL注入原理介绍
由于程序员的的疏忽,当web应用向后台数据库传递SQL语句时,没有对用户输入的参数进项适当的处理导致用户输入的SQL语句可以被数据库执行。攻击者可通过这一漏洞,获取数据库信息或对重要数据进行修改。
0X01:SQL注入的分类
1、常见的SQL注入根据参数可以分为两种:数字型与字符型。即当注入点的参数为数字,例如:1、2、3等为数字型,当注入点参数为字符串,例如:‘1’,‘2’,‘string’等 则是字符型。
2、根据数据返回信息与页面反馈的结果,可将其分为回显注入,报错注入,盲注。
顾名思义,回显注入可以直接从当前页面获取数据库返回的信息
报错注入:将数据库返回的错误信息显示在页面内,尽管没有将SQL语句的查询内容直接返回,但是仍可以通过构造SQL语句获取想要的内容
盲注:从页面的返回无法获取任何数据库中的信息,根据不同的页面回馈可分为时间盲注和布尔盲注。
事实上,除去以上两种的分类方式,我们还可以以注入方式进行分类,但由于种类繁多,而我们可以再以后的实战中进行学习,所以这里不做赘述。
0X10:SQL注入流程
此次演示使用自己搭建的环境。
从地址栏看到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,单引号没有闭合出现错误
此时的页面为
由此可以判断此处有注入点。
当然我们也可以使用逻辑判断: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()–+获取当前库信息由回显可知当前库为securiy。
至此我们对SQL注入有了简单的认识。
来源:freebuf.com 2020-07-28 19:27:35 by: libanwu
请登录后发表评论
注册