gpt4 book ai didi

php - 基本的sql注入(inject)

转载 作者:行者123 更新时间:2023-11-29 01:37:27 25 4
gpt4 key购买 nike

我正在努力学习 SQL 注入(inject),以便将来保护自己。

这是 PHP 代码:

  $req = mysql_query("INSERT INTO ip_change VALUES('', '".$_SESSION['id']."', '".$_POST['raison']."')") or die(mysql_error());

并且用户可以完全控制 $_POST['raison'] 内容。

当我使用 'hello 作为 $_POST['raison'] 值时,我得到了

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'hello')' at line 1

当我使用 '); DELETE * FROM tabledetest;") 或 die(mysql_error());-- 作为我得到的 $_POST['raison'] 值

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DELETE * FROM tabledetest;") or die(mysql_error());--')' at line 1

所以我不明白为什么我的请求没有注入(inject),我不能删除我的tabledetest表。

如有任何帮助,我们将不胜感激。

最佳答案

那是你没做好注入(inject)!

这是您完成的。自动格式会提示你:

<?php
$_SESSION['id'] = "123"; //Just assume

$req = mysql_query("INSERT INTO ip_change VALUES('', '123', ''hello')") or die(mysql_error());

它没有正确结束语句。

对于下一个:

$req = mysql_query("INSERT INTO ip_change VALUES('', '123', ''); DELETE * FROM tabledetest;") or die(mysql_error());--')") or die(mysql_error());
  1. 来自 the manual :

mysql_query() sends a unique query (multiple queries are not supported) to the currently active database on the server that's associated with the specified link_identifier.

mysqli 支持 multiple statements .

  1. -- 不能注释PHP代码! PHP注释为//#

一些可能对您有帮助的链接:[类似于您的问题]

  1. https://en.wikibooks.org/wiki/PHP_Programming/SQL_Injection_Attacks
  2. http://roshanbh.com.np/2007/12/sql-injection-attack-examples-and-preventions-in-php.html
  3. SQL injection test - mysql_query

关于php - 基本的sql注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36969254/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com