Operazioni sui cookie utilizzando le regole di Modsecurity

0

Ecco, sto cercando di realizzare chiamando uno script Lua dalle regole di modsecurity.

Ci sono 2 componenti: -

1.example.com (WAF)

2.test.com (Applicazione Web)

test.com contiene pagine: -

index.php
protectedpage.php

Se l'utente accede a http://example.com/protectedpage.php la regola carica lo script lua e scrive i dati su lua_output.txt.

Sono rimasto bloccato qui negli ultimi 2 giorni provando diverse varianti.

Contents of /etc/apache2/sites-enabled/example.com.conf

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/example.com/public_html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    ProxyPreserveHost On
    ProxyRequests Off

    LoadModule security3_module /home/testuser/spiderlabs/ModSecurity-apache/src/.libs/mod_security3.so
    <IfModule security3_module>
            modsecurity_rules 'SecRuleEngine On'
            modsecurity_rules 'SecRequestBodyAccess On'
            modsecurity_rules 'SecResponseBodyAccess On'
            modsecurity_rules_file "/etc/apache2/modsecurity.d/include.conf"
            modsecurity_rules 'SecAuditLogFormat JSON'
    </IfModule>

    #Access to /getprotected 
    modsecurity_rules 'SecRule REQUEST_FILENAME "^/getprotected.php$" "phase:2, t:none, t:normalisePath, t:lowercase, t:urlDecodeUni, chain, deny, log, id:1301"'
    modsecurity_rules 'SecRuleScript /etc/apache2/lua/checkaccess.lua \
    "id:400,Phase:2"'

    ProxyPass /getprotected.php !
    ProxyPass /getpassword.php !
    ProxyPass / http://test.com:8080/
    ProxyPassReverse / http://test.com:8080/

Contents of /etc/apache2/lua/checkaccess.lua

   #!/usr/bin/lua

    function main()
        local f = assert(io.open('/etc/apache2/lua/lua_output.txt','a'))
        f:write("--- Hello world ---\n")
    end

La regola viene eseguita. Ma la sceneggiatura no. Non sono sicuro se il suo collegamento o meno. per favore fatemi sapere come risolvere questo problema. Grazie,

Riferimenti finora: - 1. Documentazione ModSecurity

  1. Lua scripting blog 1

  2. blog 2

posta Goron 08.08.2018 - 07:27
fonte

1 risposta

0

Questo è uno script lua, perché stai facendo prima un secrule della catena, è meglio chiamare lo script e ottenere la variabile REQUEST_FILENAME e controllare che corrisponda al tuo pattern o aggiungere un Location / LocationMatch per il percorso e aggiungere il SecRuleScript all'interno.

La prima regola è incompleta in quanto è un inizio di catena che non ha fine in quanto il prossimo non è una regola è una chiamata di script.

    
risposta data 17.08.2018 - 18:39
fonte

Leggi altre domande sui tag