Package: inet.applications.httptools.server
HttpServerEvilA
simple moduleDemonstrates subclassing the server to create a custom site. This site is an attacker -- a puppetmaster -- which serves HTML pages containing attack code. In this case, we are simulating JavaScript attack code which prompts the unsuspecting browser to request a number of images from a victim site. Delays are specified to simulate hiding the attack from the browser user by use of JavaScript timeouts or similar mechanisms. The generateBody virtual function is redefined to create a page containing the attack code.
This module definition has two additional parameters to the standard HttpServerDirect definition: * minBadRequests specifies the lower bound on bad requests caused to be sent to the victim by the browser. * maxBadRequests specifies the upper bound on bad requests caused to be sent to the victim by the browser.
Author: Kristjan V. Jonsson
Inheritance diagram
The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.
Parameters
Name | Type | Default value | Description |
---|---|---|---|
hostName | string |
The domain name of the server |
|
port | int |
The listening port number |
|
httpProtocol | int |
The http protocol: 10 for http/1.0, 11 for http/1.1. Not used at the present time. |
|
logFile | string |
Name of server log file. Events are appended, allowing sharing of file for multiple servers. |
|
siteDefinition | string |
The site script file. Blank to disable. |
|
config | xml |
The XML configuration file for random sites |
|
activationTime | double |
The initial activation delay. Zero to disable. |
|
minBadRequests | int |
The lower bound of bad requests. |
|
maxBadRequests | int |
The upper bound of bad requests |
Gates
Name | Direction | Size | Description |
---|---|---|---|
tcpIn | input | ||
tcpOut | output |
Source code
// // Demonstrates subclassing the server to create a custom site. This site is an attacker -- a puppetmaster -- // which serves HTML pages containing attack code. In this case, we are simulating JavaScript attack code which prompts // the unsuspecting browser to request a number of images from a victim site. Delays are specified to simulate hiding // the attack from the browser user by use of JavaScript timeouts or similar mechanisms. // The generateBody virtual function is redefined to create a page containing the attack code. // // This module definition has two additional parameters to the standard HttpServerDirect definition: // * minBadRequests specifies the lower bound on bad requests caused to be sent to the victim by the browser. // * maxBadRequests specifies the upper bound on bad requests caused to be sent to the victim by the browser. // // @author Kristjan V. Jonsson // simple HttpServerEvilA like ITCPApp { parameters: string hostName; // The domain name of the server int port; // The listening port number int httpProtocol; // The http protocol: 10 for http/1.0, 11 for http/1.1. Not used at the present time. string logFile; // Name of server log file. Events are appended, allowing sharing of file for multiple servers. string siteDefinition; // The site script file. Blank to disable. xml config; // The XML configuration file for random sites double activationTime @unit(s); // The initial activation delay. Zero to disable. int minBadRequests; // The lower bound of bad requests. int maxBadRequests; // The upper bound of bad requests gates: input tcpIn; output tcpOut; }File: src/inet/applications/httptools/server/HttpServerEvilA.ned