网站被SQL注入攻击,数据库里多了一堆垃圾数据

2026-10-02 0 941 百度已收录

客户在江西南昌市红谷滩区做二手车交易平台,有天早上发现网站首页被篡改,打开之后跳转到了一个博彩网站。登录服务器检查,发现数据库里多了一个不认识的表,里面存了几万条垃圾数据。

排查入侵途径

检查nginx访问日志,发现攻击者是通过一个搜索接口进来的。那个接口直接把用户输入的参数拼到了SQL语句里,没有做任何过滤。攻击者利用这个漏洞,构造了一个UNION查询,把数据库里的管理员账号密码导了出来,然后用管理员权限登录后台,篡改首页文件。

紧急处理

先把网站下线,防止用户访问被跳转。然后修改了所有管理员账号的密码,把被篡改的首页文件恢复成备份版本,删除了数据库里新增的垃圾表。

修复漏洞

找到那个存在注入漏洞的搜索接口,把SQL语句改成了参数化查询。原来的写法是直接拼接字符串:

$sql = "SELECT * FROM cars WHERE brand = '" . $_GET['brand'] . "'";

改成了预处理语句:

$stmt = $pdo->prepare("SELECT * FROM cars WHERE brand = ?");
$stmt->execute([$_GET['brand']]);

参数化查询会把用户输入当作数据而不是SQL代码来处理,从根本上杜绝了注入的可能。

同时检查了其他所有涉及数据库查询的接口,把类似的拼接写法全部改成了参数化查询。

加固措施

一是在nginx层加了WAF规则,拦截常见的SQL注入特征。宝塔面板的Nginx防火墙里有现成的规则集,开启之后能挡掉大部分自动化注入工具。

二是限制了数据库账号的权限。之前网站连接数据库用的是root账号,权限太大了。新建了一个只有增删改查权限的普通账号,网站连接数据库用这个新账号。即使被注入了,攻击者也无法执行删表、提权这些操作。

三是开启了数据库的操作日志,记录所有执行的SQL语句。万一再有异常,能快速定位到问题。

客户那边的情况

客户在南昌红谷滩区做二手车生意,平台上有几千辆车的信息。这次被攻击之后,他说之前完全不知道网站还有这种风险,以为只要服务器不宕机就没问题。

我跟他解释了一下,网站安全分好几个层面。服务器层面是防入侵,应用层面是防注入和XSS,数据层面是防泄露和篡改。每个层面都需要做对应的防护,不能只看服务器有没有宕机。

一点补充

SQL注入是最古老的Web漏洞之一,但到现在还是有人中招。根本原因就是开发的时候图省事,直接拼接SQL语句。参数化查询是解决注入最有效的方法,没有之一。如果网站用的是老代码,建议花点时间把所有SQL查询都过一遍,把拼接写法改掉。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

本站仅提供信息存储空间服务,所有资源均由注册用户上传,仅供学习参考,知识产权归属原作者所有。本站不保证内容的准确性、真实性和可靠性,因信赖任何信息而产生的风险由使用者自行承担。因线路故障、黑客攻击、病毒侵入等不可抗力造成的损失,本站不负任何责任。链接推荐的第三方网站内容,本站不保证其真实性、合法性,由此造成的损失由使用者自行承担。未经本站许可,不得盗链、盗用或仿造本站资源,否则本站保留追责权利。如有侵权,请联系我们,本站将在核实后三个工作日内处理。

大师邦 IT专栏 网站被SQL注入攻击,数据库里多了一堆垃圾数据 https://www.dashibang.com/archives/447

常见问题
  • 不能。本站资源仅供学习参考,请勿直接商用。因商用引起的版权纠纷,责任由使用者自行承担。介绍文章中的示例图片、字体通常不包含在下载包内,需另行购买。
查看详情
  • 多数是下载不完整,对比文件大小与网盘显示容量是否一致。建议用百度网盘软件或迅雷下载,不要用浏览器直接下载。排除后仍有问题,可联系客服。
查看详情
  • 联系客服并提供付款信息,客服会为您处理。
查看详情
  • 属虚拟商品,具有可复制性,一旦交付原则上不接受退款。 通常可退款:商品无法安装、与描述严重不符、重复扣款。 通常不退:因个人原因不想要了、已被下载或激活使用、环境不兼容、超出申请期限。 建议付款前仔细阅读商品说明,确认是您需要的资源再下单。
查看详情
  • 通过官网在线客服、底部“联系我们”页面提交工单,或发邮件至官方邮箱。提交时附上订单号和问题截图。
查看详情
  • 联系我们客服,我们会安排人专门处理,留好联系方式,找到第一时间通知您!
查看详情

相关文章

评论
暂无评论
在线客服

为您解决烦忧 - 工作时间 第一时间解决