• HTML 响应修改
    • 功能说明
      • 自定义插入的 HTML
      • 关闭响应修改功能
      • 状态检查
    • FAQ
      • 1. 我修改了 inject.html,总要重启服务器才会生效

    HTML 响应修改

    功能说明

    为了防御/检测某些漏洞,CSRF、后台盲打等等,OpenRASP 允许你在 页面末尾 上注入代码,e.g

    1. <!-- Added by OpenRASP -->
    2. <script type="text/javascript">
    3. alert('Hello from OpenRASP - https://rasp.baidu.com');
    4. </script>
    5. <!-- End added by OpenRASP -->

    要注意的是,只有在当满足如下条件时,OpenRASP 才会插入HTML

    • 页面响应的 Content-Type 为 text/html,且状态码为 200
    • 响应是动态生成的,比如 JSP 文件或者 Servlet
    • inject.urlprefix 配置选项不为空
    • 要注入的内容,aka <app_home>/rasp/assets/inject.html 存在且内容不为空
      另外,如果你使用的是自动化安装包,我们在默认生成的 rasp.properties 配置文件里,禁用了这个功能
    1. # plugin.timeout.millis=100
    2. # body.maxbytes=4096
    3. hooks.ignore=http_output
    4. # plugin.maxstack=100

    你需要手动注释掉 hooks.ignore 这一行,才能开启这个功能

    自定义插入的 HTML

    • 你需要配置 inject.urlprefix 选项,设置要匹配的URL前缀,e.g http://www.baidu.com/admin/
    • 编辑 /rasp/assets/inject.html 文件,输入你要插入的内容,e.g
      1. <!-- Added by OpenRASP -->
      2. <script type="text/javascript">
      3. alert('Hello from OpenRASP - https://rasp.baidu.com');
      4. </script>
      5. <!-- End added by OpenRASP -->

    OpenRASP 会监控这个文件,保存后立刻生效

    关闭响应修改功能

    删除 <app_home>/rasp/assets/inject.html 文件,删除后立即生效

    状态检查

    访问一个 JSP 或者 Servlet 页面,检查注入的内容是否存在即可。

    注意: 浏览器可能有缓存,建议清掉缓存测试

    FAQ

    1. 我修改了 inject.html,总要重启服务器才会生效

    如果你是在 VMWare 虚拟机里测试 OpenRASP,然后插件是放在 VMWare 共享 里的,这个时候 inotify 可能不会生效,也就无法实时更新 js 脚本。

    这可能是因为 vmhgfsinotify 本身存在兼容性问题。最快的解决方法,就是将整个服务器软件都复制到虚拟机的磁盘上,比如 /root/tomcat/

    原文: https://rasp.baidu.com/doc/usage/inject.html