|
| 1 | +#Injection Detector Plug-In for FindBugs |
| 2 | + |
| 3 | +Input Injections are considered as the most common and effective vulnerabilities to exploit in many software systems (esp. web apps). Input injection is caused by executing user inputs which have not been validated or sanitized, so that the purpose of execution is changed by malicious agents into their advantages. |
| 4 | + |
| 5 | +The input injection detector is done by extending an existing static analysis tool, namely **FindBugs** (currently we only support **FindBugs 2.0.3**). The detection uses dataflow analysis to monitor user-contaminated variables. To improve accuracy, reducing false positives and false negatives, dataflow analysis is used to monitor variables that have been validated or sanitized by developers. |
| 6 | + |
| 7 | +## Vulnerabilities |
| 8 | +This plug-in can detect following vulnerabilities: |
| 9 | + |
| 10 | + 1. SQL injection |
| 11 | + 2. Shell/command injection |
| 12 | + 3. XPath injection |
| 13 | + 4. LDAP injection |
| 14 | + 5. Cross-site scripting (XSS) type-1 |
| 15 | + 6. Cross-site scripting (XSS) type-2 |
| 16 | + 7. Unvalidated redirects |
| 17 | + 8. Unvalidated forwards |
| 18 | + 9. HTTP response splitting |
| 19 | + 10. Path traversal |
| 20 | + 11. Remote file inclusion |
| 21 | + |
| 22 | +## Build |
| 23 | + |
| 24 | + 1. Clone this repository. |
| 25 | + 2. Download **FindBugs 2.0.3** source code (You can download it from [SourceForge](http://sourceforge.net/projects/findbugs/files/findbugs/2.0.3/findbugs-2.0.3-source.zip/download)). |
| 26 | + 3. Extract `findbugs-2.0.3-source.zip` to root directory of this repositories. In the root directory, you should have 3 (three) directories: `findbugs-2.0.3`, `findbugs-injection-detector`, and `vulnerable-sites`. |
| 27 | + 4. Rename `findbugs-2.0.3` to `findbugs`. |
| 28 | + 5. In terminal, change current directory to `findbugs`, and then run `ant build` to compile and build **FindBugs**. |
| 29 | + 6. In terminal, change current directory to `findbugs-injection-detector`, and then run `ant install` to compile, build, and install the detector to **FindBugs** in `findbugs` directory. |
| 30 | + |
| 31 | +You should have `injection-detector.jar` in `findbugs-injection-detector` after building the plug-in. This file is plug-in for **FindBugs**. To install to another copy of **FindBugs**, you could copy `injection-detector.jar` to `plugin` directory in **FindBugs**. |
0 commit comments