mysql被sql注入的一次打脸经历

      打脸的一次数据库经历

身为一个运维工程师,平时对于线上的服务器算是十分重视,即使上面有硬件防火墙,然后系统也做了进一步优化,而且还安装了基本防护软件,服务器半年了也没有出现过什么问题。可是我对其他一些不是很重要的服务器却是平时只是简单的维护。因为平时也没有发生什么问题,于是自己变得更懒了,终于有一天,打脸的事情出现了。。。。

一大早上,看看邮件报警,说什么监控服务器被人家sql注入,有病毒建议清理

看到上面的内容,我的心情现在是久久不能平静,太打脸了。更气人的是哪个fuck,好吧,认了。

先不想那闹心的事情了,解决问题呗。首先我想到的就是是不是有人登陆我的系统了,可是一想,我的防火墙策略挺严格的,应该不会。查看日志也没有问题。于是问题就转移到了数据库的身上。该不会是数据库授权没有严格吧?好吧,登陆数据库一查看授权表,哥哥呆了,平时只想到系统方面,居然没注重到数据库授权方面。(我并没有严格的写防火墙策略针对mysql,因为只是一个监控服务器,大意了)

1、于是,我便删除了报警的病毒(第一步)

2、登录数据库完善了授权。

#drop user ‘’@‘localhost‘;

#drop user ‘‘@‘localhos.localdomain‘;

drop user [email protected]‘‘;

drop user [email protected]‘%‘;

就是因为授权没有严格,造成的问题。一定要查看授权表,禁止root无密码登录等


3、修改root连接数据的密码

4、利用安全软件重新检查是否存在病毒

5、严格修改策略



虽然上面已经做好了防护措施,但是比较厉害的黑客是会留后门的,所以,虽然问题解决了,但是平时也要注意好服务器安全查看。


总结:对于我来说,这是一次打脸的经历,运维人员千万不要因为觉得不是特别重要的服务器(特别有生产数据)就不是那么重视,这是一个很坏的习惯,很多好习惯是慢慢养成的,坏习惯同样也是。只有做好平时生活和工作的点点滴滴的小事情,才可以做到认真对待每一件事情。同时也希望自己认识到自己的错误并能严格对待,努力改正,做一个技术上不仅厉害,为人处世也很好的一个男人。

和大家分享,写的不好,明白意思就好!

时间: 2024-08-04 13:25:05

mysql被sql注入的一次打脸经历的相关文章

mysql中sql注入的随笔

当使用如下登录代码时:就会引发sql注入问题 怎么注入呢? 'or 1=1 # 就可以了. 为什么呢? 首先or:在sql中是或者,只要满足前一个或后一个条件即可,只要所以不论你是 'or 1=1 #还是 'or 2=2 #,都可以. #: 是注释的意思,在sql中注释掉后面的密码判断. 所以这一段不用不用密码即可输入成功, 怎么办呢? 在php中,可以有很多方法....就不举例了. <!doctype html> <html lang="ch"> <he

基于php+mysql的sql注入攻防实操

摘要: 基于php+mysql平台的sql注入攻防的实操,提供较详细的ubuntu平台上的操作步骤,方便练手. 使用的平台: Ubuntu 12.04,php 5.3.10, mysql Ver 14.14, Apache/2.2.22 步骤: 1. 在ubuntu上安装Apache,mysql,具体过程自行百度: 2.1 首先熟悉如何再mysql中建立数据表?包括用户名和对应的密码:并且熟悉其中的查询命令:完成查询测试: 2.2 完成php端的代码,完成php和mysql的链接:完成链接查询测

mysql防SQL注入搜集

SQL注入 例:脚本逻辑 $sql = "SELECT * FROM user WHERE userid = $_GET[userid] "; 案例1:SELECT * FROM t WHERE a LIKE '%xxx%' OR (IF(NOW=SYSDATE(), SLEEP(5), 1)) OR b LIKE '1=1 '; 案例2:SELECT * FROM t WHERE a > 0 AND b IN(497 AND (SELECT * FROM (SELECT(SLE

MySQL 及 SQL 注入

如果您通过网页获取用户输入的数据并将其插入一个MySQL数据库,那么就有可能发生SQL注入安全的问题. 本章节将为大家介绍如何防止SQL注入,并通过脚本来过滤SQL中注入的字符. 所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令. 我们永远不要信任用户的输入,我们必须认定用户输入的数据都是不安全的,我们都需要对用户输入的数据进行过滤处理. 以下实例中,输入的用户名必须为字母.数字及下划线的组合,且用户名长度为 8 到

MySQL防范SQL注入风险

0.导读 在MySQL里,如何识别并且避免发生SQL注入风险 1.关于SQL注入 互联网很危险,信息及数据安全很重要,SQL注入是最常见的入侵手段之一,其技术门槛低.成本低.收益大,颇受各层次的黑客们所青睐. 一般来说,SQL注入的手法是利用各种机会将恶意SQL代码添加到程序参数中,并最终被服务器端执行,造成不良后果. 例如,我们访问接口 http://imysql.com/user.php?userid=123 来根据userid获取用户信息,假设程序中是这么处理的: $sql = “SELE

网站mysql防止sql注入*** 3种方法总结

mysql数据库一直以来都遭受到sql注入***的影响,很多网站,包括目前的PC端以及手机端都在使用php+mysql数据库这种架构,大多数网站受到的***都是与sql注入***有关,那么mysql数据库如何防止sql注入呢?下面我们SINE安全技术针对于这个sql注入问题总结3种方案去防止sql注入***. sql注入产生的原因很简单,就是访问用户通过网站前端对网站可以输入参数的地方进行提交参数,参数里插入了一些恶意参数传入到服务器后端里去,服务器后端并没有对其进行详细的安全过滤,导致直接进入

exist 存在 Python操作mysql pymysql sql注入问题 # 39

0.补充 exist 存在 了解.py 1 """""" 2 """ 3 '''exist''' 4 EXIST 关键字表示存在 5 在使用EXIST 关键字时 , 6 7 内层查询语句不返回 查询的记录, 8 而是返回一个真假值 ,True|False 9 10 当返回True时,外层语句将进行查询, 11 当返回值为False 外层查询语句不进行查询 12 13 select * from emp where e

mysql 之sql注入详解

SQL 注入( SQL Injection )攻击是发生在应用程序中的数据库层的安全漏洞.简而言之,是在输入的字符串之中注入 SQL 语句,如果在设计不良的程序中忽略了检查,那么这些注入进去的 SQL 语句就会被数据库服务器误认为是正常的 SQL 语句而运行,攻击者就可以执行计划外的命令或访问未被授权的数据. SQL 注入已经成为互联网世界 Web 应用程序的最大风险.我们有必要从开发.测试.上线各个环节对其进行防范.以下将介绍 SQL 注入的原理及如何预防 SQL 注入. SQL 注入的原理有

mysql - 防止sql注入

使用mysql_real_escape_string 对参数进行转义 在配合参数化查询 $query = sprintf("SELECT * FROM Users where UserName='%s' and Password='%s'", mysql_real_escape_string($Username), mysql_real_escape_string($Password)); mysql_query($query); 或者 $db = new mysqli("l