首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >需要sql注入方面的帮助

需要sql注入方面的帮助
EN

Stack Overflow用户
提问于 2011-10-13 04:45:40
回答 3查看 350关注 0票数 7

首先,我不会尝试黑客攻击或做任何非法的事情。我想我应该让你们知道。我有一个客户想让我对他的系统做一些修改,当我看着它的时候,我注意到什么都没有漏掉。我不是开玩笑,什么都逃不掉。我向他解释说,拥有这样的系统是不安全的。然后他继续告诉我,他的系统像这样已经有几年了,什么也没有发生。我需要告诉他他的系统是不安全的,但我真的不知道如何执行sql注入。下面是一些使用$_GET但没有转义的查询。

代码语言:javascript
复制
SELECT *,DATE_FORMAT(joined,'%M %d, %Y') as \"Joined\" FROM `members` WHERE `name` LIKE '".$ltr."%' ORDER BY points DESC LIMIT $page,50

这是另一个:

代码语言:javascript
复制
SELECT * FROM groups WHERE id=$thisladder[grid]

我看到的唯一“可能”清理$_GET的就是这个函数:

代码语言:javascript
复制
if (!ini_get('register_globals')) {
   $superglobals = array($_SERVER, $_ENV,
       $_FILES, $_COOKIE, $_POST, $_GET);
   if (isset($_SESSION)) {
       array_unshift($superglobals, $_SESSION);
   }
   foreach ($superglobals as $superglobal) {
       extract($superglobal, EXTR_SKIP);
   }
}

上面的函数可能正在清理变量。是的,系统也使用了寄存器全局变量,这也是不好的。

我还做了备份以防万一。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-10-13 04:54:47

没有比http://xkcd.com/327/更好的说法了。

但话又说回来,就像Marc B说的那样,忘了SQL注入吧,register_globals要糟糕得多。我从来没有想过我会真的看到它被仿真,以防它关闭。

票数 6
EN

Stack Overflow用户

发布于 2011-10-13 04:55:17

一些有趣的事情来告诉你的“朋友”他的代码是多么的愚蠢:

代码语言:javascript
复制
http://example.com/badscript.php?_GET[]=ha+ha+I+pwned+your+GET+superglobal
http://example.com/badscript.php?_SESSION[issuperuser]=1

这就是为什么register_globals是一个彻头彻尾的愚蠢的想法,并且(在过了很长时间之后)最终被默认为

忘记了SQL注入--这段愚蠢的代码允许远程PHP变量注入。

票数 5
EN

Stack Overflow用户

发布于 2011-10-13 05:07:23

如果登录代码看起来像这样:

代码语言:javascript
复制
$query = 'SELECT id FROM users WHERE username=\''.$_POST['username'].'\' AND password=\''.$_POST[password].'\'';
$result = mysql_query($query);
etc, etc...

尝试在登录字段中键入以下内容

代码语言:javascript
复制
username = "whatever"
password = "' OR 1"

讲得通?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7746357

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档