<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Web Application Security Testing on vanstechelman.eu</title>
    <link>https://www.vanstechelman.eu/tags/web-application-security-testing/</link>
    <description>Recent content in Web Application Security Testing on vanstechelman.eu</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Thu, 04 Oct 2018 07:57:17 +0000</lastBuildDate><atom:link href="https://www.vanstechelman.eu/tags/web-application-security-testing/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Testing for CVE-2018-11784 - Apache Struts 2 Open Redirect vulnerability</title>
      <link>https://www.vanstechelman.eu/content/testing-for-cve-2018-11784-apache-struts-2-open-redirect-vulnerability/</link>
      <pubDate>Thu, 04 Oct 2018 07:57:17 +0000</pubDate>
      
      <guid>https://www.vanstechelman.eu/content/testing-for-cve-2018-11784-apache-struts-2-open-redirect-vulnerability/</guid>
      <description>
        
          
            &lt;p&gt;On Wednesday 3 October 2018 the Apache Software Foundation has released information about an Open Redirect vulnerability in Apache Struts 2. The vulnerability received identifier &lt;strong&gt;CVE-2018-11784&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;The vulnerability announcements describes the vulnerability as follows:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;When the default servlet returned a redirect to a directory (e.g. redirecting to &amp;lsquo;/foo/&amp;rsquo; when the user requested &amp;lsquo;/foo&amp;rsquo;) a specially crafted URL could be used to cause the redirect to be generated to any URI of the attackers choice.&lt;/p&gt;
          
          
        
      </description>
    </item>
    
    <item>
      <title>Anatomy of the SQL injection in Drupal’s database comment filtering system SA-CORE-2015-003</title>
      <link>https://www.vanstechelman.eu/content/anatomy-of-the-sql-injection-in-drupals-database-comment-filtering-system-sa-core-2015-003/</link>
      <pubDate>Thu, 20 Aug 2015 20:54:03 +0000</pubDate>
      
      <guid>https://www.vanstechelman.eu/content/anatomy-of-the-sql-injection-in-drupals-database-comment-filtering-system-sa-core-2015-003/</guid>
      <description>
        
          
            &lt;p&gt;In the Drupal security advisory that was released on August 19th, 2015 Drupal’s security team announced that it solved an SQL injection vulnerability in the Drupal database API.&lt;/p&gt;
&lt;p&gt;\&lt;/p&gt;
&lt;p&gt;The security advisory contained the following description of the SQL injection vulnerability:&lt;/p&gt;
&lt;p&gt;A vulnerability was found in the SQL comment filtering system which could allow a user with elevated permissions to inject malicious code in SQL comments.&lt;/p&gt;
&lt;p&gt;\&lt;/p&gt;
&lt;p&gt;The following sections in this article explain where exactly the problem is located in Drupal and what the vulnerability is. Next it will explain when a Drupal site is vulnerable and how the vulnerability has been solved in the Drupal core code.&lt;/p&gt;
          
          
        
      </description>
    </item>
    
    <item>
      <title>Cookie replay attacks in ASP.NET when using forms authentication</title>
      <link>https://www.vanstechelman.eu/content/cookie-replay-attacks-in-aspnet-when-using-forms-authentication/</link>
      <pubDate>Sat, 13 Sep 2014 08:08:15 +0000</pubDate>
      
      <guid>https://www.vanstechelman.eu/content/cookie-replay-attacks-in-aspnet-when-using-forms-authentication/</guid>
      <description>
        
          
            &lt;p&gt;Microsoft ASP.NET 4.5 and earlier versions contain a weakness in the Forms Authentication functionality whereby user sessions are not properly terminated when a user logs out of the session. As a result, users are vulnerable to session hijacking even after logging out of the web application.\&lt;/p&gt;
