was “doc”. Listing 2 presents a fragment of code that
deals with this parameter. Here, the value of the vari-
able is only used to compare with values of an existing
array, and if it does not match any of it’s values, a de-
fault one is used. The value is not used anywhere else
in the application, and so no SQLi attack is possible.
Listing 2: Source code of the page attacked by the w3af
fuzzer that resulted in a false positive.
$d o c s = array(
’ r e a d m e ’= > array( ’ fi le ’ => ’ README . md ’) ,
’ PDF ’= > array( ’ f i le ’ => ’ do c s / pd f . html ’) ,
);
$s e l e cte d D o cId = isset( $ _ G E T [ ’ d oc ’ ]) ? $_ G E T [ ’ d oc ’
] : ’’;
if( ! ar r a y_k e y _ exi s t s ( $select e d D o c I d , $ d o c s ) ) {
$s e l e cte d D o cId = ’ r ea d m e ’;
}
$rea d F i l e = $d o c s [ $ sel e c t edD o c I d ][ ’ f i le ’ ] ;
7 CONCLUSIONS
The paper presented an ensemble fuzzing approach
for web applications to improve the detection of vul-
nerabilities by exploring all returned requests of all
fuzzers’ crawlers and increase the code coverage of
such applications. The approach was implemented
with three open-source web fuzzers and evaluated
with three well known vulnerable applications. The
preliminary results are promising and showed that
there are advantages to have such ensemble, specially
in those cases where it is able to detect vulnerabilities
that would be missed if the fuzzers would run indi-
vidually. As a further step, we want to identify in the
code of the applications the vulnerabilities exploited
by inspecting the code traces resulting from fuzzers.
ACKNOWLEDGMENTS
This work was partially supported by the na-
tional funds through FCT with reference to
SEAL project (PTDC/CCI-INF/29058/2017) and
LASIGE Research Unit (UIDB/00408/2020 and
UIDP/00408/2020).
REFERENCES
Ara
´
ujo, F., Medeiros, I., and Neves, N. (2020). Generat-
ing tests for the discovery of security flaws in prod-
uct variants. In Proceedings of the IEEE International
Conference on Software Testing, Verification and Val-
idation Workshops, pages 133–142.
Chen, Y., Jiang, Y., Ma, F., Liang, J., Wang, M., Zhou, C.,
Jiao, X., and Su, Z. (2019). Enfuzz: Ensemble fuzzing
with seed synchronization among diverse fuzzers. In
Proceedings of the 28th USENIX Security Symposium,
pages 1967–1983.
Chess, B. and McGraw, G. (2004). Static analysis for secu-
rity. IEEE Security & Privacy, 2(6):76–79.
Demetrio, L., Valenza, A., Costa, G., and Lagorio, G.
(2020). WAF-A-MoLE. Proceedings of the 35th An-
nual ACM Symposium on Applied Computing.
Doup
´
e, A., Cavedon, L., Kruegel, C., and Vigna, G. (2012).
Enemy of the state: A state-aware black-box web vul-
nerability scanner. In Proceedings of the USENIX
Conference on Security Symposium, pages 26–26.
Duch
`
ene, F., Rawat, S., Richier, J., and Groz, R. (2013).
Ligre: Reverse-engineering of control and data flow
models for black-box XSS detection. In Proceedings
of the Working Conference on Reverse Engineering,
pages 252–261.
Duchene, F., Rawat, S., Richier, J.-L., and Groz, R. (2014).
Kameleonfuzz: evolutionary fuzzing for black-box
xss detection. In Proceedings of the ACM Conference
on Data and Application Security and Privacy, pages
37–48.
Holler, C., Herzig, K., and Zeller, A. (2012). Fuzzing with
code fragments. In Proceedings of the 21st USENIX
Security Symposium, pages 445–458.
Jovanovic, N., Kruegel, C., and Kirda, E. (2006). Pre-
cise alias analysis for static detection of web appli-
cation vulnerabilities. In Proceedings of the workshop
on Programming languages and analysis for security,
pages 27–36.
Medeiros, I., Neves, N. F., and Correia, M. (2014). Au-
tomatic detection and correction of web application
vulnerabilities using data mining to predict false posi-
tives. In Proceedings of the International Conference
on World Wide Web, pages 63–74.
Miller, B. P., Fredriksen, L., and So, B. (1990). An empiri-
cal study of the reliability of UNIX utilities. Commu-
nications of the ACM, 33(12):32–44.
Ryan, K. (2020). Patched zoom exploit: Altering camera
settings via remote sql injection.
Sargsyan, S., Kurmangaleev, S., Hakobyan, J., Mehrabyan,
M., Asryan, S., and Movsisyan, H. (2019). Directed
fuzzing based on program dynamic instrumentation.
In Proceedings of the International Conference on En-
gineering Technologies and Computer Science, pages
30–33.
Sohoel, H., Jaatun, M., and Boyd, C. (2018). Owasp top 10
- do startups care? pages 1–8.
Sutton, M., Greene, A., and Amini, P. (2007). Fuzzing:
brute force vulnerability discovery. Addison-Wesley.
Vimpari, M. (2015). An evaluation of free fuzzing tools.
Wassermann, G. and Su, Z. (2008). Static detection of
cross-site scripting vulnerabilities. In Proceedings of
the International Conference on Software Engineer-
ing, pages 171–180.
Williams, J. and Wichers, D. (2017). OWASP Top 10 -
2017 rcl - the ten most critical web application secu-
rity risks. Technical report, OWASP Foundation.
ENASE 2021 - 16th International Conference on Evaluation of Novel Approaches to Software Engineering
412