Operaciones de cookies usando reglas de seguridad de Mods

0

Aquí, estoy tratando de lograr que se llame a un script Lua desde las reglas de seguridad de mods.

Hay 2 componentes: -

1.example.com (WAF)

2.test.com (aplicación web)

test.com contiene páginas: -

index.php
protectedpage.php

Si el usuario accede a http://example.com/protectedpage.php , la regla carga el script lua y escribe datos en lua_output.txt.

Me he quedado atrapado aquí durante los últimos 2 días intentando varias variaciones.

  

Contenido de /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/

  

Contenido de /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 regla se ejecuta. Pero el guión no lo es. No estoy seguro de si está encadenando o no. Por favor hazme saber como arreglar esto. Gracias,

Referencias hasta ahora: - 1. Documentación ModSecurity

  1. Lua scripting blog 1

  2. blog 2

pregunta Goron 08.08.2018 - 07:27
fuente

1 respuesta

0

Este es un script de lua, ¿por qué haces primero un secreto y luego una cadena? Mejor llama al script y obtén la var REQUEST_FILENAME y verifica que coincida con tu patrón o agrega una ubicación / LocationMatch para la ruta y agrega el SecRuleScript adentro.

La primera regla está incompleta, ya que es un inicio en cadena que no tiene fin, ya que la siguiente no es una regla es una llamada de script.

    
respondido por el Manuel Spartan 17.08.2018 - 18:39
fuente

Lea otras preguntas en las etiquetas