&lt;p&gt;\&lt;/p&gt;
&lt;p&gt;This weakness isn&amp;rsquo;t new. There exists &lt;a href=&#34;http://support.microsoft.com/default.aspx?scid=kb;en-us;900111&#34;&gt;an article on Microsofts Knowledge Base&lt;/a&gt; that explains exactly this issue. So why is it important to mention it here again? Because the above KB-article was written for ASP.NET 2! The original KB publication date is unknown, but the revision information show that the KB-article was last updated in May 2007! This means that this issue in ASP.NET is already known for more than 7 years and it has survived several major ASP.NET versions.\&lt;/p&gt;
          
          
        
      </description>
    </item>
    
    <item>
      <title>Solution for java.lang.ClassNotFoundException when loading your Burp Suite extention</title>
      <link>https://www.vanstechelman.eu/content/solution-javalangclassnotfoundexception-when-loading-your-burp-suite-extention/</link>
      <pubDate>Sat, 27 Jul 2013 15:00:18 +0000</pubDate>
      
      <guid>https://www.vanstechelman.eu/content/solution-javalangclassnotfoundexception-when-loading-your-burp-suite-extention/</guid>
      <description>
        
          
            &lt;p&gt;When building your own Burp Suite extension, it can occur that compiling your code and creating the jar works find, but that you get the exception java.lang.ClassNotFoundException when loading your extention in Burp Suite. This article shows the solution to your problem.&lt;/p&gt;
          
          
        
      </description>
    </item>
    
    <item>
      <title>Creating and building Burp Suite extention using Java command-line tools</title>
      <link>https://www.vanstechelman.eu/content/creating-and-building-burp-suite-extention-using-java-command-line-tools/</link>
      <pubDate>Sat, 27 Jul 2013 14:35:58 +0000</pubDate>
      
      <guid>https://www.vanstechelman.eu/content/creating-and-building-burp-suite-extention-using-java-command-line-tools/</guid>
      <description>
        
          
            &lt;p&gt;Burp Suite allows you to easily write your own plugins, to perform complex and highly customized tasks within Burp. PortSwigger (the developer behind Burp Suite) created a series of blog posts wherein he explains what can be done with Burp Extensions. In his first blog post about the subject (see &lt;a href=&#34;http://blog.portswigger.net/2012/12/writing-your-first-burp-extension.html&#34;&gt;Writing your first Burp Suite extension&lt;/a&gt;) PortSwigger explains how you can build your own extension using an IDE. Some of us prefer however to not use a heavy IDE, but to compile the jar from the command-line. This article show how to use the javac and the jar command to create your Burp extension from the command-line.&lt;/p&gt;
          
          
        
      </description>
    </item>
    
    <item>
      <title>Testing randomness with Stompy</title>
      <link>https://www.vanstechelman.eu/security/testing-randomness-stompy/</link>
      <pubDate>Thu, 04 Apr 2013 13:27:11 +0000</pubDate>
      
      <guid>https://www.vanstechelman.eu/security/testing-randomness-stompy/</guid>
      <description>
        
          
            &lt;p&gt;Stompy is a fairly advanced entropy verifier for session cookies, XSRF tokens, OTPs, and other random data. It goes well beyond FIPS-140-2, performing n-dimensional spectral testing as well.&lt;/p&gt;
          
          
        
      </description>
    </item>
    
    <item>
      <title>Backtrack 4 customization</title>
      <link>https://www.vanstechelman.eu/security/backtrack_4_customization/</link>
      <pubDate>Fri, 20 May 2011 07:37:11 +0000</pubDate>
      
      <guid>https://www.vanstechelman.eu/security/backtrack_4_customization/</guid>
      <description>
        
          
            This page is mainly a checklist for myself to know how I have to customize a freshly downloaded version of Backtrack 4.

### Change keyboard layout

Use the following command to change the keyboard layout:

dpkg-reconfigure console-setup

Accept all default, except changing the origin to Belgium (if you want to use be-latin1).

### Update all packages

apt-get update
apt-get upgrade

### Configure SSH

You still have to generate your SSH keys

sshd-generate
          
          
        
      </description>
    </item>
    
    <item>
      <title>Using SkipFish through Burp Suite</title>
      <link>https://www.vanstechelman.eu/security/using_skipfish_through_burpsuite/</link>
      <pubDate>Wed, 18 May 2011 12:30:08 +0000</pubDate>
      
      <guid>https://www.vanstechelman.eu/security/using_skipfish_through_burpsuite/</guid>
      <description>
        
          
            &lt;p&gt;This how-to explains you how to use SkipFish through a proxy. It will show you how you have to configure Burp Suite and which parameters you need to supply to SkipFish so that all SkipFish’s traffic will flow nicely through Burp Suite.&lt;/p&gt;
          
          
        
      </description>
    </item>
    
    <item>
      <title>HTML event handlers</title>
      <link>https://www.vanstechelman.eu/security/html_event_handlers/</link>
      <pubDate>Mon, 21 Dec 2009 13:31:13 +0000</pubDate>
      
      <guid>https://www.vanstechelman.eu/security/html_event_handlers/</guid>
      <description>
        
          
            &lt;p&gt;The following is a list of event handlers which can be used in HTML code to execute Javascript code.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;FSCommand()&lt;/strong&gt;: attacker can use this when executed from within an embedded Flash object&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onAbort()&lt;/strong&gt;: when user aborts the loading of an image&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onActivate()&lt;/strong&gt;: when object is set as the active element&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onAfterPrint()&lt;/strong&gt;: activates after user prints or previews print job&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onAfterUpdate()&lt;/strong&gt;: activates on data object after updating data in the source object&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onBeforeActivate()&lt;/strong&gt;: fires before the object is set as the active element&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onBeforeCopy()&lt;/strong&gt;: attacker executes the attack string right before a selection is copied to the clipboard - attackers can do this with the execCommand(&amp;ldquo;Copy&amp;rdquo;) function&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onBeforeCut()&lt;/strong&gt;: attacker executes the attack string right before a selection is cut&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onBeforeDeactivate()&lt;/strong&gt;: fires right after the activeElement is changed from the current object&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onBeforeEditFocus()&lt;/strong&gt;: Fires before an object contained in an editable element enters a UIactivated state or when an editable container object is control selected&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onBeforePaste()&lt;/strong&gt;: user needs to be tricked into pasting or be forced into it using the execCommand(&amp;ldquo;Paste&amp;rdquo;) function&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onBeforePrint()&lt;/strong&gt;: user would need to be tricked into printing or attacker could use the print() or execCommand(&amp;ldquo;Print&amp;rdquo;) function&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onBeforeUnload()&lt;/strong&gt;: user would need to be tricked into closing the browser - attacker cannot unload windows unless it was spawned from the parent&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onBlur()&lt;/strong&gt;: in the case where another popup is loaded and window looses focus&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onBounce()&lt;/strong&gt;: fires when the behavior property of the marquee object is set to &amp;ldquo;alternate&amp;rdquo; and the contents of the marquee reach one side of the window&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onCellChange()&lt;/strong&gt;: fires when data changes in the data provider&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onChange()&lt;/strong&gt;: select, text, or TEXTAREA field loses focus and its value has been modified&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onClick()&lt;/strong&gt;: someone clicks on a form&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onContextMenu()&lt;/strong&gt;: user would need to right click on attack area&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onControlSelect()&lt;/strong&gt;: fires when the user is about to make a control selection of the object&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onCopy()&lt;/strong&gt;: user needs to copy something or it can be exploited using the execCommand(&amp;ldquo;Copy&amp;rdquo;) command&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onCut()&lt;/strong&gt;: user needs to copy something or it can be exploited using the execCommand(&amp;ldquo;Cut&amp;rdquo;) command&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onDataAvailible()&lt;/strong&gt;: user would need to change data in an element, or attacker could perform the same function&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onDataSetChanged()&lt;/strong&gt;: fires when the data set exposed by a data source object changes&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onDataSetComplete()&lt;/strong&gt;: fires to indicate that all data is available from the data source object&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onDblClick()&lt;/strong&gt;: user double-clicks a form element or a link&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onDeactivate()&lt;/strong&gt;: fires when the activeElement is changed from the current object to another object in the parent document&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onDrag()&lt;/strong&gt;: requires that the user drags an object&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onDragEnd()&lt;/strong&gt;: requires that the user drags an object&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onDragLeave()&lt;/strong&gt;: requires that the user drags an object off a valid location&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onDragEnter()&lt;/strong&gt;: requires that the user drags an object into a valid location&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onDragOver()&lt;/strong&gt;: requires that the user drags an object into a valid location&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onDragDrop()&lt;/strong&gt;: user drops an object (e.g. file) onto the browser window&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onDrop()&lt;/strong&gt;: user drops an object (e.g. file) onto the browser window&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onError()&lt;/strong&gt;: loading of a document or image causes an error&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onErrorUpdate()&lt;/strong&gt;: fires on a databound object when an error occurs while updating the associated data in the data source object&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onExit()&lt;/strong&gt;: someone clicks on a link or presses the back button&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onFilterChange()&lt;/strong&gt;: fires when a visual filter completes state change&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onFinish()&lt;/strong&gt;: attacker can create the exploit when marquee is finished looping&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onFocus()&lt;/strong&gt;: attacker executes the attack string when the window gets focus&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onFocusIn()&lt;/strong&gt;: attacker executes the attack string when window gets focus&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onFocusOut()&lt;/strong&gt;: attacker executes the attack string when window looses focus&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onHelp()&lt;/strong&gt;: attacker executes the attack string when users hits F1 while the window is in focus&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onKeyDown()&lt;/strong&gt;: user depresses a key&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onKeyPress()&lt;/strong&gt;: user presses or holds down a key&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onKeyUp()&lt;/strong&gt;: user releases a key&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onLayoutComplete()&lt;/strong&gt;: user would have to print or print preview&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onLoad()&lt;/strong&gt;: attacker executes the attack string after the window loads&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onLoseCapture()&lt;/strong&gt;: can be exploited by the releaseCapture() method&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onMouseDown()&lt;/strong&gt;: the attacker would need to get the user to click on an image&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onMouseEnter()&lt;/strong&gt;: cursor moves over an object or area&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onMouseLeave()&lt;/strong&gt;: the attacker would need to get the user to mouse over an image or table and then off again&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onMouseMove()&lt;/strong&gt;: the attacker would need to get the user to mouse over an image or table&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onMouseOut()&lt;/strong&gt;: the attacker would need to get the user to mouse over an image or table and then off again&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onMouseOver()&lt;/strong&gt;: cursor moves over an object or area&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onMouseUp()&lt;/strong&gt;: the attacker would need to get the user to click on an image&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onMouseWheel()&lt;/strong&gt;: the attacker would need to get the user to use their mouse wheel&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onMove()&lt;/strong&gt;: user or attacker would move the page&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onMoveEnd()&lt;/strong&gt;: user or attacker would move the page&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onMoveStart()&lt;/strong&gt;: user or attacker would move the page&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onPaste()&lt;/strong&gt;: user would need to paste or attacker could use the &lt;code&gt;execCommand(&amp;quot;Paste&amp;quot;)&lt;/code&gt; function&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onProgress()&lt;/strong&gt;: attacker would use this as a flash movie was loading&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onPropertyChange()&lt;/strong&gt;: user or attacker would need to change an element property&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onReadyStateChange()&lt;/strong&gt;: user or attacker would need to change an element property&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onReset()&lt;/strong&gt;: user or attacker resets a form&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onResize()&lt;/strong&gt;: user would resize the window; attacker could auto initialize with something like: &lt;code&gt;&amp;lt;SCRIPT&amp;gt;self.resizeTo(500,400);&amp;lt;/SCRIPT&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onResizeEnd()&lt;/strong&gt;: user would resize the window; attacker could auto initialize with something like: &lt;code&gt;&amp;lt;SCRIPT&amp;gt;self.resizeTo(500,400);&amp;lt;/SCRIPT&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onResizeStart()&lt;/strong&gt;: user would resize the window; attacker could auto initialize with something like: &lt;code&gt;&amp;lt;SCRIPT&amp;gt;self.resizeTo(500,400);&amp;lt;/SCRIPT&amp;gt;&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onRowEnter()&lt;/strong&gt;: user or attacker would need to change a row in a data source&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onRowExit()&lt;/strong&gt;: user or attacker would need to change a row in a data source&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onRowDelete()&lt;/strong&gt;: user or attacker would need to delete a row in a data source&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onRowInserted()&lt;/strong&gt;: user or attacker would need to insert a row in a data source&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onScroll()&lt;/strong&gt;: user would need to scroll, or attacker could use the &lt;code&gt;scrollBy()&lt;/code&gt; function&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onSelect()&lt;/strong&gt;: user needs to select some text - attacker could auto initialize with something like: &lt;code&gt;window.document.execCommand(&amp;quot;SelectAll&amp;quot;);&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onSelectionChange()&lt;/strong&gt;: user needs to select some text - attacker could auto initialize with something like: &lt;code&gt;window.document.execCommand(&amp;quot;SelectAll&amp;quot;);&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onSelectStart()&lt;/strong&gt;: user needs to select some text - attacker could auto initialize with something like: &lt;code&gt;window.document.execCommand(&amp;quot;SelectAll&amp;quot;);&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onStart()&lt;/strong&gt;: fires at the beginning of each marquee loop&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onStop()&lt;/strong&gt;: user would need to press the stop button or leave the webpage&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onSubmit()&lt;/strong&gt;: requires attacker or user submits a form&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;onUnload()&lt;/strong&gt;: as the user clicks any link or presses the back button or attacker forces a click&lt;/li&gt;
&lt;/ul&gt;
          
          
        
      </description>
    </item>
    
    <item>
      <title>Using the WebScarab bean shell to modify requests/responses</title>
      <link>https://www.vanstechelman.eu/security/webscarab_bean_shell/</link>
      <pubDate>Sun, 10 Feb 2008 11:40:57 +0000</pubDate>
      
      <guid>https://www.vanstechelman.eu/security/webscarab_bean_shell/</guid>
      <description>
        
          
            &lt;p&gt;This article shows how you can use the WebScarab bean shell to modify requests and responses that are transmitted and received by WebScarab.&lt;/p&gt;
          
          
        
      </description>
    </item>
    
  </channel>
</rss>