我正在尝试解决我大学的互动练习。有一个字段用于用户名,一个字段用于密码。我必须在不知道密码的情况下使用我的学生 ID(我当然知道,但我不想在这里透露)登录。在尝试了一些简单的东西后,我收到了下面的错误消息。我想这应该对我有帮助,但我不确定。也许有人可以给我一个提示?
问问题
155 次
2 回答
0
看起来你在正确的轨道上使用你的' OR 1=1
,但是你有一个语法错误,因为原始查询中的字符串在你已经关闭它之后又被关闭了。如果您以注释结束注入,该注释' OR 1=1 --
将告诉服务器忽略该语句的其余部分。
编辑:我不确定为什么评论方法不起作用,但即使你使用其他提到的重新打开字符串的技术,我现在看到仍然不够 - AND 的优先级高于OR,因此您将获得所有行,而不仅仅是带有您的用户名的行。你可以试试
' OR name='myId
生产
WHERE name='myId' AND password='' OR name='myId'
因此它将匹配具有正确用户名和密码的任何行,或任何具有正确用户名的行。
于 2017-06-09T01:51:39.433 回答
0
你可以试试' OR '1'='1
or ' OR 1=1 --
,这样的语法错误是因为代码中的查询字符串没有关闭,所以你应该尝试关闭它。
于 2017-06-09T10:21:42.643 回答