【问题标题】:verify sql injection through sqlmap通过sqlmap验证sql注入
【发布时间】:2015-12-10 15:01:54
【问题描述】:

我有一个小型应用程序,有一个字段可以写一个数字并提交,页面请求发送到服务器,我得到响应或没有响应(根据参数)

现在我检查了 sql 注入字段,发现它是可注入的,这对我来说很好,因为我处于测试模式。

这是结果,现在我如何验证这些字段实际上是可注入的,我尝试复制该字段中的有效负载并提交它,但它没有工作。

带参数的查询是这样的

$q = " select * from users where id = $_REQUEST['cnic']";

// REST OF CODE FOR ITERATING QUERY

【问题讨论】:

  • 您确实需要发布此漏洞已发现的弱代码。由于您没有提供足够的内容,因此无法知道如何重现此内容。
  • 是的,那是 危险 错误代码,archetypical injection bug,所以扫描仪找到它是件好事。在测试注入错误时,您必须正确地对参数进行 URI 编码。在这种情况下,page.php?id=PAYLOAD 其中PAYLOAD 是正确编码的注入负载。
  • 自从sql注入被社区知道至少15年了。 stackoverflow.com/questions/5721786/… 你会在这里找到一个很好的解释。您还可以在此处找到非常详细的演示页面codebashing.com/sql_demo
  • 第二个应该在您的页面上输出不同的内容。
  • 我怀疑这是实际代码。您会在注入的数据中收到单个 ' 的语法错误,该错误缺少对应的数据。

标签: php mysql security penetration-testing sqlmap


【解决方案1】:

鉴于 sqlmap 使用了 AND/OR 基于时间的盲注,您需要查看多长时间执行查询。

如果您提交值“111' AND (SELECT * FROM (SELECT...”,它将需要 5 秒或更长时间(因为其中的 SLEEP(5) 会被执行)。

请参阅 sqlmap 文档,我相信他们在这里更深入地描述了这一点。

【讨论】:

    猜你喜欢
    • 2023-03-31
    • 2017-05-20
    • 2019-06-24
    • 1970-01-01
    • 1970-01-01
    • 2012-04-06
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多