zap工具显示安全漏洞,但我们无法在源代码中找到这些漏洞?

时间:2018-05-08 10:15:32

标签: sql-injection zap

漏洞显示为: -

  1. SQL注入 - SQLite
  2. 方法: GET

    参数:查询

    攻击:'| case randomblob(10000000)当不为null然后“”else“”结束 -

    证据:使用参数值['|]可以控制查询时间case randomblob(10000000)当不为null然后“”else“”end - ],这导致请求花费[542]毫秒,参数值['| case randomblob(100000000)当不为null然后“”else“”end - ],这导致请求花费[900]毫秒,当原始未修改的查询值[query]花了[167]毫秒。

    1. SQL注入 - Oracle - 基于时间
    2. 方法: GET

      参数:查询

      攻击:字段:[查询],值[查询并存在(SELECT UTL_INADDR.get_host_name('10 .0.0.1')来自双联盟SELECT UTL_INADDR.get_host_name('10 .0.0.2')来自双联盟SELECT UTL_INADDR.get_host_name('10 .0.0.3')来自双联盟SELECT UTL_INADDR.get_host_name('10 .0.0.4')来自双联盟SELECT UTL_INADDR.get_host_name('10 .0.0.5')来自双联) - ]

      1. 高级SQL注入 - Oracle AND基于时间的盲目
      2. 方法: GET

        参数:查询

        攻击:查询AND 2972​​ = DBMS_PIPE.RECEIVE_MESSAGE(CHR(113)|| CHR(65)|| CHR(80)|| CHR(114),5)

        1. SQL注入 - MsSQL
        2. 方法: GET

          参数:查询

          攻击:查询WAITFOR DELAY'0:0:15' -

          1. SQL注入 - Hypersonic SQL - 基于时间
          2. 方法: GET

            参数:查询

            攻击:字段:[查询],值[“;从DATA_SCHEMA.SYSTEM_COLUMNS中选择”java.lang.Thread.sleep“(15000),其中TABLE_NAME ='SYSTEM_COLUMNS',COLUMN_NAME ='TABLE_NAME ' - ]

            1. SQL注入 - PostgreSQL - 基于时间
            2. 方法: GET

              参数:查询

              攻击:字段:[查询],值[转换时的情况(pg_sleep(15)为varchar)> ''然后0其他1结束]

              1. SQL注入 - MySQL
              2. 方法: GET

                参数:查询

                攻击:查询/睡眠(15)

                1. 高级SQL注入 - PostgreSQL> 8.1堆叠查询(评论)
                2. 方法: GET

                  参数:查询

                  攻击:查询; SELECT PG_SLEEP(5) -

                  1. 高级SQL注入 - Oracle堆叠查询(DBMS_PIPE.RECEIVE_MESSAGE - comment)
                  2. 方法: GET

                    参数:查询

                    攻击: 2018年2月; SELECT DBMS_PIPE.RECEIVE_MESSAGE(CHR(105)|| CHR(122)|| CHR(102)|| CHR(108),5)FROM DUAL - < / p>

                    1. 高级SQL注入 - Microsoft SQL Server / Sybase基于时间的盲人。
                    2. 方法: GET

                      参数:查询

                      攻击:查询)WAITFOR DELAY CHAR(48)+ CHAR(58)+ CHAR(48)+ CHAR(58)+ CHAR(91)+ CHAR(83)+ CHAR(76) + CHAR(69)+ CHAR(69)+ CHAR(80)+ CHAR(84)+ CHAR(73)+ CHAR(77)+ CHAR(69)+ CHAR(93)AND(1972 = 1972

                      遵循给定示例的所有源代码: -

                      public interface UserRepository extends JpaRepository<User, Long> { @Query("select u from User u where u.firstname = :firstname or u.lastname = :lastname") User findByLastnameOrFirstname(@Param("lastname") String lastname, @Param("firstname") String firstname); }

1 个答案:

答案 0 :(得分:1)

选择其中一个基于时间的攻击并重新运行 - 您可以通过右键单击ZAP中的警报并选择“使用请求编辑器打开/重新发送”来完成此操作。 检查请求花了多长时间(显示在对话框的底部) - 是否与攻击使用的延迟相同(或多一点)? 如果是这样,请尝试增加延迟并重新发送 - 现在是否需要更长的时间?

如果时间受到攻击中指定的时间的影响,那么您将遇到SQL注入漏洞。

为什么havnt我说了你发布的源代码?那是因为我不知道那是不是所有的相关代码:)

您可能还想尝试在代码上使用静态分析器 - 它可能会显示加载的误报,但您可以专注于它报告的任何SQL注入漏洞。