{"id":7903,"date":"2025-03-28T18:13:22","date_gmt":"2025-03-28T17:13:22","guid":{"rendered":"https:\/\/www.iprog.it\/blog\/?p=7903"},"modified":"2025-03-28T18:13:23","modified_gmt":"2025-03-28T17:13:23","slug":"into-to-fuzzing-unleashing-the-power-of-automated-security-testing","status":"publish","type":"post","link":"https:\/\/www.iprog.it\/blog\/varie\/into-to-fuzzing-unleashing-the-power-of-automated-security-testing\/","title":{"rendered":"Into to Fuzzing: Unleashing the Power of Automated Security Testing"},"content":{"rendered":"\n<figure class=\"wp-block-image size-full is-resized\"><a href=\"https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2025\/03\/Fuzzing.png\" rel=\"lightbox[7903]\"><img loading=\"lazy\" decoding=\"async\" width=\"559\" height=\"408\" src=\"https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2025\/03\/Fuzzing.png\" alt=\"\" class=\"wp-image-7904\" style=\"width:346px;height:auto\" srcset=\"https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2025\/03\/Fuzzing.png 559w, https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2025\/03\/Fuzzing-300x219.png 300w\" sizes=\"auto, (max-width: 559px) 100vw, 559px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">In today&#8217;s blog, I want to introduce you to the concept of fuzzing and explain why it is important. The fuzzing process is quite straightforward\u2014it focuses on randomizing input data and monitoring how the software responds to these inputs.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Blackbox Fuzzing<\/strong>: This is typically used by attackers who do not have access to the source code. It focuses on input and output behavior, but its limitation lies in code coverage. Without full access to the codebase, it cannot test all possible execution paths.<\/li>\n\n\n\n<li><strong>Whitebox Fuzzing<\/strong>: With access to the source code, testers can identify all potential injection points and thoroughly evaluate them.<\/li>\n\n\n\n<li><strong>Graybox Fuzzing<\/strong>: This approach uses partial knowledge of the software, often obtained through tools like disassemblers, code coverage data, or debugging information.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Input Generation in Fuzzing: Key Approaches<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The way input data is generated plays a crucial role in fuzzing. There are three main methods for generating input data:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Random Generation: Inputs are generated completely at random, without any prior knowledge of valid structures.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Mutation-Based Generation: This approach takes valid inputs and mutates them by introducing random changes. For example:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Valid Input: password<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Mutated Input: pAszw&#8217;rd<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Generation-Based Input: Inputs are created from scratch but follow the correct syntax or structure expected by the target application.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Once the inputs are generated and executed by the fuzzer, it monitors for potential errors such as segmentation faults, memory leaks, and other unexpected behaviors that could indicate security vulnerabilities.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Fuzzing in Action: Practical Example with AFL++ and Honggfuzz<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">You could write an entire book or even multiple on how to leverage this powerful technique for both developers and security researchers. Topics like integrating fuzzing into the CI\/CD pipeline are essential for improving software security.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">However, in today\u2019s blog, I want to focus on a practical example and show you how to use two well-known open-source fuzzing tools: AFL++ and Honggfuzz. Let&#8217;s dive into how these tools work and how you can start using them to discover vulnerabilities in your applications. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Installing AFL++<\/strong><\/h2>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>1. Install Dependencies<\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Before installing AFL++, make sure your system has the necessary dependencies:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code><strong>sudo apt update &amp;&amp; sudo apt install -y build-essential clang llvm python3 git<br><\/strong><\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>2. Clone the AFL++ Repository<\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Download AFL++ from its official GitHub repository:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>git clone https:\/\/github.com\/AFLplusplus\/AFLplusplus.git<br>cd AFLplusplus<br>make<\/code><br><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Installing Honggfuzz<\/strong><br><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Honggfuzz is a modern, high-performance fuzzing tool used for security testing and bug discovery. Below are the steps to install it on a Linux system.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>1. Install Dependencies<\/strong><br>sudo apt update &amp;&amp; sudo apt install -y build-essential clang llvm lldb python3 git<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">2. Download Honggfuzz from its official GitHub repository:<\/h5>\n\n\n\n<p class=\"wp-block-paragraph\">git clone &#8211;depth 1 https:\/\/github.com\/google\/honggfuzz.git<br>cd honggfuzz<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">make<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">At this point, we need a binary to test. For our first example, we will use <strong>AFL++<\/strong>, as it works exceptionally well when the source code is available. AFL++ allows easy instrumentation of the application, enabling more effective fuzzing.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Here\u2019s a simple C program for our demonstration:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ test.c\n#include &lt;stdio.h>\n#include &lt;string.h>\n\nvoid vulnerable_function(char *input) {\n    char buffer&#91;64];\n    strcpy(buffer, input);  \/\/ Vulnerabilit\u00e0: copia senza controllo della lunghezza\n}\n\nint main(int argc, char **argv) {\n    if (argc != 2) {\n        printf(\"Usage: %s &lt;input>\\n\", argv&#91;0]);\n        return 1;\n    }\n\n    vulnerable_function(argv&#91;1]);\n    printf(\"Program finished\\n\");\n    return 0;\n}\n     <\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Creating a Harness for Fuzzing<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Before we proceed with fuzzing, we need to create a harness. A fuzzing harness is essentially a wrapper that prepares the target program for effective fuzzing. It ensures that the fuzzer can easily interact with the program by handling input in a way that maximizes coverage and efficiency.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#include &lt;stdio.h>\n#include &lt;stdlib.h>\n#include &lt;unistd.h>  \/\/ Includi questa libreria per execlp\n\nint main(int argc, char **argv) {\n    \/\/ Verifica che ci sia almeno un argomento passato (il percorso del file di input)\n    if (argc &lt; 2) {\n        fprintf(stderr, \"Usage: %s &lt;fuzz_input_file>\\n\", argv&#91;0]);\n        return 1;\n    }\n\n    \/\/ Prendi il percorso del file passato come argomento\n    char *file_path = argv&#91;1];\n\n    \/\/ Apre il file in modalit\u00e0 lettura\n    FILE *file = fopen(file_path, \"r\");\n    if (file == NULL) {\n        perror(\"Errore nell'aprire il file\");\n        return 1;\n    }\n\n    \/\/ Determina la dimensione del file per allocare abbastanza spazio\n    fseek(file, 0, SEEK_END);\n    long file_size = ftell(file);\n    fseek(file, 0, SEEK_SET);\n\n    \/\/ Alloca memoria per contenere il contenuto del file\n    char *fuzz_input = (char *)malloc(file_size + 1);\n    if (fuzz_input == NULL) {\n        perror(\"Errore nell'allocare memoria\");\n        fclose(file);\n        return 1;\n    }\n\n    \/\/ Leggi il contenuto del file\n    fread(fuzz_input, 1, file_size, file);\n    fuzz_input&#91;file_size] = '\\0';  \/\/ Aggiungi il terminatore di stringa\n\n    \/\/ Chiudi il file\n    fclose(file);\n\n    \/\/ Stampa il comando che verr\u00e0 eseguito con il contenuto del file\n    printf(\"Eseguendo il comando: .\/test %s\\n\", fuzz_input);\n\n    \/\/ Esegui il programma con il contenuto del file come argomento\n    execlp(\".\/test\", \".\/test\", fuzz_input, (char *)NULL);\n\n    \/\/ Se execlp fallisce, stampa un errore\n    perror(\"execlp failed\");\n    free(fuzz_input);\n    return 1;\n}<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Preparation<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Before we begin the fuzzing process, we need to follow a few important setup steps. These steps involve creating directories for input and output, preparing the initial test file, and compiling both the fuzzing wrapper and the target program with AFL++.<br>We will create two directories: one for the input files and another for the output files (where the results of the fuzzing process will be stored).<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir in\nmkdir out<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">We need to provide an initial input file for AFL++ to start the fuzzing process. We can start by creating a simple file that contains a string of characters.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">echo &#8220;AAAAAA&#8221; > in\/test.txt<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This file will be used by AFL++ to begin the fuzzing with an initial value.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Now, we need to compile the fuzzing wrapper (which handles input redirection) and the target program using afl-gcc, which is the AFL++-specific GCC wrapper.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>afl-gcc fuzz_wrapper.c -o fuzz_wrapper\nafl-gcc test.c -o test\nafl-fuzz -i \/home\/kali\/Desktop\/in -o \/home\/kali\/Desktop\/out -- .\/fuzz_wrapper @@ \n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Once you run this command, AFL++ will start generating new inputs, feeding them into your program, and monitoring the output for any crashes or unexpected behavior. The results will be saved in the out directory for later analysis.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2025\/03\/image.png\" rel=\"lightbox[7903]\"><img loading=\"lazy\" decoding=\"async\" width=\"907\" height=\"587\" src=\"https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2025\/03\/image.png\" alt=\"\" class=\"wp-image-7908\" srcset=\"https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2025\/03\/image.png 907w, https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2025\/03\/image-620x401.png 620w, https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2025\/03\/image-300x194.png 300w, https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2025\/03\/image-768x497.png 768w, https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2025\/03\/image-624x404.png 624w\" sizes=\"auto, (max-width: 907px) 100vw, 907px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><br><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Using Honggfuzz: Fuzzing a Binary Without Source Code<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">For the second part of this demonstration, we&#8217;ll use Honggfuzz to fuzz the target program. In this case, we will assume we only have the binary to analyze, not the source code.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>gcc test.c -o test\n\ngcc wrapper.c -o wrapper<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Please note that we are using GCC and simulating a scenario where the source code is unavailable.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Finally, we can start fuzzing using Honggfuzz. The command below will execute the fuzzing process:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>honggfuzz -i in\/ -o out -n 20 -- .\/wrapper ___FILE___\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Once fuzzing has run for some time, you can analyze the results in the out\/ directory. Honggfuzz will generate reports of any crashes or errors it has encountered during the fuzzing process. You can inspect the output files to investigate and fix any potential vulnerabilities.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2025\/03\/image-1.png\" rel=\"lightbox[7903]\"><img loading=\"lazy\" decoding=\"async\" width=\"940\" height=\"602\" src=\"https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2025\/03\/image-1-940x602.png\" alt=\"\" class=\"wp-image-7909\" srcset=\"https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2025\/03\/image-1-940x602.png 940w, https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2025\/03\/image-1-620x397.png 620w, https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2025\/03\/image-1-300x192.png 300w, https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2025\/03\/image-1-768x492.png 768w, https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2025\/03\/image-1-624x400.png 624w, https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2025\/03\/image-1.png 1178w\" sizes=\"auto, (max-width: 940px) 100vw, 940px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">In the next blog, we will analyze the crash. If you enjoy this type of content, please let me know!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In today&#8217;s blog, I want to introduce you to the concept of fuzzing and explain why it is important. The fuzzing process is quite straightforward\u2014it focuses on randomizing input data and monitoring how the software responds to these inputs. Input Generation in Fuzzing: Key Approaches The way input data is&#8230; <a href=\"https:\/\/www.iprog.it\/blog\/varie\/into-to-fuzzing-unleashing-the-power-of-automated-security-testing\/\">Read more &raquo;<\/a><\/p>\n","protected":false},"author":1,"featured_media":7904,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-7903","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-varie"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Into to Fuzzing: Unleashing the Power of Automated Security Testing - iProg<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.iprog.it\/blog\/varie\/into-to-fuzzing-unleashing-the-power-of-automated-security-testing\/\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"Into to Fuzzing: Unleashing the Power of Automated Security Testing - iProg\" \/>\n<meta name=\"twitter:description\" content=\"In today&#8217;s blog, I want to introduce you to the concept of fuzzing and explain why it is important. The fuzzing process is quite straightforward\u2014it focuses on randomizing input data and monitoring how the software responds to these inputs. Input Generation in Fuzzing: Key Approaches The way input data is... Read more &raquo;\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2025\/03\/Fuzzing.png\" \/>\n<meta name=\"twitter:creator\" content=\"@flexkid1\" \/>\n<meta name=\"twitter:site\" content=\"@iprogblog\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"Diego\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/varie\\\/into-to-fuzzing-unleashing-the-power-of-automated-security-testing\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/varie\\\/into-to-fuzzing-unleashing-the-power-of-automated-security-testing\\\/\"},\"author\":{\"name\":\"Diego\",\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/#\\\/schema\\\/person\\\/048c8acb70f8a33f1498675ab9db41a3\"},\"headline\":\"Into to Fuzzing: Unleashing the Power of Automated Security Testing\",\"datePublished\":\"2025-03-28T17:13:22+00:00\",\"dateModified\":\"2025-03-28T17:13:23+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/varie\\\/into-to-fuzzing-unleashing-the-power-of-automated-security-testing\\\/\"},\"wordCount\":851,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/varie\\\/into-to-fuzzing-unleashing-the-power-of-automated-security-testing\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/03\\\/Fuzzing.png\",\"articleSection\":[\"Un p\u00f2 di tutto\"],\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.iprog.it\\\/blog\\\/varie\\\/into-to-fuzzing-unleashing-the-power-of-automated-security-testing\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/varie\\\/into-to-fuzzing-unleashing-the-power-of-automated-security-testing\\\/\",\"url\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/varie\\\/into-to-fuzzing-unleashing-the-power-of-automated-security-testing\\\/\",\"name\":\"Into to Fuzzing: Unleashing the Power of Automated Security Testing - iProg\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/varie\\\/into-to-fuzzing-unleashing-the-power-of-automated-security-testing\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/varie\\\/into-to-fuzzing-unleashing-the-power-of-automated-security-testing\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/03\\\/Fuzzing.png\",\"datePublished\":\"2025-03-28T17:13:22+00:00\",\"dateModified\":\"2025-03-28T17:13:23+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/#\\\/schema\\\/person\\\/048c8acb70f8a33f1498675ab9db41a3\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.iprog.it\\\/blog\\\/varie\\\/into-to-fuzzing-unleashing-the-power-of-automated-security-testing\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/varie\\\/into-to-fuzzing-unleashing-the-power-of-automated-security-testing\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/03\\\/Fuzzing.png\",\"contentUrl\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/wp-content\\\/uploads\\\/2025\\\/03\\\/Fuzzing.png\",\"width\":559,\"height\":408},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/\",\"name\":\"iProg\",\"description\":\"perch\u00e9 reinventare la ruota?\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/#\\\/schema\\\/person\\\/048c8acb70f8a33f1498675ab9db41a3\",\"name\":\"Diego\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bf8084effa4627f8e50af0d50d06b0677e4a9de5e895e347c0590ad5696fdfc9?s=96&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bf8084effa4627f8e50af0d50d06b0677e4a9de5e895e347c0590ad5696fdfc9?s=96&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bf8084effa4627f8e50af0d50d06b0677e4a9de5e895e347c0590ad5696fdfc9?s=96&r=g\",\"caption\":\"Diego\"},\"description\":\"Google+\",\"sameAs\":[\"http:\\\/\\\/it.linkedin.com\\\/in\\\/diegocaridei\\\/\",\"https:\\\/\\\/x.com\\\/flexkid1\",\"http:\\\/\\\/www.youtube.com\\\/channel\\\/UCjQ2z1ygV9tv55QAc2q3JHA\"],\"url\":\"https:\\\/\\\/www.iprog.it\\\/blog\\\/author\\\/flexkid\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Into to Fuzzing: Unleashing the Power of Automated Security Testing - iProg","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.iprog.it\/blog\/varie\/into-to-fuzzing-unleashing-the-power-of-automated-security-testing\/","twitter_card":"summary_large_image","twitter_title":"Into to Fuzzing: Unleashing the Power of Automated Security Testing - iProg","twitter_description":"In today&#8217;s blog, I want to introduce you to the concept of fuzzing and explain why it is important. The fuzzing process is quite straightforward\u2014it focuses on randomizing input data and monitoring how the software responds to these inputs. Input Generation in Fuzzing: Key Approaches The way input data is... Read more &raquo;","twitter_image":"https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2025\/03\/Fuzzing.png","twitter_creator":"@flexkid1","twitter_site":"@iprogblog","twitter_misc":{"Scritto da":"Diego","Tempo di lettura stimato":"6 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.iprog.it\/blog\/varie\/into-to-fuzzing-unleashing-the-power-of-automated-security-testing\/#article","isPartOf":{"@id":"https:\/\/www.iprog.it\/blog\/varie\/into-to-fuzzing-unleashing-the-power-of-automated-security-testing\/"},"author":{"name":"Diego","@id":"https:\/\/www.iprog.it\/blog\/#\/schema\/person\/048c8acb70f8a33f1498675ab9db41a3"},"headline":"Into to Fuzzing: Unleashing the Power of Automated Security Testing","datePublished":"2025-03-28T17:13:22+00:00","dateModified":"2025-03-28T17:13:23+00:00","mainEntityOfPage":{"@id":"https:\/\/www.iprog.it\/blog\/varie\/into-to-fuzzing-unleashing-the-power-of-automated-security-testing\/"},"wordCount":851,"commentCount":0,"image":{"@id":"https:\/\/www.iprog.it\/blog\/varie\/into-to-fuzzing-unleashing-the-power-of-automated-security-testing\/#primaryimage"},"thumbnailUrl":"https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2025\/03\/Fuzzing.png","articleSection":["Un p\u00f2 di tutto"],"inLanguage":"it-IT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.iprog.it\/blog\/varie\/into-to-fuzzing-unleashing-the-power-of-automated-security-testing\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.iprog.it\/blog\/varie\/into-to-fuzzing-unleashing-the-power-of-automated-security-testing\/","url":"https:\/\/www.iprog.it\/blog\/varie\/into-to-fuzzing-unleashing-the-power-of-automated-security-testing\/","name":"Into to Fuzzing: Unleashing the Power of Automated Security Testing - iProg","isPartOf":{"@id":"https:\/\/www.iprog.it\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.iprog.it\/blog\/varie\/into-to-fuzzing-unleashing-the-power-of-automated-security-testing\/#primaryimage"},"image":{"@id":"https:\/\/www.iprog.it\/blog\/varie\/into-to-fuzzing-unleashing-the-power-of-automated-security-testing\/#primaryimage"},"thumbnailUrl":"https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2025\/03\/Fuzzing.png","datePublished":"2025-03-28T17:13:22+00:00","dateModified":"2025-03-28T17:13:23+00:00","author":{"@id":"https:\/\/www.iprog.it\/blog\/#\/schema\/person\/048c8acb70f8a33f1498675ab9db41a3"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.iprog.it\/blog\/varie\/into-to-fuzzing-unleashing-the-power-of-automated-security-testing\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/www.iprog.it\/blog\/varie\/into-to-fuzzing-unleashing-the-power-of-automated-security-testing\/#primaryimage","url":"https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2025\/03\/Fuzzing.png","contentUrl":"https:\/\/www.iprog.it\/blog\/wp-content\/uploads\/2025\/03\/Fuzzing.png","width":559,"height":408},{"@type":"WebSite","@id":"https:\/\/www.iprog.it\/blog\/#website","url":"https:\/\/www.iprog.it\/blog\/","name":"iProg","description":"perch\u00e9 reinventare la ruota?","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.iprog.it\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":"Person","@id":"https:\/\/www.iprog.it\/blog\/#\/schema\/person\/048c8acb70f8a33f1498675ab9db41a3","name":"Diego","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/secure.gravatar.com\/avatar\/bf8084effa4627f8e50af0d50d06b0677e4a9de5e895e347c0590ad5696fdfc9?s=96&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/bf8084effa4627f8e50af0d50d06b0677e4a9de5e895e347c0590ad5696fdfc9?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/bf8084effa4627f8e50af0d50d06b0677e4a9de5e895e347c0590ad5696fdfc9?s=96&r=g","caption":"Diego"},"description":"Google+","sameAs":["http:\/\/it.linkedin.com\/in\/diegocaridei\/","https:\/\/x.com\/flexkid1","http:\/\/www.youtube.com\/channel\/UCjQ2z1ygV9tv55QAc2q3JHA"],"url":"https:\/\/www.iprog.it\/blog\/author\/flexkid\/"}]}},"views":373,"_links":{"self":[{"href":"https:\/\/www.iprog.it\/blog\/wp-json\/wp\/v2\/posts\/7903","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.iprog.it\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.iprog.it\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.iprog.it\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.iprog.it\/blog\/wp-json\/wp\/v2\/comments?post=7903"}],"version-history":[{"count":4,"href":"https:\/\/www.iprog.it\/blog\/wp-json\/wp\/v2\/posts\/7903\/revisions"}],"predecessor-version":[{"id":7910,"href":"https:\/\/www.iprog.it\/blog\/wp-json\/wp\/v2\/posts\/7903\/revisions\/7910"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.iprog.it\/blog\/wp-json\/wp\/v2\/media\/7904"}],"wp:attachment":[{"href":"https:\/\/www.iprog.it\/blog\/wp-json\/wp\/v2\/media?parent=7903"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.iprog.it\/blog\/wp-json\/wp\/v2\/categories?post=7903"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.iprog.it\/blog\/wp-json\/wp\/v2\/tags?post=7903"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}