Pagina 1 van 1

potentially dangerous Request.QueryString value

Geplaatst: 14 jun 2011, 09:12
door BMaster
Wij hebben een asp.net website (afgeschermd met paswoord) voor onze klanten. Bij enkele van deze klanten krijgen we bij sommige requests (dus niet altijd) een foutmelding. In de eventviewer zien we het volgende:

Code: Selecteer alles

Message
A potentially dangerous Request.QueryString value was detected from the client ((b="...bs(b),0);b<c;b++)if(b in d").

Source
System.Web

Target site
Void ValidateString(System.String, System.String, System.String)

Stack trace
   at System.Web.HttpRequest.ValidateString(String s, String valueName, String collectionName)
   at System.Web.HttpRequest.ValidateNameValueCollection(NameValueCollection nvc, String collectionName)
   at System.Web.HttpRequest.get_QueryString()
   at System.Web.UI.Page.GetCollectionBasedOnMethod(Boolean dontReturnNull)
   at System.Web.UI.Page.DeterminePostBackMode()
   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
   at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
   at System.Web.UI.Page.ProcessRequest()
   at System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context)
   at System.Web.UI.Page.ProcessRequest(HttpContext context)
   at ASP.index_aspx.ProcessRequest(HttpContext context)
   at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
In de IIS logfile zien we de volgende request:

Code: Selecteer alles

GET /index.aspx app=MPSS&indexof=function(a){if(this===void%200||this===null)throw%20new%20TypeError;var%20d=Object(this),c=d.length>>>0;if(c===0)return-1;var%20b=0;arguments.length>0&&(b=Number(arguments[1]),b!==b?b=0:b!==0&&b!==1/0&&b!==-(1/0)&&(b=(b>0||-1)*Math.floor(Math.abs(b))));if(b>=c)return-1;for(b=b>=0?b:Math.max(c-Math.abs(b),0);b<c;b%2B%2B)if(b%20in%20d&&d[b]===a)return%20b;return-1}&dat=09/06/2011 80 - 84.193.37.101 HTTP/1.1 Mozilla/4.0+(compatible;+MSIE+8.0;+Windows+NT+5.1;+Trident/4.0;+GTB6.6;+Mozilla/4.0+(compatible;+MSIE+7.0;+MyBee+Browser);+.NET+CLR+2.0.50727;+OfficeLiveConnector.1.3;+OfficeLivePatch.0.0;+InfoPath.1;+.NET+CLR+3.0.4506.2152;+.NET+CLR+3.5.30729) 
Het bizarre is dat de javascript code tussen onze eigen parameters staat. Normaal zou bovenstaande request eruit zien als "index.aspx?app=MPSS&dat=09/06/2011"...

Iemand enig idee wat dit zou kunnen zijn? In onze source code komt in elk geval niets van deze javascript code voor....

Re: potentially dangerous Request.QueryString value

Geplaatst: 14 jun 2011, 10:25
door meon
XSS (Cross Site scripting): http://nl.wikipedia.org/wiki/Cross-site_scripting
Dat uw .net dat dus zelf afblokt is al goed. Vaak heb je voor dit soort security issues een application firewall nodig.

Re: potentially dangerous Request.QueryString value

Geplaatst: 14 jun 2011, 10:34
door BMaster
Zoiets dacht ik al, maar ik vind het zo vreemd dat het op dezelfde dag begonnen is bij enkele totaal verschillende klanten...

Re: potentially dangerous Request.QueryString value

Geplaatst: 14 jun 2011, 11:53
door Astralon
Je kan request validation altijd uitschakelen door je web.config aan te passen.

Code: Selecteer alles

<system.web> 
   <pages validateRequest="false" /> 
</system.web>

Re: potentially dangerous Request.QueryString value

Geplaatst: 14 jun 2011, 12:12
door BMaster
Ja, maar dan is de beveiliging natuurlijk ook weg hé. Ik ben blij dat die controles ingebakken zitten in het systeem, maar zou wel graag weten wat de oorzaak is. Ik kan niet geloven dat die 10 klanten los van mekaar op hetzelfde moment met opzet beginnen "in te breken" in ons systeem. Zeker als je weet dat sommigen onder hen met moeite hun pc kunnen aan en uit zetten. Ik was eerder aan het denken aan een soort malware/spyware-achtig iets, maar via google vind ik zo direct niets als ik zoek naar een stuk van die javascript in combinatie met de foutmelding die we krijgen...

Re: potentially dangerous Request.QueryString value

Geplaatst: 14 jun 2011, 12:19
door Astralon
OK, zeg eens wat voor informatie klanten normaal ingeven, want nu ie er iemand die
((b="...bs(b),0);b<c;b++)if(b in d").
ingeeft en daar zit een assignment (b=) in en dat heeft de validator niet graag.

Re: potentially dangerous Request.QueryString value

Geplaatst: 14 jun 2011, 12:24
door BMaster
Normaal kan in de url bijvoorbeeld een artikelnummer of een datum staan. Niet door die zelf in te typen, maar door links te volgen op onze site. Dat er nu hele stukken javascript in die url verschijnen maakt het net zo bizar. Ljikt mij niet dat iemand dat manueel gaat liggen intikken tenzij hij exact weet waar hij mee bezig is. En zoals ik zei, de meeste van onze klanten weten amper hoe ze een pc moeten aan zetten, laat staan dat ze javascript in de url gaan ingeven :)

Re: potentially dangerous Request.QueryString value

Geplaatst: 14 jun 2011, 12:40
door Astralon

Re: potentially dangerous Request.QueryString value

Geplaatst: 14 jun 2011, 13:01
door BMaster
Dat had ik ook al gevonden, maar ik zie het verband niet. VOSAO is blijkbaar een CMS... Zit daar misschien iets ingebouwd om stukken van andere websites te stelen? Dat zou dan wel kunnen verklaren hoe een stuk code in een url van ons terecht komt...

EDIT: nu merk ik dat de javascript code sinds vandaag ietsje anders geworden is. Tot en met gisteren zag het er zo uit:

Code: Selecteer alles

/index.aspx app=AVK&indexof=function(searchElement){"use%20strict";if(this===void%200||this===null)throw%20new%20TypeError();var%20t=Object(this);var%20len=t.length>>>0;if(len===0)return-1;var%20n=0;if(arguments.length>0){n=Number(arguments[1]);if(n!==n)n=0;else%20if(n!==0&&n!==(1/0)&&n!==-(1/0))n=(n>0||-1)*Math.floor(Math.abs(n))}if(n>=len)return-1;var%20k=n>=0?n:Math.max(len-Math.abs(n),0);for(;k<len;k%2B%2B){if(k%20in%20t&&t[k]===searchElement)return%20k}return-1}&grpper=28%20%200
(de parameters van ons zijn app=AVK en GRPPER=28%20%200).

Deze javascript lijkt mij exact hetzelfde als op bijvoorbeeld https://developer.mozilla.org/en/JavaSc ... ay/indexOf ....