人们如何利用这个安全漏洞


How people can use this security hole?

我有浏览器游戏。有消息发送表单

我没有为"message_content"变量创建真正的转义字符串函数。

在插入消息后,用户可以做任何选择,任何更新?

我的意思是用户可以在message_content中编写sql代码,可以在sql中更新值?如更新users设置gold = '9999',其中username = 'my_username'

谢谢…这只是一个问题。别担心,我已经做了mysql_real_escape_string

请了解如何使用参数化查询,最好是与PDO模块,以保护您的web应用程序。http://bobby-tables.com/php有例子让你开始。

mysql_query函数不允许同时执行多条语句。因此,经常提到的Robert'; DROP TABLE Students; --的例子将不起作用。

这也意味着利用仅限于语句类型。因此,如果注入点在INSERT语句中,则只能利用该漏洞将任意值插入到特定的表中。

但是,仍然可以将数据库中的任意数据注入到该表中。如果攻击者将消息发送给自己,他将能够从数据库中读取任意数据,也可能能够读写服务器上的任意文件。

如果不转义用户输入,可能会发生以下情况:

想象一下这个查询:

SELECT * FROM user WHERE login='$login'

其中$login为用户输入。

现在,用户在变量中插入以下内容:'; DROP TABLE user; --

将执行以下查询:

SELECT * FROM user WHERE login=''; DROP TABLE user; --'

这是一个非常通用的例子,但我希望你能理解