uc-httpd 1.0.0
tcp/80
This vulnerability (with proof of concept (PoC) code) affects DVR/NVR devices built using the HiSilicon hi3520d and similar system on a chip (SoC).
Exploiting the vulnerabilities lead to unauthorized remote code execution (RCE) using only the web interface, causing full takeover of the exploited device
Severity: high
Fingerprint: 321975614123c6c05f83e99b076db6a40ed134490ed134490ed134490ed13449
Found HiSiliconDVR firmware: Hardware: NOCRYPO AHD9808H_F Vulnerable to multiple issues : LFI, possibly RCE
Open service 31.40.9.22:8080
2024-06-20 05:32
HTTP/1.1 200 OK Connection: close Content-Length: 7061 Content-Type: text/html Date: Thu, 20 Jun 2024 05:33:56 GMT Expires: 0 Page title: RouterOS router configuration page <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link rel="icon" href="/favicon.png"/> <title>RouterOS router configuration page</title> <style type="text/css"> body { font-family: Verdana, Geneva, sans-serif; font-size: 11px; } img {border: none} img:hover {opacity: 0.8;} h1 { font-size: 1.7em; display: inline; margin-bottom: 10px; } fieldset { margin-top: 20px; background: #fff; padding: 20px; border: 1px solid #c1c1c1; } #container { width: 70%; margin: 10% auto; } #box { background-color: #fff; -moz-border-radius: 7px; -webkit-border-radius: 7px; border: 1px solid #c1c1c1; padding: 30px; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f3f3f3'); /* for IE */ background: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#f3f3f3)); /* for webkit browsers */ background: -moz-linear-gradient(top, #fff, #f3f3f3); /* for firefox 3.6+ */ } .floater {float: left; margin-right: 10px;} .floater label {display: block; text-align: center;} #login { margin: 2em 0 4em 0; } #login h2 { font-weight: normal; font-size: 14px; margin: 0 0 0.5em 1em; } #login td { padding: 0 4px 0 0; } #login td.label { text-align: right; } #login td.toolbar { padding: 0 0 0 1em; vertical-align: top; } #login ul.toolbar { margin: 0; } #login input { margin: 2px; padding: 2px; border: 1px solid #888; box-shadow: 1px 1px 3px rgba(0,0,0,0.3); -webkit-box-shadow: 1px 1px 3px rgba(0,0,0,0.3); -moz-box-shadow: 1px 1px 3px rgba(0,0,0,0.3); } #error { display:none; color:red; padding: 1em 0 0 0; } ul.toolbar { font-size: 11px; text-align: left; list-style-type: none; padding: 0; margin: 2px 0 4px 2px; } ul.toolbar li { float: left; vertical-align: middle; } ul.toolbar a { float: none; display: block; margin: 2px 4px 2px 0; padding: 5px; background: #ddd; border: 1px solid #888; border-radius: 3px; -moz-border-radius: 3px; box-shadow: 1px 1px 2px rgba(255,255,255,0.8) inset, 0 10px 10px -5px rgba(255,255,255,0.5) inset, /* top gradient */ 1px 1px 2px rgba(0,0,0,0.2); /* shadow */ -webkit-box-shadow: 1px 1px 2px rgba(255,255,255,0.8) inset, 0 10px 10px -5px rgba(255,255,255,0.5) inset, 1px 1px 2px rgba(0,0,0,0.2); -moz-box-shadow: 1px 1px 2px rgba(255,255,255,0.8) inset, 0 10px 10px -5px rgba(255,255,255,0.5) inset, 1px 1px 2px rgba(0,0,0,0.2); color: #000; text-decoration: none; text-align: center; white-space: nowrap; cursor: inherit; min-width: 4em; -webkit-transition: background 0.2s linear, box-shadow 0.2s ease-out; -moz-transition: background 0.2s linear, box-shadow 0.2s ease-out; } ul.toolbar a:hover { background: #eee; } ul.toolbar a:active { background: #aaa; box-shadow: 1px 1px 2px #999 inset; -webkit-box-shadow: 1px 1px 2px #999 inset; -moz-box-shadow: 1px 1px 2px #999 inset; } </style> <script> function get(id) { return document.getElementById(id); } function trim(str) { return str.replace(/^\s+|\s+$/g, ''); } function login(user, pwd, autologin) { var expires = new Date(); expires.setTime(expires.getTime() + (30 * 24 * 60 * 60 * 1000)); document.cookie = 'username=' + user + '; expires=' + expires.toGMTString() + '; path=/'; window.name = (autologin ? 'autologin=' : 'login=') + user + '|' + pwd; window.location.replace('/webfig/' + window.location.hash); } function dologin() { login(get('name').value, get('password').value); } function loaded() { var p = window.name.split('='); if (p[0] == 'error' && p[1]) { var err = get('error'); err.appendChild(document.crea
Open service 31.40.9.22:80
2024-06-19 22:12
HTTP/1.1 200 OK Content-type: text/html Server: uc-httpd/1.0.0 Cache-Control: max-age=2592000 Connection: Close Page title: Web Client <!DOCTYPE html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=7" /> <link rel="stylesheet" type="text/css" href="m.css" /> <title>Web Client</title> <!-- m.js --> <script type="text/javascript" language="JavaScript"> if(!(navigator.userAgent.indexOf("MSIE") >= 0 ||navigator.userAgent.indexOf("Trident") >=0)) { if(navigator.userAgent.indexOf("Mac OS X")>0)//mac操作系统 { location.href="Login.htm"; } else { location.href="Findex.htm"; } } </script> <script type="text/javascript">//m.js var ipaddress =document.location.hostname; var hostport=34567; var iLanguage=106; </script> <script type="text/javascript" src="m.jsp"></script> <script type="text/javascript" src="config.js"></script> <!-- 全局变量 --> <script type="text/javascript"> var gExitChannel=new Array(); var gExitSubType=new Array(); var gexiti; var gcid=-1; var g_channelNum=4; var g_oldWinNum = g_channelNum; var g_digitalChannel=0; var gsld; var gslda; var gsldb; var gsldc; var gsldd; var gfmu1=0; var gfmu2=0; var gfmu3=0; var g_bRecord=false; var g_bRealPlay=false; var g_bAudio=false; var gHashCookie = new Hash.Cookie('WebClientCookie',{duration: 30}); var settings = { username:'' } var gca=0; var gcb=0; var gcc=0; var gcd=0; var gAutoPlayAll=false; var gIntoZoom=false; </script> <!-- 颜色滑块 --> <script type="text/javascript"> function sldtopos(sld,step){ sld.knob.setStyle('left', sld.toPosition(step)); } function setcolorsv(f,v){ switch (f) { case 1: gca=v; $('ska').title=v; break; case 2: gcb=v; $('skb').title=v; break; case 3: gcc=v; $('skc').title=v; break; case 4: gcd=v; $('skd').title=v; break; } } function getcolors(){ var colors=""; colors=ocx.GetColor(); var t= new Array(); if (colors !="") { t=colors.split(','); sldtopos(gslda,parseInt(t[0])); sldtopos(gsldb,parseInt(t[1])); sldtopos(gsldc,parseInt(t[2])); sldtopos(gsldd,parseInt(t[3])); setcolorsv(1,parseInt(t[0])); setcolorsv(2,parseInt(t[1])); setcolorsv(3,parseInt(t[2])); setcolorsv(4,parseInt(t[3])); } else//这里有待选中消息的传递 { sldtopos(gslda,parseInt(0)); sldtopos(gsldb,parseInt(0)); sldtopos(gsldc,parseInt(0)); sldtopos(gsldd,parseInt(0)); setcolorsv(1,parseInt(0)); setcolorsv(2,parseInt(0)); setcolorsv(3,parseInt(0)); setcolorsv(4,parseInt(0)); } } function txreset(step){ setcolorsv(1,step); setcolorsv(2,step); setcolorsv(3,step); setcolorsv(4,step); sldtopos(gslda,step); sldtopos(gsldb,step); sldtopos(gsldc,step); sldtopos(gsldd,step); setcolors(); } function setcolors(){ ocx.SetColor(0,gca,gcb,gcc,gcd); } </script> <!-- 设备通道 --> <script type="text/javascript"> function tl(s){ var ret; ret=ocx.Translate(s); return ret; }//moving here for later function function ca(o,ch) { var oc; if ($(o).hasClass('cl1')){ if (ocx.StartRealPlay(ch,0,0)){ oc=$('c'+ch); oc.removeClass(oc.className); oc.addClass('cl2'); } } else{ if (ocx.StopPlayReal(ch)){ oc=$('c'+ch); oc.removeClass(oc.className); oc.addClass('cl1'); } } } function getcl(){ g_digitalChannel=ocx.GetDeviceState(1,0); var t= new Array(); var ts=new Array(); var titles=new Array(); titles[0]=tl('Desktop.LocalRecord'); titles[1]=tl('Desktop.ExtStream'); titles[2]=tl('Desktop.MainStream'); titles[3]=tl('Desktop.StartTalk'); titles[4]=tl('WebTitle.DigitalChannel'); var shtml=""; shtml+="<li id='Talk' ><a title='"+titles[3]+"' id='talking' class='noT' href='javascript:;' onclick='Ontalk()' ></a><span id='logoString' style='margin:0 5px 0 3px;'>NetSurveillance</span></li> " var strsplita=String.fromCharCode(16); var strsplitb=String.fromCharCode(9); var sc; sc=ocx.GetChannelName(); if (sc !=""){ sc=sc.substr(0, sc.l
Open service 31.40.9.22:80
2024-06-17 21:02
HTTP/1.1 200 OK Content-type: text/html Server: uc-httpd/1.0.0 Cache-Control: max-age=2592000 Connection: Close Page title: Web Client <!DOCTYPE html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=7" /> <link rel="stylesheet" type="text/css" href="m.css" /> <title>Web Client</title> <!-- m.js --> <script type="text/javascript" language="JavaScript"> if(!(navigator.userAgent.indexOf("MSIE") >= 0 ||navigator.userAgent.indexOf("Trident") >=0)) { if(navigator.userAgent.indexOf("Mac OS X")>0)//mac操作系统 { location.href="Login.htm"; } else { location.href="Findex.htm"; } } </script> <script type="text/javascript">//m.js var ipaddress =document.location.hostname; var hostport=34567; var iLanguage=106; </script> <script type="text/javascript" src="m.jsp"></script> <script type="text/javascript" src="config.js"></script> <!-- 全局变量 --> <script type="text/javascript"> var gExitChannel=new Array(); var gExitSubType=new Array(); var gexiti; var gcid=-1; var g_channelNum=4; var g_oldWinNum = g_channelNum; var g_digitalChannel=0; var gsld; var gslda; var gsldb; var gsldc; var gsldd; var gfmu1=0; var gfmu2=0; var gfmu3=0; var g_bRecord=false; var g_bRealPlay=false; var g_bAudio=false; var gHashCookie = new Hash.Cookie('WebClientCookie',{duration: 30}); var settings = { username:'' } var gca=0; var gcb=0; var gcc=0; var gcd=0; var gAutoPlayAll=false; var gIntoZoom=false; </script> <!-- 颜色滑块 --> <script type="text/javascript"> function sldtopos(sld,step){ sld.knob.setStyle('left', sld.toPosition(step)); } function setcolorsv(f,v){ switch (f) { case 1: gca=v; $('ska').title=v; break; case 2: gcb=v; $('skb').title=v; break; case 3: gcc=v; $('skc').title=v; break; case 4: gcd=v; $('skd').title=v; break; } } function getcolors(){ var colors=""; colors=ocx.GetColor(); var t= new Array(); if (colors !="") { t=colors.split(','); sldtopos(gslda,parseInt(t[0])); sldtopos(gsldb,parseInt(t[1])); sldtopos(gsldc,parseInt(t[2])); sldtopos(gsldd,parseInt(t[3])); setcolorsv(1,parseInt(t[0])); setcolorsv(2,parseInt(t[1])); setcolorsv(3,parseInt(t[2])); setcolorsv(4,parseInt(t[3])); } else//这里有待选中消息的传递 { sldtopos(gslda,parseInt(0)); sldtopos(gsldb,parseInt(0)); sldtopos(gsldc,parseInt(0)); sldtopos(gsldd,parseInt(0)); setcolorsv(1,parseInt(0)); setcolorsv(2,parseInt(0)); setcolorsv(3,parseInt(0)); setcolorsv(4,parseInt(0)); } } function txreset(step){ setcolorsv(1,step); setcolorsv(2,step); setcolorsv(3,step); setcolorsv(4,step); sldtopos(gslda,step); sldtopos(gsldb,step); sldtopos(gsldc,step); sldtopos(gsldd,step); setcolors(); } function setcolors(){ ocx.SetColor(0,gca,gcb,gcc,gcd); } </script> <!-- 设备通道 --> <script type="text/javascript"> function tl(s){ var ret; ret=ocx.Translate(s); return ret; }//moving here for later function function ca(o,ch) { var oc; if ($(o).hasClass('cl1')){ if (ocx.StartRealPlay(ch,0,0)){ oc=$('c'+ch); oc.removeClass(oc.className); oc.addClass('cl2'); } } else{ if (ocx.StopPlayReal(ch)){ oc=$('c'+ch); oc.removeClass(oc.className); oc.addClass('cl1'); } } } function getcl(){ g_digitalChannel=ocx.GetDeviceState(1,0); var t= new Array(); var ts=new Array(); var titles=new Array(); titles[0]=tl('Desktop.LocalRecord'); titles[1]=tl('Desktop.ExtStream'); titles[2]=tl('Desktop.MainStream'); titles[3]=tl('Desktop.StartTalk'); titles[4]=tl('WebTitle.DigitalChannel'); var shtml=""; shtml+="<li id='Talk' ><a title='"+titles[3]+"' id='talking' class='noT' href='javascript:;' onclick='Ontalk()' ></a><span id='logoString' style='margin:0 5px 0 3px;'>NetSurveillance</span></li> " var strsplita=String.fromCharCode(16); var strsplitb=String.fromCharCode(9); var sc; sc=ocx.GetChannelName(); if (sc !=""){ sc=sc.substr(0, sc.l
Open service 31.40.9.22:80
2024-06-15 22:12
HTTP/1.1 200 OK Content-type: text/html Server: uc-httpd/1.0.0 Cache-Control: max-age=2592000 Connection: Close Page title: Web Client <!DOCTYPE html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=7" /> <link rel="stylesheet" type="text/css" href="m.css" /> <title>Web Client</title> <!-- m.js --> <script type="text/javascript" language="JavaScript"> if(!(navigator.userAgent.indexOf("MSIE") >= 0 ||navigator.userAgent.indexOf("Trident") >=0)) { if(navigator.userAgent.indexOf("Mac OS X")>0)//mac操作系统 { location.href="Login.htm"; } else { location.href="Findex.htm"; } } </script> <script type="text/javascript">//m.js var ipaddress =document.location.hostname; var hostport=34567; var iLanguage=106; </script> <script type="text/javascript" src="m.jsp"></script> <script type="text/javascript" src="config.js"></script> <!-- 全局变量 --> <script type="text/javascript"> var gExitChannel=new Array(); var gExitSubType=new Array(); var gexiti; var gcid=-1; var g_channelNum=4; var g_oldWinNum = g_channelNum; var g_digitalChannel=0; var gsld; var gslda; var gsldb; var gsldc; var gsldd; var gfmu1=0; var gfmu2=0; var gfmu3=0; var g_bRecord=false; var g_bRealPlay=false; var g_bAudio=false; var gHashCookie = new Hash.Cookie('WebClientCookie',{duration: 30}); var settings = { username:'' } var gca=0; var gcb=0; var gcc=0; var gcd=0; var gAutoPlayAll=false; var gIntoZoom=false; </script> <!-- 颜色滑块 --> <script type="text/javascript"> function sldtopos(sld,step){ sld.knob.setStyle('left', sld.toPosition(step)); } function setcolorsv(f,v){ switch (f) { case 1: gca=v; $('ska').title=v; break; case 2: gcb=v; $('skb').title=v; break; case 3: gcc=v; $('skc').title=v; break; case 4: gcd=v; $('skd').title=v; break; } } function getcolors(){ var colors=""; colors=ocx.GetColor(); var t= new Array(); if (colors !="") { t=colors.split(','); sldtopos(gslda,parseInt(t[0])); sldtopos(gsldb,parseInt(t[1])); sldtopos(gsldc,parseInt(t[2])); sldtopos(gsldd,parseInt(t[3])); setcolorsv(1,parseInt(t[0])); setcolorsv(2,parseInt(t[1])); setcolorsv(3,parseInt(t[2])); setcolorsv(4,parseInt(t[3])); } else//这里有待选中消息的传递 { sldtopos(gslda,parseInt(0)); sldtopos(gsldb,parseInt(0)); sldtopos(gsldc,parseInt(0)); sldtopos(gsldd,parseInt(0)); setcolorsv(1,parseInt(0)); setcolorsv(2,parseInt(0)); setcolorsv(3,parseInt(0)); setcolorsv(4,parseInt(0)); } } function txreset(step){ setcolorsv(1,step); setcolorsv(2,step); setcolorsv(3,step); setcolorsv(4,step); sldtopos(gslda,step); sldtopos(gsldb,step); sldtopos(gsldc,step); sldtopos(gsldd,step); setcolors(); } function setcolors(){ ocx.SetColor(0,gca,gcb,gcc,gcd); } </script> <!-- 设备通道 --> <script type="text/javascript"> function tl(s){ var ret; ret=ocx.Translate(s); return ret; }//moving here for later function function ca(o,ch) { var oc; if ($(o).hasClass('cl1')){ if (ocx.StartRealPlay(ch,0,0)){ oc=$('c'+ch); oc.removeClass(oc.className); oc.addClass('cl2'); } } else{ if (ocx.StopPlayReal(ch)){ oc=$('c'+ch); oc.removeClass(oc.className); oc.addClass('cl1'); } } } function getcl(){ g_digitalChannel=ocx.GetDeviceState(1,0); var t= new Array(); var ts=new Array(); var titles=new Array(); titles[0]=tl('Desktop.LocalRecord'); titles[1]=tl('Desktop.ExtStream'); titles[2]=tl('Desktop.MainStream'); titles[3]=tl('Desktop.StartTalk'); titles[4]=tl('WebTitle.DigitalChannel'); var shtml=""; shtml+="<li id='Talk' ><a title='"+titles[3]+"' id='talking' class='noT' href='javascript:;' onclick='Ontalk()' ></a><span id='logoString' style='margin:0 5px 0 3px;'>NetSurveillance</span></li> " var strsplita=String.fromCharCode(16); var strsplitb=String.fromCharCode(9); var sc; sc=ocx.GetChannelName(); if (sc !=""){ sc=sc.substr(0, sc.l
Open service 31.40.9.22:80
2024-06-14 00:13
HTTP/1.1 200 OK Content-type: text/html Server: uc-httpd/1.0.0 Cache-Control: max-age=2592000 Connection: Close Page title: Web Client <!DOCTYPE html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=7" /> <link rel="stylesheet" type="text/css" href="m.css" /> <title>Web Client</title> <!-- m.js --> <script type="text/javascript" language="JavaScript"> if(!(navigator.userAgent.indexOf("MSIE") >= 0 ||navigator.userAgent.indexOf("Trident") >=0)) { if(navigator.userAgent.indexOf("Mac OS X")>0)//mac操作系统 { location.href="Login.htm"; } else { location.href="Findex.htm"; } } </script> <script type="text/javascript">//m.js var ipaddress =document.location.hostname; var hostport=34567; var iLanguage=106; </script> <script type="text/javascript" src="m.jsp"></script> <script type="text/javascript" src="config.js"></script> <!-- 全局变量 --> <script type="text/javascript"> var gExitChannel=new Array(); var gExitSubType=new Array(); var gexiti; var gcid=-1; var g_channelNum=4; var g_oldWinNum = g_channelNum; var g_digitalChannel=0; var gsld; var gslda; var gsldb; var gsldc; var gsldd; var gfmu1=0; var gfmu2=0; var gfmu3=0; var g_bRecord=false; var g_bRealPlay=false; var g_bAudio=false; var gHashCookie = new Hash.Cookie('WebClientCookie',{duration: 30}); var settings = { username:'' } var gca=0; var gcb=0; var gcc=0; var gcd=0; var gAutoPlayAll=false; var gIntoZoom=false; </script> <!-- 颜色滑块 --> <script type="text/javascript"> function sldtopos(sld,step){ sld.knob.setStyle('left', sld.toPosition(step)); } function setcolorsv(f,v){ switch (f) { case 1: gca=v; $('ska').title=v; break; case 2: gcb=v; $('skb').title=v; break; case 3: gcc=v; $('skc').title=v; break; case 4: gcd=v; $('skd').title=v; break; } } function getcolors(){ var colors=""; colors=ocx.GetColor(); var t= new Array(); if (colors !="") { t=colors.split(','); sldtopos(gslda,parseInt(t[0])); sldtopos(gsldb,parseInt(t[1])); sldtopos(gsldc,parseInt(t[2])); sldtopos(gsldd,parseInt(t[3])); setcolorsv(1,parseInt(t[0])); setcolorsv(2,parseInt(t[1])); setcolorsv(3,parseInt(t[2])); setcolorsv(4,parseInt(t[3])); } else//这里有待选中消息的传递 { sldtopos(gslda,parseInt(0)); sldtopos(gsldb,parseInt(0)); sldtopos(gsldc,parseInt(0)); sldtopos(gsldd,parseInt(0)); setcolorsv(1,parseInt(0)); setcolorsv(2,parseInt(0)); setcolorsv(3,parseInt(0)); setcolorsv(4,parseInt(0)); } } function txreset(step){ setcolorsv(1,step); setcolorsv(2,step); setcolorsv(3,step); setcolorsv(4,step); sldtopos(gslda,step); sldtopos(gsldb,step); sldtopos(gsldc,step); sldtopos(gsldd,step); setcolors(); } function setcolors(){ ocx.SetColor(0,gca,gcb,gcc,gcd); } </script> <!-- 设备通道 --> <script type="text/javascript"> function tl(s){ var ret; ret=ocx.Translate(s); return ret; }//moving here for later function function ca(o,ch) { var oc; if ($(o).hasClass('cl1')){ if (ocx.StartRealPlay(ch,0,0)){ oc=$('c'+ch); oc.removeClass(oc.className); oc.addClass('cl2'); } } else{ if (ocx.StopPlayReal(ch)){ oc=$('c'+ch); oc.removeClass(oc.className); oc.addClass('cl1'); } } } function getcl(){ g_digitalChannel=ocx.GetDeviceState(1,0); var t= new Array(); var ts=new Array(); var titles=new Array(); titles[0]=tl('Desktop.LocalRecord'); titles[1]=tl('Desktop.ExtStream'); titles[2]=tl('Desktop.MainStream'); titles[3]=tl('Desktop.StartTalk'); titles[4]=tl('WebTitle.DigitalChannel'); var shtml=""; shtml+="<li id='Talk' ><a title='"+titles[3]+"' id='talking' class='noT' href='javascript:;' onclick='Ontalk()' ></a><span id='logoString' style='margin:0 5px 0 3px;'>NetSurveillance</span></li> " var strsplita=String.fromCharCode(16); var strsplitb=String.fromCharCode(9); var sc; sc=ocx.GetChannelName(); if (sc !=""){ sc=sc.substr(0, sc.l
Open service 31.40.9.22:80
2024-06-11 22:38
HTTP/1.1 200 OK Content-type: text/html Server: uc-httpd/1.0.0 Cache-Control: max-age=2592000 Connection: Close Page title: Web Client <!DOCTYPE html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=7" /> <link rel="stylesheet" type="text/css" href="m.css" /> <title>Web Client</title> <!-- m.js --> <script type="text/javascript" language="JavaScript"> if(!(navigator.userAgent.indexOf("MSIE") >= 0 ||navigator.userAgent.indexOf("Trident") >=0)) { if(navigator.userAgent.indexOf("Mac OS X")>0)//mac操作系统 { location.href="Login.htm"; } else { location.href="Findex.htm"; } } </script> <script type="text/javascript">//m.js var ipaddress =document.location.hostname; var hostport=34567; var iLanguage=106; </script> <script type="text/javascript" src="m.jsp"></script> <script type="text/javascript" src="config.js"></script> <!-- 全局变量 --> <script type="text/javascript"> var gExitChannel=new Array(); var gExitSubType=new Array(); var gexiti; var gcid=-1; var g_channelNum=4; var g_oldWinNum = g_channelNum; var g_digitalChannel=0; var gsld; var gslda; var gsldb; var gsldc; var gsldd; var gfmu1=0; var gfmu2=0; var gfmu3=0; var g_bRecord=false; var g_bRealPlay=false; var g_bAudio=false; var gHashCookie = new Hash.Cookie('WebClientCookie',{duration: 30}); var settings = { username:'' } var gca=0; var gcb=0; var gcc=0; var gcd=0; var gAutoPlayAll=false; var gIntoZoom=false; </script> <!-- 颜色滑块 --> <script type="text/javascript"> function sldtopos(sld,step){ sld.knob.setStyle('left', sld.toPosition(step)); } function setcolorsv(f,v){ switch (f) { case 1: gca=v; $('ska').title=v; break; case 2: gcb=v; $('skb').title=v; break; case 3: gcc=v; $('skc').title=v; break; case 4: gcd=v; $('skd').title=v; break; } } function getcolors(){ var colors=""; colors=ocx.GetColor(); var t= new Array(); if (colors !="") { t=colors.split(','); sldtopos(gslda,parseInt(t[0])); sldtopos(gsldb,parseInt(t[1])); sldtopos(gsldc,parseInt(t[2])); sldtopos(gsldd,parseInt(t[3])); setcolorsv(1,parseInt(t[0])); setcolorsv(2,parseInt(t[1])); setcolorsv(3,parseInt(t[2])); setcolorsv(4,parseInt(t[3])); } else//这里有待选中消息的传递 { sldtopos(gslda,parseInt(0)); sldtopos(gsldb,parseInt(0)); sldtopos(gsldc,parseInt(0)); sldtopos(gsldd,parseInt(0)); setcolorsv(1,parseInt(0)); setcolorsv(2,parseInt(0)); setcolorsv(3,parseInt(0)); setcolorsv(4,parseInt(0)); } } function txreset(step){ setcolorsv(1,step); setcolorsv(2,step); setcolorsv(3,step); setcolorsv(4,step); sldtopos(gslda,step); sldtopos(gsldb,step); sldtopos(gsldc,step); sldtopos(gsldd,step); setcolors(); } function setcolors(){ ocx.SetColor(0,gca,gcb,gcc,gcd); } </script> <!-- 设备通道 --> <script type="text/javascript"> function tl(s){ var ret; ret=ocx.Translate(s); return ret; }//moving here for later function function ca(o,ch) { var oc; if ($(o).hasClass('cl1')){ if (ocx.StartRealPlay(ch,0,0)){ oc=$('c'+ch); oc.removeClass(oc.className); oc.addClass('cl2'); } } else{ if (ocx.StopPlayReal(ch)){ oc=$('c'+ch); oc.removeClass(oc.className); oc.addClass('cl1'); } } } function getcl(){ g_digitalChannel=ocx.GetDeviceState(1,0); var t= new Array(); var ts=new Array(); var titles=new Array(); titles[0]=tl('Desktop.LocalRecord'); titles[1]=tl('Desktop.ExtStream'); titles[2]=tl('Desktop.MainStream'); titles[3]=tl('Desktop.StartTalk'); titles[4]=tl('WebTitle.DigitalChannel'); var shtml=""; shtml+="<li id='Talk' ><a title='"+titles[3]+"' id='talking' class='noT' href='javascript:;' onclick='Ontalk()' ></a><span id='logoString' style='margin:0 5px 0 3px;'>NetSurveillance</span></li> " var strsplita=String.fromCharCode(16); var strsplitb=String.fromCharCode(9); var sc; sc=ocx.GetChannelName(); if (sc !=""){ sc=sc.substr(0, sc.l
Open service 31.40.9.22:80
2024-06-09 22:24
HTTP/1.1 200 OK Content-type: text/html Server: uc-httpd/1.0.0 Cache-Control: max-age=2592000 Connection: Close Page title: Web Client <!DOCTYPE html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=7" /> <link rel="stylesheet" type="text/css" href="m.css" /> <title>Web Client</title> <!-- m.js --> <script type="text/javascript" language="JavaScript"> if(!(navigator.userAgent.indexOf("MSIE") >= 0 ||navigator.userAgent.indexOf("Trident") >=0)) { if(navigator.userAgent.indexOf("Mac OS X")>0)//mac操作系统 { location.href="Login.htm"; } else { location.href="Findex.htm"; } } </script> <script type="text/javascript">//m.js var ipaddress =document.location.hostname; var hostport=34567; var iLanguage=106; </script> <script type="text/javascript" src="m.jsp"></script> <script type="text/javascript" src="config.js"></script> <!-- 全局变量 --> <script type="text/javascript"> var gExitChannel=new Array(); var gExitSubType=new Array(); var gexiti; var gcid=-1; var g_channelNum=4; var g_oldWinNum = g_channelNum; var g_digitalChannel=0; var gsld; var gslda; var gsldb; var gsldc; var gsldd; var gfmu1=0; var gfmu2=0; var gfmu3=0; var g_bRecord=false; var g_bRealPlay=false; var g_bAudio=false; var gHashCookie = new Hash.Cookie('WebClientCookie',{duration: 30}); var settings = { username:'' } var gca=0; var gcb=0; var gcc=0; var gcd=0; var gAutoPlayAll=false; var gIntoZoom=false; </script> <!-- 颜色滑块 --> <script type="text/javascript"> function sldtopos(sld,step){ sld.knob.setStyle('left', sld.toPosition(step)); } function setcolorsv(f,v){ switch (f) { case 1: gca=v; $('ska').title=v; break; case 2: gcb=v; $('skb').title=v; break; case 3: gcc=v; $('skc').title=v; break; case 4: gcd=v; $('skd').title=v; break; } } function getcolors(){ var colors=""; colors=ocx.GetColor(); var t= new Array(); if (colors !="") { t=colors.split(','); sldtopos(gslda,parseInt(t[0])); sldtopos(gsldb,parseInt(t[1])); sldtopos(gsldc,parseInt(t[2])); sldtopos(gsldd,parseInt(t[3])); setcolorsv(1,parseInt(t[0])); setcolorsv(2,parseInt(t[1])); setcolorsv(3,parseInt(t[2])); setcolorsv(4,parseInt(t[3])); } else//这里有待选中消息的传递 { sldtopos(gslda,parseInt(0)); sldtopos(gsldb,parseInt(0)); sldtopos(gsldc,parseInt(0)); sldtopos(gsldd,parseInt(0)); setcolorsv(1,parseInt(0)); setcolorsv(2,parseInt(0)); setcolorsv(3,parseInt(0)); setcolorsv(4,parseInt(0)); } } function txreset(step){ setcolorsv(1,step); setcolorsv(2,step); setcolorsv(3,step); setcolorsv(4,step); sldtopos(gslda,step); sldtopos(gsldb,step); sldtopos(gsldc,step); sldtopos(gsldd,step); setcolors(); } function setcolors(){ ocx.SetColor(0,gca,gcb,gcc,gcd); } </script> <!-- 设备通道 --> <script type="text/javascript"> function tl(s){ var ret; ret=ocx.Translate(s); return ret; }//moving here for later function function ca(o,ch) { var oc; if ($(o).hasClass('cl1')){ if (ocx.StartRealPlay(ch,0,0)){ oc=$('c'+ch); oc.removeClass(oc.className); oc.addClass('cl2'); } } else{ if (ocx.StopPlayReal(ch)){ oc=$('c'+ch); oc.removeClass(oc.className); oc.addClass('cl1'); } } } function getcl(){ g_digitalChannel=ocx.GetDeviceState(1,0); var t= new Array(); var ts=new Array(); var titles=new Array(); titles[0]=tl('Desktop.LocalRecord'); titles[1]=tl('Desktop.ExtStream'); titles[2]=tl('Desktop.MainStream'); titles[3]=tl('Desktop.StartTalk'); titles[4]=tl('WebTitle.DigitalChannel'); var shtml=""; shtml+="<li id='Talk' ><a title='"+titles[3]+"' id='talking' class='noT' href='javascript:;' onclick='Ontalk()' ></a><span id='logoString' style='margin:0 5px 0 3px;'>NetSurveillance</span></li> " var strsplita=String.fromCharCode(16); var strsplitb=String.fromCharCode(9); var sc; sc=ocx.GetChannelName(); if (sc !=""){ sc=sc.substr(0, sc.l
Open service 31.40.9.22:80
2024-06-07 22:28
HTTP/1.1 200 OK Content-type: text/html Server: uc-httpd/1.0.0 Cache-Control: max-age=2592000 Connection: Close Page title: Web Client <!DOCTYPE html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=7" /> <link rel="stylesheet" type="text/css" href="m.css" /> <title>Web Client</title> <!-- m.js --> <script type="text/javascript" language="JavaScript"> if(!(navigator.userAgent.indexOf("MSIE") >= 0 ||navigator.userAgent.indexOf("Trident") >=0)) { if(navigator.userAgent.indexOf("Mac OS X")>0)//mac操作系统 { location.href="Login.htm"; } else { location.href="Findex.htm"; } } </script> <script type="text/javascript">//m.js var ipaddress =document.location.hostname; var hostport=34567; var iLanguage=106; </script> <script type="text/javascript" src="m.jsp"></script> <script type="text/javascript" src="config.js"></script> <!-- 全局变量 --> <script type="text/javascript"> var gExitChannel=new Array(); var gExitSubType=new Array(); var gexiti; var gcid=-1; var g_channelNum=4; var g_oldWinNum = g_channelNum; var g_digitalChannel=0; var gsld; var gslda; var gsldb; var gsldc; var gsldd; var gfmu1=0; var gfmu2=0; var gfmu3=0; var g_bRecord=false; var g_bRealPlay=false; var g_bAudio=false; var gHashCookie = new Hash.Cookie('WebClientCookie',{duration: 30}); var settings = { username:'' } var gca=0; var gcb=0; var gcc=0; var gcd=0; var gAutoPlayAll=false; var gIntoZoom=false; </script> <!-- 颜色滑块 --> <script type="text/javascript"> function sldtopos(sld,step){ sld.knob.setStyle('left', sld.toPosition(step)); } function setcolorsv(f,v){ switch (f) { case 1: gca=v; $('ska').title=v; break; case 2: gcb=v; $('skb').title=v; break; case 3: gcc=v; $('skc').title=v; break; case 4: gcd=v; $('skd').title=v; break; } } function getcolors(){ var colors=""; colors=ocx.GetColor(); var t= new Array(); if (colors !="") { t=colors.split(','); sldtopos(gslda,parseInt(t[0])); sldtopos(gsldb,parseInt(t[1])); sldtopos(gsldc,parseInt(t[2])); sldtopos(gsldd,parseInt(t[3])); setcolorsv(1,parseInt(t[0])); setcolorsv(2,parseInt(t[1])); setcolorsv(3,parseInt(t[2])); setcolorsv(4,parseInt(t[3])); } else//这里有待选中消息的传递 { sldtopos(gslda,parseInt(0)); sldtopos(gsldb,parseInt(0)); sldtopos(gsldc,parseInt(0)); sldtopos(gsldd,parseInt(0)); setcolorsv(1,parseInt(0)); setcolorsv(2,parseInt(0)); setcolorsv(3,parseInt(0)); setcolorsv(4,parseInt(0)); } } function txreset(step){ setcolorsv(1,step); setcolorsv(2,step); setcolorsv(3,step); setcolorsv(4,step); sldtopos(gslda,step); sldtopos(gsldb,step); sldtopos(gsldc,step); sldtopos(gsldd,step); setcolors(); } function setcolors(){ ocx.SetColor(0,gca,gcb,gcc,gcd); } </script> <!-- 设备通道 --> <script type="text/javascript"> function tl(s){ var ret; ret=ocx.Translate(s); return ret; }//moving here for later function function ca(o,ch) { var oc; if ($(o).hasClass('cl1')){ if (ocx.StartRealPlay(ch,0,0)){ oc=$('c'+ch); oc.removeClass(oc.className); oc.addClass('cl2'); } } else{ if (ocx.StopPlayReal(ch)){ oc=$('c'+ch); oc.removeClass(oc.className); oc.addClass('cl1'); } } } function getcl(){ g_digitalChannel=ocx.GetDeviceState(1,0); var t= new Array(); var ts=new Array(); var titles=new Array(); titles[0]=tl('Desktop.LocalRecord'); titles[1]=tl('Desktop.ExtStream'); titles[2]=tl('Desktop.MainStream'); titles[3]=tl('Desktop.StartTalk'); titles[4]=tl('WebTitle.DigitalChannel'); var shtml=""; shtml+="<li id='Talk' ><a title='"+titles[3]+"' id='talking' class='noT' href='javascript:;' onclick='Ontalk()' ></a><span id='logoString' style='margin:0 5px 0 3px;'>NetSurveillance</span></li> " var strsplita=String.fromCharCode(16); var strsplitb=String.fromCharCode(9); var sc; sc=ocx.GetChannelName(); if (sc !=""){ sc=sc.substr(0, sc.l
Open service 31.40.9.22:80
2024-06-05 22:14
HTTP/1.1 200 OK Content-type: text/html Server: uc-httpd/1.0.0 Cache-Control: max-age=2592000 Connection: Close Page title: Web Client <!DOCTYPE html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=7" /> <link rel="stylesheet" type="text/css" href="m.css" /> <title>Web Client</title> <!-- m.js --> <script type="text/javascript" language="JavaScript"> if(!(navigator.userAgent.indexOf("MSIE") >= 0 ||navigator.userAgent.indexOf("Trident") >=0)) { if(navigator.userAgent.indexOf("Mac OS X")>0)//mac操作系统 { location.href="Login.htm"; } else { location.href="Findex.htm"; } } </script> <script type="text/javascript">//m.js var ipaddress =document.location.hostname; var hostport=34567; var iLanguage=106; </script> <script type="text/javascript" src="m.jsp"></script> <script type="text/javascript" src="config.js"></script> <!-- 全局变量 --> <script type="text/javascript"> var gExitChannel=new Array(); var gExitSubType=new Array(); var gexiti; var gcid=-1; var g_channelNum=4; var g_oldWinNum = g_channelNum; var g_digitalChannel=0; var gsld; var gslda; var gsldb; var gsldc; var gsldd; var gfmu1=0; var gfmu2=0; var gfmu3=0; var g_bRecord=false; var g_bRealPlay=false; var g_bAudio=false; var gHashCookie = new Hash.Cookie('WebClientCookie',{duration: 30}); var settings = { username:'' } var gca=0; var gcb=0; var gcc=0; var gcd=0; var gAutoPlayAll=false; var gIntoZoom=false; </script> <!-- 颜色滑块 --> <script type="text/javascript"> function sldtopos(sld,step){ sld.knob.setStyle('left', sld.toPosition(step)); } function setcolorsv(f,v){ switch (f) { case 1: gca=v; $('ska').title=v; break; case 2: gcb=v; $('skb').title=v; break; case 3: gcc=v; $('skc').title=v; break; case 4: gcd=v; $('skd').title=v; break; } } function getcolors(){ var colors=""; colors=ocx.GetColor(); var t= new Array(); if (colors !="") { t=colors.split(','); sldtopos(gslda,parseInt(t[0])); sldtopos(gsldb,parseInt(t[1])); sldtopos(gsldc,parseInt(t[2])); sldtopos(gsldd,parseInt(t[3])); setcolorsv(1,parseInt(t[0])); setcolorsv(2,parseInt(t[1])); setcolorsv(3,parseInt(t[2])); setcolorsv(4,parseInt(t[3])); } else//这里有待选中消息的传递 { sldtopos(gslda,parseInt(0)); sldtopos(gsldb,parseInt(0)); sldtopos(gsldc,parseInt(0)); sldtopos(gsldd,parseInt(0)); setcolorsv(1,parseInt(0)); setcolorsv(2,parseInt(0)); setcolorsv(3,parseInt(0)); setcolorsv(4,parseInt(0)); } } function txreset(step){ setcolorsv(1,step); setcolorsv(2,step); setcolorsv(3,step); setcolorsv(4,step); sldtopos(gslda,step); sldtopos(gsldb,step); sldtopos(gsldc,step); sldtopos(gsldd,step); setcolors(); } function setcolors(){ ocx.SetColor(0,gca,gcb,gcc,gcd); } </script> <!-- 设备通道 --> <script type="text/javascript"> function tl(s){ var ret; ret=ocx.Translate(s); return ret; }//moving here for later function function ca(o,ch) { var oc; if ($(o).hasClass('cl1')){ if (ocx.StartRealPlay(ch,0,0)){ oc=$('c'+ch); oc.removeClass(oc.className); oc.addClass('cl2'); } } else{ if (ocx.StopPlayReal(ch)){ oc=$('c'+ch); oc.removeClass(oc.className); oc.addClass('cl1'); } } } function getcl(){ g_digitalChannel=ocx.GetDeviceState(1,0); var t= new Array(); var ts=new Array(); var titles=new Array(); titles[0]=tl('Desktop.LocalRecord'); titles[1]=tl('Desktop.ExtStream'); titles[2]=tl('Desktop.MainStream'); titles[3]=tl('Desktop.StartTalk'); titles[4]=tl('WebTitle.DigitalChannel'); var shtml=""; shtml+="<li id='Talk' ><a title='"+titles[3]+"' id='talking' class='noT' href='javascript:;' onclick='Ontalk()' ></a><span id='logoString' style='margin:0 5px 0 3px;'>NetSurveillance</span></li> " var strsplita=String.fromCharCode(16); var strsplitb=String.fromCharCode(9); var sc; sc=ocx.GetChannelName(); if (sc !=""){ sc=sc.substr(0, sc.l
Open service 31.40.9.22:80
2024-06-03 22:44
HTTP/1.1 200 OK Content-type: text/html Server: uc-httpd/1.0.0 Cache-Control: max-age=2592000 Connection: Close Page title: Web Client <!DOCTYPE html> <head> <meta http-equiv="content-type" content="text/html;charset=utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=7" /> <link rel="stylesheet" type="text/css" href="m.css" /> <title>Web Client</title> <!-- m.js --> <script type="text/javascript" language="JavaScript"> if(!(navigator.userAgent.indexOf("MSIE") >= 0 ||navigator.userAgent.indexOf("Trident") >=0)) { if(navigator.userAgent.indexOf("Mac OS X")>0)//mac操作系统 { location.href="Login.htm"; } else { location.href="Findex.htm"; } } </script> <script type="text/javascript">//m.js var ipaddress =document.location.hostname; var hostport=34567; var iLanguage=106; </script> <script type="text/javascript" src="m.jsp"></script> <script type="text/javascript" src="config.js"></script> <!-- 全局变量 --> <script type="text/javascript"> var gExitChannel=new Array(); var gExitSubType=new Array(); var gexiti; var gcid=-1; var g_channelNum=4; var g_oldWinNum = g_channelNum; var g_digitalChannel=0; var gsld; var gslda; var gsldb; var gsldc; var gsldd; var gfmu1=0; var gfmu2=0; var gfmu3=0; var g_bRecord=false; var g_bRealPlay=false; var g_bAudio=false; var gHashCookie = new Hash.Cookie('WebClientCookie',{duration: 30}); var settings = { username:'' } var gca=0; var gcb=0; var gcc=0; var gcd=0; var gAutoPlayAll=false; var gIntoZoom=false; </script> <!-- 颜色滑块 --> <script type="text/javascript"> function sldtopos(sld,step){ sld.knob.setStyle('left', sld.toPosition(step)); } function setcolorsv(f,v){ switch (f) { case 1: gca=v; $('ska').title=v; break; case 2: gcb=v; $('skb').title=v; break; case 3: gcc=v; $('skc').title=v; break; case 4: gcd=v; $('skd').title=v; break; } } function getcolors(){ var colors=""; colors=ocx.GetColor(); var t= new Array(); if (colors !="") { t=colors.split(','); sldtopos(gslda,parseInt(t[0])); sldtopos(gsldb,parseInt(t[1])); sldtopos(gsldc,parseInt(t[2])); sldtopos(gsldd,parseInt(t[3])); setcolorsv(1,parseInt(t[0])); setcolorsv(2,parseInt(t[1])); setcolorsv(3,parseInt(t[2])); setcolorsv(4,parseInt(t[3])); } else//这里有待选中消息的传递 { sldtopos(gslda,parseInt(0)); sldtopos(gsldb,parseInt(0)); sldtopos(gsldc,parseInt(0)); sldtopos(gsldd,parseInt(0)); setcolorsv(1,parseInt(0)); setcolorsv(2,parseInt(0)); setcolorsv(3,parseInt(0)); setcolorsv(4,parseInt(0)); } } function txreset(step){ setcolorsv(1,step); setcolorsv(2,step); setcolorsv(3,step); setcolorsv(4,step); sldtopos(gslda,step); sldtopos(gsldb,step); sldtopos(gsldc,step); sldtopos(gsldd,step); setcolors(); } function setcolors(){ ocx.SetColor(0,gca,gcb,gcc,gcd); } </script> <!-- 设备通道 --> <script type="text/javascript"> function tl(s){ var ret; ret=ocx.Translate(s); return ret; }//moving here for later function function ca(o,ch) { var oc; if ($(o).hasClass('cl1')){ if (ocx.StartRealPlay(ch,0,0)){ oc=$('c'+ch); oc.removeClass(oc.className); oc.addClass('cl2'); } } else{ if (ocx.StopPlayReal(ch)){ oc=$('c'+ch); oc.removeClass(oc.className); oc.addClass('cl1'); } } } function getcl(){ g_digitalChannel=ocx.GetDeviceState(1,0); var t= new Array(); var ts=new Array(); var titles=new Array(); titles[0]=tl('Desktop.LocalRecord'); titles[1]=tl('Desktop.ExtStream'); titles[2]=tl('Desktop.MainStream'); titles[3]=tl('Desktop.StartTalk'); titles[4]=tl('WebTitle.DigitalChannel'); var shtml=""; shtml+="<li id='Talk' ><a title='"+titles[3]+"' id='talking' class='noT' href='javascript:;' onclick='Ontalk()' ></a><span id='logoString' style='margin:0 5px 0 3px;'>NetSurveillance</span></li> " var strsplita=String.fromCharCode(16); var strsplitb=String.fromCharCode(9); var sc; sc=ocx.GetChannelName(); if (sc !=""){ sc=sc.substr(0, sc.l
Open service 31.40.9.22:8080
2024-06-02 20:01
HTTP/1.1 200 OK Connection: close Content-Length: 7061 Content-Type: text/html Date: Sun, 02 Jun 2024 20:02:56 GMT Expires: 0 Page title: RouterOS router configuration page <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link rel="icon" href="/favicon.png"/> <title>RouterOS router configuration page</title> <style type="text/css"> body { font-family: Verdana, Geneva, sans-serif; font-size: 11px; } img {border: none} img:hover {opacity: 0.8;} h1 { font-size: 1.7em; display: inline; margin-bottom: 10px; } fieldset { margin-top: 20px; background: #fff; padding: 20px; border: 1px solid #c1c1c1; } #container { width: 70%; margin: 10% auto; } #box { background-color: #fff; -moz-border-radius: 7px; -webkit-border-radius: 7px; border: 1px solid #c1c1c1; padding: 30px; filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f3f3f3'); /* for IE */ background: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#f3f3f3)); /* for webkit browsers */ background: -moz-linear-gradient(top, #fff, #f3f3f3); /* for firefox 3.6+ */ } .floater {float: left; margin-right: 10px;} .floater label {display: block; text-align: center;} #login { margin: 2em 0 4em 0; } #login h2 { font-weight: normal; font-size: 14px; margin: 0 0 0.5em 1em; } #login td { padding: 0 4px 0 0; } #login td.label { text-align: right; } #login td.toolbar { padding: 0 0 0 1em; vertical-align: top; } #login ul.toolbar { margin: 0; } #login input { margin: 2px; padding: 2px; border: 1px solid #888; box-shadow: 1px 1px 3px rgba(0,0,0,0.3); -webkit-box-shadow: 1px 1px 3px rgba(0,0,0,0.3); -moz-box-shadow: 1px 1px 3px rgba(0,0,0,0.3); } #error { display:none; color:red; padding: 1em 0 0 0; } ul.toolbar { font-size: 11px; text-align: left; list-style-type: none; padding: 0; margin: 2px 0 4px 2px; } ul.toolbar li { float: left; vertical-align: middle; } ul.toolbar a { float: none; display: block; margin: 2px 4px 2px 0; padding: 5px; background: #ddd; border: 1px solid #888; border-radius: 3px; -moz-border-radius: 3px; box-shadow: 1px 1px 2px rgba(255,255,255,0.8) inset, 0 10px 10px -5px rgba(255,255,255,0.5) inset, /* top gradient */ 1px 1px 2px rgba(0,0,0,0.2); /* shadow */ -webkit-box-shadow: 1px 1px 2px rgba(255,255,255,0.8) inset, 0 10px 10px -5px rgba(255,255,255,0.5) inset, 1px 1px 2px rgba(0,0,0,0.2); -moz-box-shadow: 1px 1px 2px rgba(255,255,255,0.8) inset, 0 10px 10px -5px rgba(255,255,255,0.5) inset, 1px 1px 2px rgba(0,0,0,0.2); color: #000; text-decoration: none; text-align: center; white-space: nowrap; cursor: inherit; min-width: 4em; -webkit-transition: background 0.2s linear, box-shadow 0.2s ease-out; -moz-transition: background 0.2s linear, box-shadow 0.2s ease-out; } ul.toolbar a:hover { background: #eee; } ul.toolbar a:active { background: #aaa; box-shadow: 1px 1px 2px #999 inset; -webkit-box-shadow: 1px 1px 2px #999 inset; -moz-box-shadow: 1px 1px 2px #999 inset; } </style> <script> function get(id) { return document.getElementById(id); } function trim(str) { return str.replace(/^\s+|\s+$/g, ''); } function login(user, pwd, autologin) { var expires = new Date(); expires.setTime(expires.getTime() + (30 * 24 * 60 * 60 * 1000)); document.cookie = 'username=' + user + '; expires=' + expires.toGMTString() + '; path=/'; window.name = (autologin ? 'autologin=' : 'login=') + user + '|' + pwd; window.location.replace('/webfig/' + window.location.hash); } function dologin() { login(get('name').value, get('password').value); } function loaded() { var p = window.name.split('='); if (p[0] == 'error' && p[1]) { var err = get('error'); err.appendChild(document.crea