通过 sql-injection 的恶意脚本

信息安全 Web应用程序 sql注入 攻击预防
2021-09-08 06:21:58

我的一位客户在他的博客上发帖时遇到问题,当我查看数据库时,我发现时事通讯表(发送有关博客帖子的电子邮件)有一个恶意脚本。

恶意脚本

由于我只是一个新手前端开发人员,我不知道这个脚本会做什么。任何人都可以帮助我实现攻击者的目标吗?

此外,在查看攻击者的 ip(未被混淆)时,我发现他正在使用一所大学来制作它。(离我所在的位置和客户的位置不远)

在此处输入图像描述

我正在使用客户端验证,并使用正则表达式验证后端中的数据。而且这个脚本和参数不匹配,所以,我怀疑他发了一个帖子到数据库。

我怎样才能防止这种攻击?

攻击者想要什么?

编辑:

根据要求,代码:

sample@email.tst
sample@email.tst' and 2*3*8=6*8 and 'sfn7'='sfn7
sample@email.tst" and 2*3*8=6*8 and "sxju"="sxju
sample@email.tst%' and 2*3*8=6*8 and 'l6b4'!='l6b4%
sample@email.tst&n945604=v918673
sample@email.tst'"()&%<acx><script >j9ml(9550)</script>
sample@email.tst_9225

抱歉,如果这不是提出这个问题的地方,我认为这可能不是 StackOverFlow 问题。

1个回答

有趣的东西。我想成为目标应该是相当讨人喜欢的。

我从来没有抓到过这样的人。坦率地说,我认为操作行是 sample@email.tst'"()&%j9ml(9550) 他们显然是在尝试执行一个名为“j9ml”的函数。不过不太确定。我不会太担心除非您需要维护一个超安全的博客或者您的脸上有鸡蛋(垃圾邮件发生或其他)。

我同意@jcaron 的观点,最好的防御是参数化所有查询和存储过程。也就是说,您应该使用引用所有用户输入的问号语法并防止这种攻击。

重要的是还要承认它可能不是恶意攻击。这孩子可能只是在玩。甚至可能是一项任务,在网站上执行一项功能不一定是恶意或非法的,我不认为。