Cyp*_*106 6 php sql security sql-injection
我有一个完全自定义的PHP站点,有很多数据库调用.我刚被注射入侵.下面的这一小块代码出现在我的几十个PHP页面中.
<?php /**/ eval(base64_decode(big string of code....
Run Code Online (Sandbox Code Playgroud)
我一直非常小心我的SQL调用等等; 他们都是这种格式:
$query = sprintf("UPDATE Sales SET `Shipped`='1', `Tracking_Number`='%s' WHERE ID='%s' LIMIT 1 ;",
mysql_real_escape_string($trackNo),
mysql_real_escape_string($id));
$result = mysql_query($query);
mysql_close();
Run Code Online (Sandbox Code Playgroud)
为了记录,我最后很少使用mysql_close()
.这恰好是我抓住的代码.我想不到任何我不使用的地方mysql_real_escape_string()
,(虽然我确定可能有一对.我很快就会贪图找出来).也没有用户可以放入自定义HTML或任何内容的地方.事实上,大多数用户可访问的页面,如果他们使用SQL调用,几乎不可避免地SELECT * FROM
是使用GET或POST的页面,具体取决于.
显然我需要加强我的安全性,但我从来没有像这样的攻击,我不肯定我该做什么.我决定对我的所有输入进行限制,然后查看我是否错过了mysql_real_escape_string
某个地方.还有其他人有什么建议吗?
此外,这种类型的代码有什么作用?为什么会这样?
这可能是由于任何已经危害服务器的常见攻击造成的.
通常它是由LFI(本地文件包含)引起的,但它可能是由任何东西引起的.
您可以从以下网址了解更多有关LFI
http://labs.neohapsis.com/2008/07/21/local-file-inclusion-%E2%80%93-tricks-of-the-trade/
希望它有所帮助(一点点)
事实上,SQL注入并不是您的服务器可能遭受的唯一攻击类型.
而且这个看起来不像SQL注入.
大部分时间它只是你的PC上的特洛伊木马,窃取FTP密码.
要查看实际代码,请用echo替换eval.但我怀疑它有什么有趣的