Deploying AcuSensor for JAVA - Linux (WebSphere 18.0.0.3 + WAR file)
The following article shows you how you can run a Java application in WebSphere and then use AcuSensor to run an interactive application security testing (IAST) scan for that application.
🔍 Environment Notes |
|
Step 1: Prepare an Example Application Using Eclipse IDE
PreRequisites
- Install JAVA
- Install Eclipse IDE for Enterprise JAVA and Web Developers
- Install Eclipse Extensions from "Web, XML, Java EE and OSGI Enterprise Development":
- Eclipse Java EE Developer Tools
- Eclipse Java Web Developer Tools
- Eclipse Web Developer Tools
- JST Server Adapters Extensions (Apache Tomcat)
Create your Application
- Go to the menu item File → New → Project
- In the New Project wizard, search for and select the Dynamic Web Project option and click on the Next button
- Set the Project name field to axexample-java
- Set the Target runtime field to Apache Tomcat v8.5
- Set the Dynamic web module version field to 3.1
- Set the Configuration field to Default Configuration for Apache Tomcat v8.5
- Click on the Next button
- In the Java window, leave default settings and click on the Next button
- In the Web Module window, enable the Generate web.xml option and click the Finish button
- In the Open Associated Perspective? dialog, click on the No button
- Expand the axexample-java project
- Right-click on the src folder
- Select the New → Other option
- Highlight the Servlet option
- Click on the Next > button
- Set the Java package field to com.mytest.axexample
- Set the Class name field to axExampleJavaServlet
- Click on the Finish button
- Edit the contents of the axExampleJavaServlet.java file to read as follows:
package com.mytest.axexample; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class HelloWorldServlet */ @WebServlet("/axExampleJavaServlet") public class axExampleJavaServlet extends HttpServlet { private static final long serialVersionUID = 1L;
/** * @see HttpServlet#HttpServlet() */ public axExampleJavaServlet() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { PrintWriter out = response.getWriter(); out.print("<html><body><h1>Test JAVA Site Example for WebSphere</h1><br>Welcome to the main page.<br></body></html>"); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, response); } } |
- Expand the axexample-java project, right click on the axexample-java/src/main/webapp folder, and select the New → File option
- Set the filename to index.html and click on the Finish button
- Edit the contents of the index.html file to read as follows:
<html> <head> <title>Test JAVA Site Example for WebSphere</title> </head> <body> <h1>Test JAVA Site Example for WebSphere</h1><br/><br/> <a href="axExampleJavaServlet">Click here to invoke servlet</a> </body> </html> |
- Make sure that the changes to both new files are saved
- Right-click on the axexample-java project, click on the Export… option, search for the WAR file option, and select it
- Click on the Next > button and select a Destination for your exported WAR file
- Ensure that the filename for your export file is axexample-java.war
- Click on the Finish button
Step 2: Prepare AcuSensor for Java
We will deploy the test application to the following URL: http://websphere-backend-proto.invicti.site:9080/axexample-java/ (in a production environment, you will need to change this to the hostname you will use for your deployment)
- Create a new target for your URL
- Download AcuSensor for Java from the Acunetix UI and retain the AcuSensor.jar file for the next step
- On the WebSphere machine:
- Create a root folder /acusensor
- Copy the AcuSensor.jar file to /acusensor/AcuSensor.jar
Step 3: Prepare a folder for the AspectJWeaver component
On the WebSphere machine:
- Create a root folder /aspectjweaver
- Download AspectJWeaver from https://repo1.maven.org/maven2/org/aspectj/aspectjweaver/1.9.7/aspectjweaver-1.9.7.jar
- Copy the downloaded file into /aspectjweaver/aspectjweaver-1.9.7.jar
Step 4: Deploy AcuSensor and required components
On the WebSphere machine:
- Create a file /opt/wlp/usr/servers/defaultServer/jvm.options, and set the contents as follows:
-javaagent:/aspectjweaver/aspectjweaver-1.9.7.jar -Dacusensor.debug.log=ON |
- Edit the file /opt/wlp/usr/servers/defaultServer/server.xml, and just before the closing </server> tag, add the following:
<library id="global"> <fileset dir="/acusensor/" includes="AcuSensor.jar" /> </library> |
Step 5: Deploy your application
- Copy your axexample-java.war file into the /opt/wlp/usr/servers/defaultServer/dropins folder
Step 6: Start your WebSphere server
- From the terminal, restart WebSphere with:
/opt/wlp/bin/server stop /opt/wlp/bin/server start |
Test and scan your web application
Point your browser to your web application to confirm it is running as intended; you will get the following:
Finally, run a scan on your target; the Activity panel will confirm that AcuSensor was detected and used for the scan.