我的网站最近受到了攻击。我已经清理了所有代码,但我真的无法弄清楚他们如何创建文件甚至注入文件。即使对我来说,我也取消了所有的写作权利。我决定从现在开始记录所有请求,直到我解决了这个问题。
现在我已经得到了一个结果,它肯定会弄乱一些东西。但我无法弄清楚发生了什么......
请求可在此处找到: https://pastebin.com/TQGnvQjz
文件的开头:
bsbcy=vasa&txhw=LCRrLzY6ZXVjbDoxLSZmIHdqNSI1LGA0NXYvLnFwf2NjIS4vfiR8YSk6fX8qdGkpNCY9N
我应该注意它打印给我的方式,以及URL的样子。 首先,网址是/index.php?bsbcy=vasa 所以第一个变量是GET变量。
第二个变量是POST变量。 现在这看起来像一些base64。我尝试解码它,但base64decode.org要么吐出一个充满乱码的.bin文件,要么我打开实时转换,它会吐出相同的乱码,但我不必下载它。
有人知道胡言乱语应该是什么吗?我打赌它应该注入或创建一个文件。但我无法知道,直到我能够解码它。
提前致谢!
此致 sanderbebo。
答案 0 :(得分:0)
首先,永远不要使用任何用户直接发送给你的东西。你通过GET或POST或其他任何方式获得的任何东西,消毒它。您所面临的问题并未通过阻止写作权来解决。阻止权限始终可以使用代码进行更改。无论是谁攻击你,都能够攻击你,因为你仍然活着,允许他进入。
现在我不确定您的代码是什么样的,但您可能希望在处理之前真正清理所有数据输入。此外,您可能希望使用密钥加密和解密所有数据。这样,如果有任何数据进入并且它与您的加密不一致,则返回null并且根本不处理。这可能看起来很多,但是当攻击发生时你会更多地工作。
考虑一下这篇文章可能会有用。 https://www.dreamhost.com/blog/php-security-user-validation-sanitization/
答案 1 :(得分:0)
我现在正在使用cloudflare,从那时起,再也没有感染了。
还要进行一些检查,即如果POST值太长则拒绝进一步的连接。不知道它是否像我希望的那样工作,但它并没有伤害正常的访客,应该惹恼机器人。这很好。
感谢大家的建议,信息和帮助!