{"id":5347,"date":"2010-11-12T22:02:00","date_gmt":"2010-11-12T21:02:00","guid":{"rendered":"http:\/\/www.corelan.be:8800\/?p=5347"},"modified":"2010-11-12T22:02:00","modified_gmt":"2010-11-12T21:02:00","slug":"metasploit-module-http-form-field-fuzzer","status":"publish","type":"post","link":"https:\/\/www.corelan.be\/index.php\/2010\/11\/12\/metasploit-module-http-form-field-fuzzer\/","title":{"rendered":"Metasploit module : HTTP Form field fuzzer"},"content":{"rendered":"<h3>Introduction<\/h3>\n<p>About a month after releasing an <a href=\"\/index.php\/2010\/10\/12\/death-of-an-ftp-client\/\" target=\"_blank\" rel=\"noopener\">ftp client fuzzer module<\/a> for Metasploit, I decided to release yet another fuzzer module I have been working on over the last few weeks.<\/p>\n<p>This new module can be used to audit web servers\/web server plugins\/components\/filters, by fuzzing form fields and optionally fuzz some header fields.<\/p>\n<p>While this type of fuzzing\/audits most likely won't reveal bugs in the most common webserver platforms themselves (Apache, IIS, etc), I am convinced that there are a lot of other web server components out there that may not properly validate input from form fields or header fields.<\/p>\n<p>A few hints :<\/p>\n<ul>\n<li>custom modules \/ isapi components \/ custom dll's that process input <\/li>\n<li>admin consoles <\/li>\n<li>embedded webservers <\/li>\n<li>etc <\/li>\n<\/ul>\n<h3>The module<\/h3>\n<p>This new fuzzer module was added to the Metasploit framework earlier today (svn release r11013 and up),&#160; and can be found in \/modules\/auxiliary\/fuzzers\/http. The module file is called http_form_field.rb<\/p>\n<p>If you are using a svn based copy of the framework, you can get the module very easily (and all future updates) by updating your svn copy.&#160;&#160; More info about creating a svn copy and about updating the svn can be found in the post about <a href=\"\/index.php\/2010\/10\/12\/death-of-an-ftp-client\/\" target=\"_blank\" rel=\"noopener\">the client ftp fuzzer<\/a> module.<\/p>\n<p>Anyways, this is what the module will do :<\/p>\n<ul>\n<li>It will connect to a webpage (referred to by the &quot;URL&quot; option), parse the body and identify all forms &amp; form fields contained within those forms. <\/li>\n<li>Then, it will create POST (or GET, depending on the form method) requests, sending those fields back to the webpage provided in the &quot;action&quot; field of the form, and fuzz the contents of the fields while doing that.&#160; It will only fuzz one field at a time. <\/li>\n<li>By default, only text fields, password fields, and inputtextbox fields will be fuzzed, but you can define other field types by setting the &quot;TYPES&quot; parameter. <\/li>\n<li>In additition to that, it can optionally fuzz header fields as well.&#160; It will use the existing headers (and add some common headers if they are missing) and fuzz each one of those headers using POST\/GET requests. <\/li>\n<\/ul>\n<h3>Using the module<\/h3>\n<p>Loading the module is as easy as doing this :<\/p>\n<pre style=\"border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #252525; min-height: 40px; padding-left: 5px; width: 650px; padding-right: 5px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px\">root@bt:\/pentest\/exploits\/trunk<span style=\"color: #008000\"># .\/msfconsole -n<\/span>\n\nmsf &gt; use auxiliary\/fuzzers\/http\/http_form_field\nmsf auxiliary(http_form_field) &gt;<\/pre>\n<p>\n  <br \/>The available module options are : <\/p>\n<p><\/p>\n<pre style=\"border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #252525; min-height: 40px; padding-left: 5px; width: 650px; padding-right: 5px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px\">msf auxiliary(http_form_field) &gt; show options\n\nModule options:\n\n   Name         Current Setting             Required  Description\n   ----         ---------------             --------  -----------\n   ACTION                                   no        Form action full URI. Leave empty to autodetect\n   CODE         200,301,302                 yes       Response code(s) indicating OK\n   CYCLIC       <span style=\"color: #0000ff\">true<\/span>                        yes       Use Cyclic pattern instead of A's (fuzzing payload).\n   DELAY        0                           yes       Number of seconds to wait between 2 actions\n   ENDSIZE      200000                      yes       Max Fuzzing string size.\n   FIELDS                                   no        Name of the fields to fuzz. Leave empty to fuzz all fields\n   FORM                                     no        The name of the form to use. Leave empty to fuzz all forms\n   FUZZHEADERS  <span style=\"color: #0000ff\">true<\/span>                        yes       Fuzz headers\n   Proxies                                  no        Use a proxy chain\n   RHOST                                    yes       The target address\n   RPORT        80                          yes       The target port\n   STARTSIZE    1000                        yes       Fuzzing string startsize.\n   STEPSIZE     1000                        yes       Increment fuzzing string each attempt.\n   STOPAFTER    2                           no        Stop after x number of consecutive errors\n   TIMEOUT      15                          yes       Number of seconds to wait <span style=\"color: #0000ff\">for<\/span> response on GET <span style=\"color: #0000ff\">or<\/span> POST\n   TYPES        text,password,inputtextbox  yes       Field types to fuzz\n   URL          \/                           no        The URL that contains the form\n   VHOST                                    no        HTTP server virtual host<\/pre>\n<ul>\n<li><strong>Action<\/strong> : By default, this field will be auto-populated.&#160; It is used to store the &quot;action&quot; variable of each form. In essence, this is the target URL that is used when submitting form contents to the webserver.&#160; So, if you leave this field empty, the fuzzer will attempt to detect the form action and use it as a target for the fuzzing operations.&#160; If you need to specify an action URL yourself (because the autodetection routine is not accurate enough), then it will be used for all forms on the page.&#160; This means that you should use this in conjunction with the FORM parameter (so you would be fuzzing the correct form fields against the correct action page). <\/li>\n<li><strong>Code<\/strong> : This parameter contains a comma separated list of response codes that are considered to be OK <\/li>\n<li><strong>Cyclic<\/strong> : When set to true, the fuzzdata will consist of a cyclic pattern. If you set this value to false, the fuzz data will be made up of a long string of A's <\/li>\n<li><strong>Delay<\/strong> : This parameter allows you to specify the number of seconds to wait between two fuzz operations. <\/li>\n<li><strong>Endsize<\/strong> : This is the maximum size of fuzzdata that will be sent to the target. When the maximum length has been reached, the fuzz operation will end. <\/li>\n<li><strong>Fields<\/strong> : If you leave this option empty, then all fields in the form (limited to field types specified in the TYPES option) will be subject to fuzzing.&#160; If you want to limit the fuzz to certain fields only, then you populate the option with a comma separated list of field names. <\/li>\n<li><strong>Form<\/strong> : When empty, the fuzzer will attemt to identify and enumerate all forms on the page, and fuzz all of the fields in all of those forms. If you only want to fuzz specific form(s), you can put a comma separated list of form names\/ids in this field. <\/li>\n<li><strong>Fuzzheaders<\/strong> : If this option is enabled, then the fuzzer will also fuzz http request header fields after fuzzing form fields. <\/li>\n<li><strong>Proxies<\/strong> : You can use this field to specify a proxy chain <\/li>\n<li><strong>Rhost<\/strong> : This option is used to specify the target host <\/li>\n<li><strong>Rport<\/strong> : This option is used to specify the target port <\/li>\n<li><strong>Startsize<\/strong> : This parameter allows you to specify the start length of the fuzz data <\/li>\n<li><strong>Stepsize<\/strong> : This parameter defines the number of chars to increase the fuzz data with after each fuzz <\/li>\n<li><strong>Stopafter<\/strong> : This parameter defines the number of error conditions to occur before giving up <\/li>\n<li><strong>Timeout<\/strong> : Use this option to specify the number of seconds for each get\/post request to wait for a response <\/li>\n<li><strong>Types<\/strong> : This option can be used to define the type of form fields to fuzz.&#160; When left empty, it will fuzz all fields. <\/li>\n<li><strong>URL<\/strong> : This option defines the exact url of the page that contains the form to fuzz. <\/li>\n<li><strong>Vhost<\/strong> : Use this option if you want to use a host header name. <\/li>\n<\/ul>\n<blockquote>\n<p>Important note : if you want to clear a certain option, don't set it to an empty string (set &lt;option&gt; &quot;&quot;), but use the unset command : unset &lt;option&gt;<\/p>\n<\/blockquote>\n<p>The advanced options are :<\/p>\n<pre style=\"border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #252525; min-height: 40px; padding-left: 5px; width: 650px; padding-right: 5px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px\">msf auxiliary(http_form_field) &gt; show advanced\n\nModule advanced options:\n\n   Name           : BasicAuthPass\n   Current Setting:\n   Description    : The HTTP password to specify <span style=\"color: #0000ff\">for<\/span> basic authentication\n\n   Name           : BasicAuthUser\n   Current Setting:\n   Description    : The HTTP username to specify <span style=\"color: #0000ff\">for<\/span> basic authentication\n\n   Name           : FingerprintCheck\n   Current Setting: <span style=\"color: #0000ff\">true<\/span>\n   Description    : Conduct a pre-exploit fingerprint verification\n\n   Name           : SSL\n   Current Setting: <span style=\"color: #0000ff\">false<\/span>\n   Description    : Negotiate SSL <span style=\"color: #0000ff\">for<\/span> outgoing connections\n\n   Name           : SSLVersion\n   Current Setting: SSL3\n   Description    : Specify the version of SSL that should be used (accepted: SSL2,\n      SSL3, TLS1)\n\n   Name           : UserAgent\n   Current Setting:\n   Description    : The User-Agent header to use <span style=\"color: #0000ff\">for<\/span> all requests\n\n   Name           : WORKSPACE\n   Current Setting:\n   Description    : Specify the workspace <span style=\"color: #0000ff\">for<\/span> this <span style=\"color: #0000ff\">module<\/span><\/pre>\n<ul>\n<li>BasicAuthPass and BasicAuthUser can be used if the target website requires authentication prior to accessing it (Basic authentication only) <\/li>\n<li>FingerPrintCheck has no use in this fuzzer <\/li>\n<li>You can set SSL (and SSLVersion) if the target website requires https. Don't forget to change the rport option accordingly <\/li>\n<li>Useragent allows you to define an alternative User Agent field. The default value (hardcoded into the fuzzer) is &quot;Mozilla\/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.15) Gecko\/2009102814 Ubuntu\/8.10 (intrepid) Firefox\/3.0.15&quot; <\/li>\n<\/ul>\n<h3>Example :<\/h3>\n<p>Let's use the module to test the Integard admin login page (and reproduce the vulnerability that was reported <a href=\"https:\/\/web.archive.org\/web\/20120728205548\/https:\/\/www.corelan.be\/index.php\/forum\/security-advisories\/corelan-10-061-integard-home-and-pro-v2-remote-http-buffer-overflow-exploit\/\" target=\"_blank\" rel=\"noopener\">here<\/a>). I installed a vulnerable copy of Integard Home on a test computer (192.168.201.1).&#160; From my attacker machine, I can access the login page on port 18881 :<\/p>\n<p><a href=\"\/wp-content\/uploads\/2010\/11\/image.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px\" title=\"image\" border=\"0\" alt=\"image\" src=\"\/wp-content\/uploads\/2010\/11\/image_thumb.png\" width=\"390\" height=\"217\" \/><\/a><\/p>\n<p>The source of the page reveals the following form :<\/p>\n<p><a href=\"\/wp-content\/uploads\/2010\/11\/image1.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px\" title=\"image\" border=\"0\" alt=\"image\" src=\"\/wp-content\/uploads\/2010\/11\/image_thumb1.png\" width=\"505\" height=\"342\" \/><\/a><\/p>\n<ul>\n<li>The form fields will be posted to \/LoginAdmin <\/li>\n<li>There are 3 fields (password, Redirect, NoJs) and a submit button. We'll fuzz the password field in this example. <\/li>\n<\/ul>\n<p>Next, I attached Immunity Debugger to Integard.exe and let the application run inside the debugger.<\/p>\n<p><a href=\"\/wp-content\/uploads\/2010\/11\/image2.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px\" title=\"image\" border=\"0\" alt=\"image\" src=\"\/wp-content\/uploads\/2010\/11\/image_thumb2.png\" width=\"398\" height=\"226\" \/><\/a><\/p>\n<p>Configuring the Metasploit form field fuzzer for this case is really easy. We only have one form, so we can try to let the plugin auto-configure itself. The only 3 parameters we'll need to specify are :<\/p>\n<ul>\n<li>rhost \/ vhost <\/li>\n<li>rport <\/li>\n<li>URL <\/li>\n<\/ul>\n<pre style=\"border-bottom: #cecece 1px solid; border-left: #cecece 1px solid; padding-bottom: 5px; background-color: #252525; min-height: 40px; padding-left: 5px; width: 650px; padding-right: 5px; overflow: auto; border-top: #cecece 1px solid; border-right: #cecece 1px solid; padding-top: 5px\">msf auxiliary(http_form_field) &gt; set rhost 192.168.201.1\nrhost =&gt; 192.168.201.1\nsmsf auxiliary(http_form_field) &gt; set vhost 192.168.201.1\nvhost =&gt; 192.168.201.1\nsmsf auxiliary(http_form_field) &gt; set rport 18881\nrport =&gt; 18881<\/pre>\n<p>The URL option already contains &quot;\/&quot;, so that will work fine in this case.&#160; The default field types are &quot;text&quot;, &quot;password&quot; and &quot;inputtextbox&quot;, so that means that the fuzzer will only look at the password field.<\/p>\n<p>Now simply issue &quot;run&quot; and the fuzzer will start fuzzing :<\/p>\n<p><a href=\"\/wp-content\/uploads\/2010\/11\/image3.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px\" title=\"image\" border=\"0\" alt=\"image\" src=\"\/wp-content\/uploads\/2010\/11\/image_thumb3.png\" width=\"567\" height=\"452\" \/><\/a><\/p>\n<p>You will notice that the fuzzer will report a &quot;No response&quot; when fuzzing the password field with 2000 bytes.&#160; Look at the debugger :<\/p>\n<p><a href=\"\/wp-content\/uploads\/2010\/11\/image13.png\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px\" title=\"image\" border=\"0\" alt=\"image\" src=\"\/wp-content\/uploads\/2010\/11\/image13_thumb.png\" width=\"694\" height=\"488\" \/><\/a><\/p>\n<p>Nice : we control EIP and can see the payload on the stack.&#160; Game over \ud83d\ude42<\/p>\n<h3>Finally :<\/h3>\n<p>If you have questions \/ comments \/ feedback about the module, feel free to leave your comments below, or drop by <a href=\"\/index.php\/2010\/10\/15\/corelan-official-irc-channel-online-freenode\/\" target=\"_blank\" rel=\"noopener\">in the corelan IRC channel on freenode<\/a>.<\/p>\n<p>Have fun !<\/p>\n<p><!--Digiprove_Start--><span lang=\"en\" xml:lang=\"en\" style=\"vertical-align:middle; display:inline; padding:3px; line-height:normal;border:1px solid #e3e3e3;background-color:#000000;\" title=\"certified 13 November 2010 08:53:29 UTC by Digiprove certificate P63444\" ><a href=\"http:\/\/www.digiprove.com\/show_certificate.aspx?id=P63444&guid=pCA0V6jKgUSHUEUDsoJRfQ\" target=\"_blank\" rel=\"copyright noopener\" style=\"border:0px; float:none; display:inline; text-decoration: none; background-color:transparent\"><img decoding=\"async\" src=\"http:\/\/www.digiprove.com\/images\/dp_seal_trans_16x16.png\" style=\"vertical-align:middle; display:inline; border:0px; margin:0px; float:none; background-color:transparent\" border=\"0\" width=\"12px\" height=\"12px\" alt=\"\"\/><span style=\"font-family: Tahoma, MS Sans Serif; font-size:9px; font-weight:normal; color:#FFFFFF; border:0px; float:none; display:inline; text-decoration:none; letter-spacing:normal\" onmouseover=\"this.style.color='#FFFF1C';\" onmouseout=\"this.style.color='#FFFFFF';\">&nbsp;&nbsp;Copyright secured by Digiprove&nbsp;&copy; 2010 Peter Van Eeckhoutte<\/span><\/a><!--4F96A64AB366D43D2ED9E26FD1C405AE6C759DA123A6FBA6721446916287E00B--><\/span><!--Digiprove_End--><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction About a month after releasing an ftp client fuzzer module for Metasploit, I decided to release yet another fuzzer module I have been working on over the last few weeks. This new module can be used to audit web servers\/web server plugins\/components\/filters, by fuzzing form fields and optionally fuzz some header fields. While this &hellip; <a href=\"https:\/\/www.corelan.be\/index.php\/2010\/11\/12\/metasploit-module-http-form-field-fuzzer\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> \"Metasploit module : HTTP Form field fuzzer\"<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[245,127,2394],"tags":[1991,1828,1824],"class_list":["post-5347","post","type-post","status-publish","format-standard","hentry","category-exploits","category-security","category-webapp-security","tag-fuzzing","tag-overflow","tag-metasploit"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Metasploit module : HTTP Form field fuzzer - Corelan | Exploit Development &amp; Vulnerability Research<\/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.corelan.be\/index.php\/2010\/11\/12\/metasploit-module-http-form-field-fuzzer\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Metasploit module : HTTP Form field fuzzer - Corelan | Exploit Development &amp; Vulnerability Research\" \/>\n<meta property=\"og:description\" content=\"Introduction About a month after releasing an ftp client fuzzer module for Metasploit, I decided to release yet another fuzzer module I have been working on over the last few weeks. This new module can be used to audit web servers\/web server plugins\/components\/filters, by fuzzing form fields and optionally fuzz some header fields. While this &hellip; Continue reading &quot;Metasploit module : HTTP Form field fuzzer&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.corelan.be\/index.php\/2010\/11\/12\/metasploit-module-http-form-field-fuzzer\/\" \/>\n<meta property=\"og:site_name\" content=\"Corelan | Exploit Development &amp; Vulnerability Research\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/corelanconsulting\" \/>\n<meta property=\"article:published_time\" content=\"2010-11-12T21:02:00+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/www.digiprove.com\/images\/dp_seal_trans_16x16.png\" \/>\n<meta name=\"author\" content=\"corelanc0d3r\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@corelanc0d3r\" \/>\n<meta name=\"twitter:site\" content=\"@corelanc0d3r\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"TechArticle\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2010\\\/11\\\/12\\\/metasploit-module-http-form-field-fuzzer\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2010\\\/11\\\/12\\\/metasploit-module-http-form-field-fuzzer\\\/\"},\"author\":{\"name\":\"corelanc0d3r\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#\\\/schema\\\/person\\\/3be5542b9b0a0787893db83a5ad68e8f\"},\"headline\":\"Metasploit module : HTTP Form field fuzzer\",\"datePublished\":\"2010-11-12T21:02:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2010\\\/11\\\/12\\\/metasploit-module-http-form-field-fuzzer\\\/\"},\"wordCount\":1244,\"publisher\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2010\\\/11\\\/12\\\/metasploit-module-http-form-field-fuzzer\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/www.digiprove.com\\\/images\\\/dp_seal_trans_16x16.png\",\"keywords\":[\"fuzzing\",\"overflow\",\"metasploit\"],\"articleSection\":[\"Exploits\",\"Security\",\"Web Application Security\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2010\\\/11\\\/12\\\/metasploit-module-http-form-field-fuzzer\\\/\",\"url\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2010\\\/11\\\/12\\\/metasploit-module-http-form-field-fuzzer\\\/\",\"name\":\"Metasploit module : HTTP Form field fuzzer - Corelan | Exploit Development &amp; Vulnerability Research\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2010\\\/11\\\/12\\\/metasploit-module-http-form-field-fuzzer\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2010\\\/11\\\/12\\\/metasploit-module-http-form-field-fuzzer\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/www.digiprove.com\\\/images\\\/dp_seal_trans_16x16.png\",\"datePublished\":\"2010-11-12T21:02:00+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2010\\\/11\\\/12\\\/metasploit-module-http-form-field-fuzzer\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2010\\\/11\\\/12\\\/metasploit-module-http-form-field-fuzzer\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2010\\\/11\\\/12\\\/metasploit-module-http-form-field-fuzzer\\\/#primaryimage\",\"url\":\"http:\\\/\\\/www.digiprove.com\\\/images\\\/dp_seal_trans_16x16.png\",\"contentUrl\":\"http:\\\/\\\/www.digiprove.com\\\/images\\\/dp_seal_trans_16x16.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2010\\\/11\\\/12\\\/metasploit-module-http-form-field-fuzzer\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.corelan.be\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Metasploit module : HTTP Form field fuzzer\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#website\",\"url\":\"https:\\\/\\\/www.corelan.be\\\/\",\"name\":\"Corelan CyberSecurity Research\",\"description\":\"Corelan publishes in-depth tutorials on exploit development, Windows exploitation, vulnerability research, heap internals, reverse engineering and security tooling used by professionals worldwide.\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.corelan.be\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#organization\",\"name\":\"Corelan CyberSecurity Research\",\"url\":\"https:\\\/\\\/www.corelan.be\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.corelan.be\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/corelanlogo2_small-20.png\",\"contentUrl\":\"https:\\\/\\\/www.corelan.be\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/corelanlogo2_small-20.png\",\"width\":200,\"height\":200,\"caption\":\"Corelan CyberSecurity Research\"},\"image\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/corelanconsulting\",\"https:\\\/\\\/x.com\\\/corelanc0d3r\",\"https:\\\/\\\/x.com\\\/corelanconsulting\",\"https:\\\/\\\/instagram.com\\\/corelanconsult\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#\\\/schema\\\/person\\\/3be5542b9b0a0787893db83a5ad68e8f\",\"name\":\"corelanc0d3r\",\"pronouns\":\"he\\\/him\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3783bed6acd72d7fa5bb2387d88acbb9a3403e7cada60b2037e1cbb74ad451f9?s=96&d=mm&r=x\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3783bed6acd72d7fa5bb2387d88acbb9a3403e7cada60b2037e1cbb74ad451f9?s=96&d=mm&r=x\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3783bed6acd72d7fa5bb2387d88acbb9a3403e7cada60b2037e1cbb74ad451f9?s=96&d=mm&r=x\",\"caption\":\"corelanc0d3r\"},\"description\":\"Peter Van Eeckhoutte is the founder of Corelan and a globally recognized expert in exploit development and vulnerability research. With over two decades in IT security, he built Corelan into a respected platform for deep technical research, hands-on training, and knowledge sharing. Known for his influential exploit development tutorials, tools, and real-world training, Peter combines a strong research mindset with a passion for education\u2014helping security professionals understand not just how exploits work, but why.\",\"sameAs\":[\"https:\\\/\\\/www.corelan-training.com\",\"https:\\\/\\\/instagram.com\\\/corelanc0d3r\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/petervaneeckhoutte\\\/\",\"https:\\\/\\\/x.com\\\/corelanc0d3r\"],\"url\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/author\\\/admin0\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Metasploit module : HTTP Form field fuzzer - Corelan | Exploit Development &amp; Vulnerability Research","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.corelan.be\/index.php\/2010\/11\/12\/metasploit-module-http-form-field-fuzzer\/","og_locale":"en_US","og_type":"article","og_title":"Metasploit module : HTTP Form field fuzzer - Corelan | Exploit Development &amp; Vulnerability Research","og_description":"Introduction About a month after releasing an ftp client fuzzer module for Metasploit, I decided to release yet another fuzzer module I have been working on over the last few weeks. This new module can be used to audit web servers\/web server plugins\/components\/filters, by fuzzing form fields and optionally fuzz some header fields. While this &hellip; Continue reading \"Metasploit module : HTTP Form field fuzzer\"","og_url":"https:\/\/www.corelan.be\/index.php\/2010\/11\/12\/metasploit-module-http-form-field-fuzzer\/","og_site_name":"Corelan | Exploit Development &amp; Vulnerability Research","article_publisher":"https:\/\/www.facebook.com\/corelanconsulting","article_published_time":"2010-11-12T21:02:00+00:00","og_image":[{"url":"http:\/\/www.digiprove.com\/images\/dp_seal_trans_16x16.png","type":"","width":"","height":""}],"author":"corelanc0d3r","twitter_card":"summary_large_image","twitter_creator":"@corelanc0d3r","twitter_site":"@corelanc0d3r","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"TechArticle","@id":"https:\/\/www.corelan.be\/index.php\/2010\/11\/12\/metasploit-module-http-form-field-fuzzer\/#article","isPartOf":{"@id":"https:\/\/www.corelan.be\/index.php\/2010\/11\/12\/metasploit-module-http-form-field-fuzzer\/"},"author":{"name":"corelanc0d3r","@id":"https:\/\/www.corelan.be\/#\/schema\/person\/3be5542b9b0a0787893db83a5ad68e8f"},"headline":"Metasploit module : HTTP Form field fuzzer","datePublished":"2010-11-12T21:02:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.corelan.be\/index.php\/2010\/11\/12\/metasploit-module-http-form-field-fuzzer\/"},"wordCount":1244,"publisher":{"@id":"https:\/\/www.corelan.be\/#organization"},"image":{"@id":"https:\/\/www.corelan.be\/index.php\/2010\/11\/12\/metasploit-module-http-form-field-fuzzer\/#primaryimage"},"thumbnailUrl":"http:\/\/www.digiprove.com\/images\/dp_seal_trans_16x16.png","keywords":["fuzzing","overflow","metasploit"],"articleSection":["Exploits","Security","Web Application Security"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.corelan.be\/index.php\/2010\/11\/12\/metasploit-module-http-form-field-fuzzer\/","url":"https:\/\/www.corelan.be\/index.php\/2010\/11\/12\/metasploit-module-http-form-field-fuzzer\/","name":"Metasploit module : HTTP Form field fuzzer - Corelan | Exploit Development &amp; Vulnerability Research","isPartOf":{"@id":"https:\/\/www.corelan.be\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.corelan.be\/index.php\/2010\/11\/12\/metasploit-module-http-form-field-fuzzer\/#primaryimage"},"image":{"@id":"https:\/\/www.corelan.be\/index.php\/2010\/11\/12\/metasploit-module-http-form-field-fuzzer\/#primaryimage"},"thumbnailUrl":"http:\/\/www.digiprove.com\/images\/dp_seal_trans_16x16.png","datePublished":"2010-11-12T21:02:00+00:00","breadcrumb":{"@id":"https:\/\/www.corelan.be\/index.php\/2010\/11\/12\/metasploit-module-http-form-field-fuzzer\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.corelan.be\/index.php\/2010\/11\/12\/metasploit-module-http-form-field-fuzzer\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.corelan.be\/index.php\/2010\/11\/12\/metasploit-module-http-form-field-fuzzer\/#primaryimage","url":"http:\/\/www.digiprove.com\/images\/dp_seal_trans_16x16.png","contentUrl":"http:\/\/www.digiprove.com\/images\/dp_seal_trans_16x16.png"},{"@type":"BreadcrumbList","@id":"https:\/\/www.corelan.be\/index.php\/2010\/11\/12\/metasploit-module-http-form-field-fuzzer\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.corelan.be\/"},{"@type":"ListItem","position":2,"name":"Metasploit module : HTTP Form field fuzzer"}]},{"@type":"WebSite","@id":"https:\/\/www.corelan.be\/#website","url":"https:\/\/www.corelan.be\/","name":"Corelan CyberSecurity Research","description":"Corelan publishes in-depth tutorials on exploit development, Windows exploitation, vulnerability research, heap internals, reverse engineering and security tooling used by professionals worldwide.","publisher":{"@id":"https:\/\/www.corelan.be\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.corelan.be\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.corelan.be\/#organization","name":"Corelan CyberSecurity Research","url":"https:\/\/www.corelan.be\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.corelan.be\/#\/schema\/logo\/image\/","url":"https:\/\/www.corelan.be\/wp-content\/uploads\/2026\/03\/corelanlogo2_small-20.png","contentUrl":"https:\/\/www.corelan.be\/wp-content\/uploads\/2026\/03\/corelanlogo2_small-20.png","width":200,"height":200,"caption":"Corelan CyberSecurity Research"},"image":{"@id":"https:\/\/www.corelan.be\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/corelanconsulting","https:\/\/x.com\/corelanc0d3r","https:\/\/x.com\/corelanconsulting","https:\/\/instagram.com\/corelanconsult"]},{"@type":"Person","@id":"https:\/\/www.corelan.be\/#\/schema\/person\/3be5542b9b0a0787893db83a5ad68e8f","name":"corelanc0d3r","pronouns":"he\/him","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/3783bed6acd72d7fa5bb2387d88acbb9a3403e7cada60b2037e1cbb74ad451f9?s=96&d=mm&r=x","url":"https:\/\/secure.gravatar.com\/avatar\/3783bed6acd72d7fa5bb2387d88acbb9a3403e7cada60b2037e1cbb74ad451f9?s=96&d=mm&r=x","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3783bed6acd72d7fa5bb2387d88acbb9a3403e7cada60b2037e1cbb74ad451f9?s=96&d=mm&r=x","caption":"corelanc0d3r"},"description":"Peter Van Eeckhoutte is the founder of Corelan and a globally recognized expert in exploit development and vulnerability research. With over two decades in IT security, he built Corelan into a respected platform for deep technical research, hands-on training, and knowledge sharing. Known for his influential exploit development tutorials, tools, and real-world training, Peter combines a strong research mindset with a passion for education\u2014helping security professionals understand not just how exploits work, but why.","sameAs":["https:\/\/www.corelan-training.com","https:\/\/instagram.com\/corelanc0d3r","https:\/\/www.linkedin.com\/in\/petervaneeckhoutte\/","https:\/\/x.com\/corelanc0d3r"],"url":"https:\/\/www.corelan.be\/index.php\/author\/admin0\/"}]}},"views":14065,"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/posts\/5347","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/comments?post=5347"}],"version-history":[{"count":0,"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/posts\/5347\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/media?parent=5347"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/categories?post=5347"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/tags?post=5347"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}