这是一个基本计划。我很高兴能产生类似成功的东西,这是一个Uni项目。伪代码很棒。
...
但是,6.显然都是应用程序的关键部分而且是错误的。例如,页面可能会像这样响应
Error: '-- is not a valid user name.
在第4阶段,答案是
Error: is not a valid user name.
或者
Error: username must be a minimum of 6 characters.
答案 0 :(得分:0)
好像在(4),您想先尝试发送一些良性值,这样您就可以看到在正常情况下返回的页面类型。
例如,生成一个随机的三个字母的“用户名”并提交它。您可能会收到类似“错误:bfw不是有效用户名”的响应。或“错误:用户名太短”。
完成后,您可以发送字符串尝试SQL注入,并查看结果是否在质量上有所不同。因此,如果您发送'--
并获得与发送随机良性“用户名”时相同的结果,则可能不会受到攻击。另一方面,如果你得到的回复是不同的,并且包含“警告,你在第1行的SQL中有错误......”之类的文本,那么它可能很容易受到攻击。 (尽管如此,它并不需要向您发出警告,因为如果它与您从良性数据中获得的响应大不相同,即使是通用错误页面也可能表示漏洞。)
答案 1 :(得分:0)
提供了许多测试来发现和确认SQL注入漏洞,这是我对第65页的总结。
“发送'
或'--
并希望收到错误。”
错误消息或500服务器错误表示存在漏洞。包含'
或'--
(如在用户'
或'--
中的密码不具备该密码的响应...)除非是堆栈跟踪,否则可能不容易受到攻击
“发送1' or '1'='1
或1') or ('1'='1
并希望收到数据库中的所有条目。”
当响应代码为200且响应中未收到攻击字符串时,可以假定站点容易受到攻击。包含单词'error'或攻击字符串的页面表示阻力,500也是如此。
“发送value' or '1'='2
或value') or ('1'='2
并期望易受攻击的应用响应,就像它只收到value
一样。”
“1' and '1'='2
或1') and ('1'='2
。如果成功,则不会从表格中返回任何行。”
“1' or 'ab'='a'+'b
或1') or ('ab'='a'+'b
。如果成功,则返回相同的内容
信息作为一个永远真实的条件“
“1' or 'ab'='a' 'b
或1') or ('ab'='a' 'b
。如果成功,则返回相同的内容
信息作为一个永远真实的条件“
“1' or 'ab'='a'||'b
或1') or ('ab'='a'||'b
。如果成功,则返回相同的内容
信息作为一个永远真实的条件“
本书中还包括其他示例。