我的一位客户要求我尝试分析一个网站是否存在漏洞。
发生的事情是,大约每个周末,数据库中一个表的一个记录的字段每次都会更改为相同的内容。从 到Jewelry
。Jewelery <a href="http://[**REMOVED-FOR-SF**]/viewPress?press_id=407">[**REMOVED-FOR-SF**]</a><a href="http://[**REMOVED-FOR-SF**]/[**REMOVED-FOR-SF**].html">[**REMOVED-FOR-SF**]</a>
它总是相同的记录这一事实让我认为它是某种自动脚本,但如果是的话,我找不到它。
已完成以下工作:
- 修复 SQL 注入漏洞
- 阻止在 777 个目录中执行 PHP
- 每次修复后都更改数据库密码
- 每次修复后都更改 CMS 密码
下一步是什么?
答案1
攻击者很可能不需要知道密码即可执行更改 - 以下是我的解决方法:
找到您的 CMS 的查询函数包装器并更新它以记录到文件和/或在查询字符串上的正则表达式与您的垃圾邮件字符串匹配时发送电子邮件 - 包括任何和所有相关的服务器和 CMS 变量,这可能有助于识别问题的来源。
请注意,您可以致电调试回溯()在 PHP 4.3+ 上隔离包含文件,如果这可能是恶意插件所为。
答案2
可能是遗留的注入攻击 - 您可以设置 DB 触发器,以便在记录再次更改时通知您吗?然后将其与您的 Web 服务器日志关联起来 - 应该可以立即找到罪魁祸首。
还要确保你记录了尽可能多的信息(引荐来源等)
答案3
您查看过 SQL 服务器了吗?也许那里正在运行一个脚本,或者设置了某个程序来进行更新,而这个更新是出于正当理由(甚至只是测试目的)进行的,后来被遗忘了,但仍被触发。很可能有一些像那个拼写错误一样的硬编码值。
答案4
网站的负载有多重?也许数据包捕获是一个选项,它可以显示当负载发生变化时从外部世界传来的所有信息。这至少可以让您知道服务器内部是否有东西在发生变化,或者您的漏洞在哪里。