【发布时间】:2013-08-09 02:23:11
【问题描述】:
我正在使用自动回复电子邮件软件 (AutoResponse Plus - ARP3)。这是一个安装在 cgi-bin 目录中的 perl 脚本。上周有人入侵了该软件并使用该软件从我的服务器发送了大量垃圾邮件。很少有研究表明该软件没有防止 SQL 注入的机制。
如果您在同一条船上,请联系供应商进行修复。看起来没有简单的解决方案可以 100% 修复它,因为该软件的源代码已被缩小和混淆。
【问题讨论】:
-
您展示的程序示例被故意缩小和混淆。在处理它之前,人们必须对其进行分解和解开。没有什么灵丹妙药可以防止 SQL 注入,除了: 永远不要将变量插入到 SQL 查询中。相反,可以使用占位符。如果代码使用 DBI 接口,那么更改代码以使其使用占位符可能非常容易。但这不能通过在顶部添加一些简单的额外行来完成。
-
运行
perl -p 's/\"(\\x\w\w)+\"/$&/gee' the_script,它的可读性会大大降低。 -
如果你熟悉 php,为什么不创建一个包装 php CGI 脚本来读取 POST 变量,然后创建一个合适的 CGI 环境(即设置一些环境变量,REQUEST_METHOD="GET",QUERY_STRING ="...") 用于混淆的 perl 脚本?
-
我在 shell 中运行了这个命令 # perl -p 's/\"(\\x\w\w)+\"/$&/gee' arp3-new.pl 并出现错误无法打开 perl 脚本 "s/\"(\\x\w\w)+\"/$&/gee": 没有这样的文件或目录
-
@Vij mob 忘记了一个标志,它应该是
perl -pe,而不是perl -p。
标签: sql code-injection