MySQL的注射用GET或POST

问题描述:

我新的SQL注入和我想问一些关于更新语句MySQL的注射用GET或POST

不问如何防止注入 ......我要求例如如何注入更新语句到SQL注入更新声明)

如果我有一个名为“用户”和列id,Fname,Lname,Ip,性别,日期,签名 表,我用它来更新

mysql_query("UPDATE users SET Fname='$fname', Lname ='".$_GET["lname"]."', Ip ='$ip' ,Sex ='sex' WHERE id='$id'") 

您是否可以注入来更新lname的“签名”? 喜欢它是如何工作的?

edit.php?id=1&lname=Boris&lname=' , Signature = '123&ip=123&Sex=1 

(它不工作)

你可以参考我在哪里可以在此阅读?我试图寻找SQL注入,但我找不到你怎么可以更新语句内更新

+0

把它直,我可以让这个users'从未存在过的 – Akintunde007

+3

可能的复制表' [我怎样才能防止在SQL注入PHP?](https://*.com/questions/60174/how-can-i-prevent-sql-injection-in-php) – Akintunde007

+0

感谢重播我不认为它的重复.. 和你能给我例子你怎么能“让桌子永远不存在”,请你能告诉我你怎么能更新列喜欢签名,它不在声明中,所以你怎么能更新索姆如果它不在声明中呢? 再次感谢! 编辑:我没有问如何防止SQL注入..我想学习如何注入更新声明工作 – boris

由于您直接将输入注入到查询中而没有任何转义或验证,您基本上可以让用户在您的数据库中运行任何他想要的查询。

例如,在这种情况下,假设您只想让他编辑他的名字。您的查询看起来是这样的:

"UPDATE users SET Fname = '" . $_GET["fname"] . "' WHERE id = ".$_GET["id"]; 

如果他的投入是这样的: id=1&fname=John SQL运行以下查询:

UPDATE users SET Fname = 'John' WHERE id = 1 

但是,假设他的投入是这样的: id=1&fname=John', email='aaa 然后SQL将运行以下查询:

UPDATE users SET Fname = 'John', email='aaa' WHERE id = 1 

刚刚发生的事情是,即使你没有让他更新他的电子邮件。

的几个注意事项:

  • 上面的例子是破坏性最小的例子,我与SQL注入的思维, 攻击者可以做更多的恶意行为,包括 黑客攻击你的服务器。
  • 即使它是一个无辜的用户,假设他输入De'wayne来更改他的名字,您的查询将失败。
  • 你让你的用户更新他的细节id来自输入 - BAD的想法,他可以选择他想要的任何id,这意味着他有权更新所有用户数据。
  • 你不应该使用GET方法来更新/插入东西。只使用GET来获取东西。
+0

伙计我不要使用这个陈述真实... – boris

+0

@boris好吧,没有回答你的问题吗?如果不是,你的问题是什么? – HtmHell

+0

是的,但是您的注入将无法在“$ query =”UPDATE users SET Fname ='“。$ _ GET [”fname“]。”',Lname ='“。$ _ GET [”lname“]。”' ,'ip ='“。$ _ GET [”ip“]。”',Sex ='“。$ _ GET [”sex“]。”'WHERE id =“。$ _ GET [id]; ”only you on you statement。 。例如,如果我的语句是“mysql_query(”UPDATE users SET Fname ='$ fname',Lname ='“。$ _ GET [”lname“]。”',Ip ='$ ip',Sex ='sex'WHERE id ='$ id'“) ”你的注射不起作用 – boris

我认为这将有助于你

改变你的MySQL这样的脚本和这个PHP V5.6

mysql_query("UPDATE users SET Fname='$fname', Lname ='$lname', Ip ='$ip' ,Sex ='sex' WHERE id='$id'") 
+0

我没有问如何防止它..我要求例如如何注入更新语句到sql注入更新语句 – boris

+0

你想编辑和删除php mysq?l –

+0

是的...在生病后我学会了什么我生病请问如何编辑和删除php mysql 但现在没有.. 我只想知道“如何注入更新语句更新语句” – boris

你是非常正确的,你只是忘记了URL编码,它看起来像:

edit.php?id=1&lname=Boris&lname=Solnich&ip=123&Sex=1%27%20%2C%20Signature%20%3D%20%27123 
+1

你的回答是有误导性的,他可能认为SQL注入在他的情况下是不可能的。 – HtmHell