11# FUGIO-artifact
22[ FUGIO] ( https://github.com/WSL-LAB/FUGIO ) is the first
33automatic exploit generation (AEG) tool for PHP object injection (POI) vulnerabilities.
4- This repository includes Docker images to run the experiments performed in the paper.
5- We tested our Docker images and running scripts on Ubuntu 18.04 host machine.
4+ The artifact includes Docker images to run the experiments performed in the paper.
5+ We tested our Docker images and scripts on a Ubuntu 18.04 machine.
66
77## Prepare Docker containers
88#### 1. Install Docker
@@ -87,12 +87,14 @@ cd /FUGIO
8787If you want to stop monitoring, run `htaccess.py off`.
8888
8989#### 2. Prepare two terminals
90- We need at least two Docker container terminals. One is for running FUGIO and the other is for triggering POI vulnerabilities.
90+ We need at least two Docker container terminals.
91+ One is for running FUGIO and the other is for triggering POI vulnerabilities.
9192You can connect two shells by running `3_docker_exec.sh` in two terminals respectively.
9293
9394
9495#### 3. Run FUGIO
95- In the first terminal, run FUGIO using `run_FUGIO_XX.sh` with the target applications path (i.e. `/app/[target application]`).
96+ In the first terminal, run FUGIO using `run_FUGIO_XX.sh` with the target applications path
97+ (i.e. `/app/[target application]`).
9698In the other terminal, trigger the corresponding POI vulnerability using the given scripts.
9799
98100I recommend the following applications for obtaining results fastly.
@@ -133,7 +135,7 @@ Also, the size of each Docker container can be over 20 GB after running FUGIO.
133135If you run the command, FUGIO starts to analyze the source code of the target application.
134136At the first run, FUGIO generates a dump file in `Files/dump_files`.
135137It is for reducing time to analyze the target source code when you run FUGIO again for the same application.
136- If the source code of the target application changed, you need to delete its dump file and run the script again.
138+ If the source code of the target application is changed, you need to delete its dump file and run the script again.
137139
138140> When you run FUGIO on Smarty (PHP 5.4),
139141>
@@ -171,7 +173,7 @@ If the source code of the target application changed, you need to delete its dum
171173#### 3-2. Trigger POI vulnerabilities in the second terminal
172174After FUGIO finishes analyzing the source code, FUGIO starts to monitor a POI vulnerability.
173175We can trigger POI vulnerabilities using crawlers, spiders, or manual browsing.
174- In this artifact, we provide scripts for triggering each POI vulnerability.
176+ In the artifact, we provide scripts for triggering each POI vulnerability.
175177
176178- PHP 5.4:
177179 - Contao CMS, Piwik, GLPI, Joomla, CubeCart, CMS Made Simple, Open Web Analytics, Vanilla Forums:
@@ -287,9 +289,10 @@ All outputs are generated in the `Files/fuzzing/[app_path.time]/PUT/` directory.
287289
288290
289291#### 4. Reproduce evaluations in the paper
290- This artifact provides environments for reproducing evaluations in Sections 7.2 and 7.3 producing Tables 1, 2, and 3 in the paper.
292+ The artifact provides environments for reproducing evaluations in Sections 7.2 and 7.3
293+ producing Tables 1, 2, and 3 in the paper.
291294
292- 1. For reproducing Table 1, run `./config.py org` in php5.4. php5.6, and `php7.2` Docker containers
295+ 1. For reproducing Table 1, run `./config.py org` in ` php5.4`, ` php5.6` , and `php7.2` Docker containers
293296before following the step 3 ["Run FUGIO"](https://github.com/WSP-LAB/FUGIO-artifact#3-run-fugio).
294297 ```
295298 cd /FUGIO
@@ -304,7 +307,7 @@ before following the step 3 ["Run FUGIO"](https://github.com/WSP-LAB/FUGIO-artif
304307 - php 7.2: `./run_FUGIO_72.sh`
305308
306309 The number of true positive chains in Table 1 is manually analyzed.
307- We provide an utility for helping the analysis of the generated POP chains
310+ We provide a utility for helping the analysis of the generated POP chains
308311 in the step 5 ["Analyzing the results"](https://github.com/WSP-LAB/FUGIO-artifact#5-analyzing-the-results).
309312
3103132. For reproducing Table 2, run `./config.py ccs` in `php5.4` Docker container
@@ -322,7 +325,7 @@ before following the step 3 ["Run FUGIO"](https://github.com/WSP-LAB/FUGIO-artif
322325 Since Dahse et al. did not provide the details of each chain, we could not match each exploitable chain.
323326 Thus, we compared the numbers of exploit objects that FUGIO reported with the numbers reported in their paper.
324327
325- 3. For reproducing Table 3, run `./config.py phpggc` in `php5.4`, `php5.6` and `php7.2` Docker containers,
328+ 3. For reproducing Table 3, run `./config.py phpggc` in `php5.4`, `php5.6`, and `php7.2` Docker containers,
326329before following the step 3 ["Run FUGIO"](https://github.com/WSP-LAB/FUGIO-artifact#3-run-fugio).
327330 ```
328331 cd /FUGIO
@@ -338,8 +341,9 @@ before following the step 3 ["Run FUGIO"](https://github.com/WSP-LAB/FUGIO-artif
338341
339342 [PHPGGC](https://github.com/ambionics/phpggc) provides templates for generating POP exploits.
340343 However, it is not clear that what POP gadget each POP chain consists of.
341- Thus, we provide POP chains from PHPGGC in the repo (https://github.com/WSP-LAB/FUGIO/tree/main/PHPGGC) by analyzing each template.
342- `chain_analyzer` in ["Run FUGIO"](https://github.com/WSP-LAB/FUGIO-artifact#5-analyzing-the-results)
344+ Thus, we provide POP chains from PHPGGC in the repo (https://github.com/WSP-LAB/FUGIO/tree/main/PHPGGC)
345+ by analyzing each template.
346+ `chain_analyzer` in ["Analyzing the results"](https://github.com/WSP-LAB/FUGIO-artifact#5-analyzing-the-results)
343347 also will be helpful for analyzing the reported POP chains.
344348
345349#### 5. Analyzing the results
0 commit comments