<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/rss-style.xsl" type="text/xsl"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	    xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	     xmlns:dc="http://purl.org/dc/elements/1.1/"
	   xmlns:atom="http://www.w3.org/2005/Atom"
	     xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	  xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>
<channel>
	<title>gove &#8211; Terence Eden’s Blog</title>
	<atom:link href="https://shkspr.mobi/blog/tag/gove/feed/" rel="self" type="application/rss+xml" />
	<link>https://shkspr.mobi/blog</link>
	<description>Regular nonsense about tech and its effects 🙃</description>
	<lastBuildDate>Tue, 04 Mar 2025 09:41:47 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://shkspr.mobi/blog/wp-content/uploads/2023/07/cropped-avatar-32x32.jpeg</url>
	<title>gove &#8211; Terence Eden’s Blog</title>
	<link>https://shkspr.mobi/blog</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title><![CDATA[The Unsecured State Part 2 - EduBase XSS (Disclosed & Fixed)]]></title>
		<link>https://shkspr.mobi/blog/2014/03/edubase-xss-disclosed/</link>
					<comments>https://shkspr.mobi/blog/2014/03/edubase-xss-disclosed/#comments</comments>
				<dc:creator><![CDATA[@edent]]></dc:creator>
		<pubDate>Tue, 04 Mar 2014 12:13:52 +0000</pubDate>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[gove]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[Unsecured State]]></category>
		<category><![CDATA[xss]]></category>
		<guid isPermaLink="false">http://shkspr.mobi/blog/?p=9796</guid>

					<description><![CDATA[This is part 2 of a series of blog posts looking at the security of the UK Government&#039;s web infrastructure.    Many XSS flaws rely on altering the GET parameters of a request.  Some webmasters seem to think that if their forms only use POST they will be immune from the XSS.  This is not the case.  Don&#039;t Press This Button  Pressing this button will send a POST request to the Department of…]]></description>
										<content:encoded><![CDATA[<p>This is part 2 of a <a href="https://shkspr.mobi/blog/tag/unsecured-state/">series of blog posts</a> looking at the security of the UK Government's web infrastructure.</p>

<hr>

<p>Many XSS flaws rely on altering the GET parameters of a request.  Some webmasters seem to think that if their forms only use POST they will be immune from the XSS.  This is <strong>not</strong> the case.</p>

<h2 id="dont-press-this-button"><a href="https://shkspr.mobi/blog/2014/03/edubase-xss-disclosed/#dont-press-this-button">Don't Press This Button</a></h2>

<p>Pressing this button will send a POST request to the Department of Education's EduBase website.</p>

<form id="quickSearch" action="https://www.education.gov.uk/edubase/home.xhtml" method="post">
    <input id="establishmentName.value" name="establishmentName.value" class="text autocompleteName" type="hidden" value="<h1/>XSS Demonstration<h2><a href='http://www.teachers.org.uk/campaigns/protect-teachers'>Demo link</a></h2><img src='https://gs1.wac.edgecastcdn.net/8019B6/data.tumblr.com/tumblr_m811uzuyp91rcq3oko1_500.jpg'/><br /><script>alert('JavaScript XSS');</script>">
<button><h2 id="demonstrate-xss"><a href="https://shkspr.mobi/blog/2014/03/edubase-xss-disclosed/#demonstrate-xss">Demonstrate XSS</a></h2></button>
</form>

<p>Up until yesterday, the site would blindly echo back anything that was sent to it.  Which resulted in the page looking something like this:
<img src="https://shkspr.mobi/blog/wp-content/uploads/2014/02/Edubase-XSS-fs8.png" alt="Edubase XSS" width="765" height="466" class="aligncenter size-full wp-image-9801"></p>

<h2 id="code"><a href="https://shkspr.mobi/blog/2014/03/edubase-xss-disclosed/#code">Code</a></h2>

<p>HTML forms can direct your browser to POST information to <em>any</em> site.  It's even possible to hide the data from the user - so all they see is a big button to press.</p>

<pre><code class="language-html">&lt;form method="post"
   id="quickSearch"
   action="http://www.education.gov.uk/edubase/home.xhtml" &gt;
   &lt;input id="establishmentName.value"
          name="establishmentName.value"
          type="hidden"
          value="&lt;h1&gt;XSS Demonstration&lt;/h1&gt;
                 &lt;h2&gt;&lt;a href='http://www.teachers.org.uk/campaigns/protect-teachers'&gt;Demo link&lt;/a&gt;&lt;/h2&gt;
                 &lt;img src='https://gs1.wac.edgecastcdn.net/8019B6/data.tumblr.com/tumblr_m811uzuyp91rcq3oko1_500.jpg'/&gt;&lt;br /&gt;
                 &lt;script&gt;alert('JavaScript XSS');&lt;/script&gt;"
   /&gt;
   &lt;button&gt;Demonstrate XSS&lt;/button&gt;
&lt;/form&gt;
</code></pre>

<h2 id="mitigation"><a href="https://shkspr.mobi/blog/2014/03/edubase-xss-disclosed/#mitigation">Mitigation</a></h2>

<p><strong>Always escape untrusted data!</strong>  Read the <a href="https://cheatsheetseries.owasp.org/cheatsheets/XSS_Filter_Evasion_Cheat_Sheet.html">OWASP cheat sheet</a> for more information.</p>

<p>When such a flaw is discovered and then reported, it is imperative that you have a plan to <em>rapidly</em> secure it.  It took <strong>27 days</strong> to get the fix into production.  I've no idea how long it was open for - or how many people exploited it in that time.</p>

<p>In this case, the Department for Education have outsourced EduBase to <a href="http://www.texuna.com/">Texuna</a> - a technology partner.  Texuna don't have any secure way for people to report flaws to them and, when notified, struggled to find someone who could take responsibility.</p>

<p>Texuna seemed to me unable to convey the urgency of the situation to the DfE.  A complicated public/private partnership with multiple stakeholders seems to mean that there is no way to escalate security issues.</p>

<p>While it is vitally important to thoroughly test security patches, there's also a very real risk involved in leaving a system unpatched.</p>

<p>This is a textbook example of where outsourcing fails.  The ideological agenda which promotes the lowest bidder is doomed to failure when a crisis occurs.  Responsibility is diffused, no one is empowered to make decisions, and without proper management oversight critical bugs are left unfixed.</p>

<p>Compare and contrast to <a href="https://shkspr.mobi/blog/2014/03/uk-parliament-xss-flaw-disclosed/" title="The Unsecured State Part 1 - UK Parliament XSS Flaw (Disclosed &amp; Fixed)">yesterday's bug</a>.  An identical XSS bug in the Parliament.uk website was fixed <em>over a weekend</em>.  Because the Parliament team was centralised and highly motivated they were able to accomplish something a "highly trusted partner" could not.</p>

<p>It is not known how many more of Texuna's client's sites are in a similarly unsecured state.</p>

<h2 id="timeline"><a href="https://shkspr.mobi/blog/2014/03/edubase-xss-disclosed/#timeline">Timeline</a></h2>

<ul>
    <li>5th February. Disclosed to Department of Education and their technology partner <a href="http://www.texuna.com/">Texuna</a>.</li>
<li>7th February. Disclosed to <a href="https://web.archive.org/web/20140313083224/http://www.cesg.gov.uk/policyguidance/GovCertUK/Pages/index.aspx">GovCertUK</a>.</li>
<li>12th February. Contacted the <a href="http://www.tes.co.uk/">TES Newspaper</a> to allow them to report on the story.</li>
    <li>26th February. According to Texuna a fix released - to be scheduled for production "soon".</li>
<li>28th February. Informed Texuna of publication date.</li>
<li>3rd March. Fixed.</li>
    <li>4th March. Published.</li>
</ul>

<h2 id="a-special-message-for-michael-gove"><a href="https://shkspr.mobi/blog/2014/03/edubase-xss-disclosed/#a-special-message-for-michael-gove">A Special Message For Michael Gove</a></h2>

<img src="https://shkspr.mobi/blog/wp-content/uploads/2014/03/nobody-likes-you-gollum.gif" alt="Gollum from Lord of the Rings saying " nobody="" likes="" you.""="" width="244" height="240" class="aligncenter size-full wp-image-40757">
<img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=9796&HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager">]]></content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2014/03/edubase-xss-disclosed/feed/</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
			</item>
	</channel>
</rss>
