首页 > 编程源码 > SQL注入漏洞详解

SQL注入漏洞详解

楼主:听语 [3级] · 2019-9-8 ·  浏览636 · 编程源码 · ID:

技术分享板块有你更精彩哦

首先我们了解一下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中比较常用的一些函数:

version():查询数据库的版本

user():查询数据库的使用者

database():数据库

system_user():系统用户名

session_user():连接数据库的用户名

current_user:当前用户名

load_file():读取本地文件

@@datadir:读取数据库路径

@@basedir:mysql安装路径

@@version_complie_os:查看操作系统

1.ascii(str) : 返回给定字符的ascii值,如果str是空字符串,返回0;如果str是NULL,返回NULL。如 ascii("a")=97

2.length(str) : 返回给定字符串的长度,如 length("string")=6

3.substr(string,start,length) : 对于给定字符串string,从start位开始截取,截取length长度 ,如 substr("chinese",3,2)="in"

substr()、stbstring()、mid() 三个函数的用法、功能均一致

4.concat(username):将查询到的username连在一起,默认用逗号分隔

concat(str1,'*',str2):将字符串str1和str2的数据查询到一起,中间用*连接

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

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

- 版权声明 - 1、本帖所有言论和图片等纯属网友个人意见,与流星社区立场无关;
2、其他单位或个人使用、转载或引用本帖时必须同时征得该帖子作者听语流星社区的同意;
3、备注原文地址:https://bbs.liuxingw.com/t/13640.html,可忽略第2条;
4、帖子作者需承担一切因本文发表而直接或间接导致的相关责任;
5、如本帖内容或部分内容转载自其它媒体,这并不代表本站赞同其观点和对其真实性负责;
6、如本帖若为资源类,将仅限用于学习和研究目的,您必须在下载后的24个小时之内,从您安装或使用的设备中彻底删除上述内容;
7、如果您喜欢该程序,请支持正版软件,购买注册,可以得到更好的正版服务;
8、如本帖侵犯到任何版权或违法问题,请立即邮件告知我们,我们将及时予以处理。
2条回复 |  最后回复于2019-9-8

听语 [3级]

继续教程哈
发布于2019-9-8

回复列表

  • 内容加载中...

说点什么...

听语 [3级]

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

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

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

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

回复列表

  • 内容加载中...

说点什么...
登录注册 后才可进行评论
签到
5人签到
已签0天
  • 46566帖子
  • 1935951热点量
  • 184625火热值