[持续更新]SQL注入漏洞详解之盲注

首先我们了解一下SQL



SQL注入是因为后台SQL语句拼接了用户的输入,而且Web应用程序对用户输入数据的合法性没有判断和过滤,前端传入后端的参数是攻击者可控的,攻击者可以通过构造不同的SQL语句来实现对数据库的任意操作。比如查询、删除,增加,修改数据等等,如果数据库的用户权限足够大,还可以对操作系统执行操作。



SQL注入可以分为平台层注入和代码层注入。前者由不安全的数据库配置或数据库平台的漏洞所致;后者主要是由于程序员对输入未进行细致地过滤。SQL注入是针对数据库、后台、系统层面的攻击!



由于以下的环境都是MySQL数据库,所以先了解点MySQL有关的知识。在MySQL5.0之后,MySQL中默认添加了一个名为 information_schema 的数据库,该数据库中的表都是只读的,不能进行更新、删除和插入等操作,也不能加载触发器,因为它们实际只是一个视图,不是基本表,没有关联的文件。



当尝试删除该数据库时,会爆出以下的错误!

mysql中注释符:#   、/**/  、  -- 



information_schema数据库中三个很重要的表



information_schema.schemata:  该数据表存储了mysql数据库中的所有数据库的库名



information_schema.tables:     该数据表存储了mysql数据库中的所有数据表的表名



information_schema.columns:    该数据表存储了mysql数据库中的所有列的列名



下面是语法

内容需要回复可见

select password from users limit 0,1

mysql中比较常用的一些函数:

内容需要回复可见


一个网站有那么多的页面,那么我们如何判断其中是否存在SQL注入的页面呢?我们可以用网站漏洞扫描工具进行扫描,常见的网站漏洞扫描工具有 AWVS、AppScan、OWASP-ZAP、Nessus 等。



但是在很多时候,还是需要我们自己手动去判断是否存在SQL注入漏洞。下面列举常见的判断SQL注入的方式。但是目前大部分网站都对此有防御,真正发现网页存在SQL注入漏洞,还得靠技术和经验了。



二话不说,先加单引号、双引号、单括号、双括号等看看是否报错,如果报错就肯定存在SQL注入漏洞了。



还有在URL后面加and 1=1 、 and 1=2看页面是否显示一样,显示不一样的话,肯定存在SQL注入漏洞了。



group_concat(username) :将username数据查询在一起,用逗号连接



5.limit 0,1:查询第1个数        limit  1,1: 查询第2个数             limit  n,1: 查询第n+1个数



判断是否存在SQL注入

一个网站有那么多的页面,那么我们如何判断其中是否存在SQL注入的页面呢?我们可以用网站漏洞扫描工具进行扫描,常见的网站漏洞扫描工具有 AWVS、AppScan、OWASP-ZAP、Nessus 等。



但是在很多时候,还是需要我们自己手动去判断是否存在SQL注入漏洞。下面列举常见的判断SQL注入的方式。但是目前大部分网站都对此有防御,真正发现网页存在SQL注入漏洞,还得靠技术和经验了。



二话不说,先加单引号、双引号、单括号、双括号等看看是否报错,如果报错就肯定存在SQL注入漏洞了。



还有在URL后面加and 1=1 、 and 1=2看页面是否显示一样,显示不一样的话,肯定存在SQL注入漏洞了。


一:Boolean盲注

盲注,就是在服务器没有错误回显时完成的注入攻击。服务器没有错误回显,对于攻击者来说缺少了非常重要的信息,所以攻击者必须找到一个方法来验证注入的SQL语句是否得到了执行。


我们来看一个例子:

内容需要回复可见

- 版权声明 - 1、本帖子所有言论和图片纯属用户个人意见,与立场无关。
2、其他单位或个人使用、转载或引用本帖时必须同时征得该帖子作者苏龙筱的同意。
3、原文地址:http://www.xksafe.cn/t/26.html

打赏我,让我更有动力~

0 Reply   |  Until 2个月前 | 105 View




热门评论


LoginCan Publish Content