我正在测试客户端对SQL注入的网站漏洞,情况似乎是这样的。该网站托管在Windows服务器上的IIS中,并使用微软的.NET框架和SQL。我能够在表单中的符号中输入SQL语句。
但是当我在用户名中输入' or 1=1;--时,它会回复"Your Account Has Been Blocked"。显然,该字段没有得到验证,这是一个严重的安全问题。
如何使用SQL注入技术获取数据库的内容?我读过本渗透测试教程,但到目前为止没有运气。
当我在username字段中输入'时,我得到的是:

发布于 2014-04-18 14:14:17
在为客户提供工作之前,您应该确保拥有正确的技能集。这意味着你看网站是值得的,你不会给客户一种虚假的安全感。这将对您更好,因为您将知道如何采取正确的步骤来合法地执行测试,如果您在检查现场“针对所有可能的vul”时出错,不会被客户提起诉讼。
我可以推荐网络应用黑客手册:第二版作为一个良好的指南,开始在领域和资源在OWASP,但建议采取适当的培训和与更有经验的人一起工作。
尽管如此,SQLMap是一个很好的工具,可以在github上克隆,也可以在kali / backtrack中找到(但是这个版本可能已经过时了)。
确保您拥有客户/他们的服务提供商对测试的明确书面许可,并确保在将来警告“所有已知的漏洞”,否则您将面临被烧毁的风险。
发布于 2014-04-18 16:32:50
如何使用SQL注入技术获取数据库的内容?
您能否做到这一点将在很大程度上取决于信息从数据库中提取后如何使用。例如,如果从数据库中提取的信息仅用于查看是否具有有效凭据,而从不显示检索到的任何数据库内容,则无法显示数据库内容。
不过,您很可能可以在没有有效用户名/密码组合的情况下登录。你说你的第一个字符串收到了一条“帐户被阻塞”的消息。由于某种原因,数据库中的第一个返回结果很可能是一个锁定帐户。您可以通过执行类似于LIMIT 1,1 (如果是mysql,或者如果不是mysql)这样的操作来解决这个问题。
发布于 2014-04-19 01:31:25
如果这个表单是可破解的,其他的可能也是。获取数据库的内容是有问题的,但绕过正常的用户身份验证、更改其他用户帐户,或者只是简单地破坏数据库,这些都是表中的内容。我怀疑你的客户会希望你在他们的实时数据库上尝试这些东西。
https://security.stackexchange.com/questions/56089
复制相似问题