URL: https://admin.light.secure.vote/
Submission: On September 26 via automatic, source certstream-suspicious

Summary

This website contacted 3 IPs in 1 countries across 3 domains to perform 6 HTTP transactions. The main IP is 2a03:b0c0:3:e0::1b:1, located in Frankfurt am Main, Germany and belongs to DIGITALOCEAN-ASN, US. The main domain is admin.light.secure.vote.
TLS certificate: Issued by Let's Encrypt Authority X3 on September 26th 2020. Valid for: 3 months.
This is the only time admin.light.secure.vote was scanned on urlscan.io!

urlscan.io Verdict: No classification

Domain & IP information

IP Address AS Autonomous System
4 2a03:b0c0:3:e... 14061 (DIGITALOC...)
1 2a00:1450:400... 15169 (GOOGLE)
1 2a00:1450:400... 15169 (GOOGLE)
6 3
Domain Requested by
4 admin.light.secure.vote admin.light.secure.vote
1 fonts.gstatic.com fonts.googleapis.com
1 fonts.googleapis.com admin.light.secure.vote
6 3

This site contains no links.

Subject Issuer Validity Valid
admin.light.secure.vote
Let's Encrypt Authority X3
2020-09-26 -
2020-12-25
3 months crt.sh
upload.video.google.com
GTS CA 1O1
2020-09-03 -
2020-11-26
3 months crt.sh
*.gstatic.com
GTS CA 1O1
2020-09-03 -
2020-11-26
3 months crt.sh

This page contains 1 frames:

Primary Page: https://admin.light.secure.vote/
Frame ID: 536E5637C75DAD64E8CB346C351F9DC1
Requests: 6 HTTP requests in this frame

Screenshot


Detected technologies

Overall confidence: 100%
Detected patterns
  • headers server /^Netlify/i

Overall confidence: 100%
Detected patterns
  • html /<link[^>]* href=[^>]+fonts\.(?:googleapis|google)\.com/i

Page Statistics

6
Requests

100 %
HTTPS

100 %
IPv6

3
Domains

3
Subdomains

3
IPs

1
Countries

190 kB
Transfer

769 kB
Size

0
Cookies

Redirected requests

There were HTTP redirect chains for the following requests:

6 HTTP transactions

Resource
Path
Size
x-fer
Type
MIME-Type
Primary Request /
admin.light.secure.vote/
584 B
793 B
Document
General
Full URL
https://admin.light.secure.vote/
Protocol
H2
Security
TLS 1.3, , AES_256_GCM
Server
2a03:b0c0:3:e0::1b:1 Frankfurt am Main, Germany, ASN14061 (DIGITALOCEAN-ASN, US),
Reverse DNS
Software
Netlify /
Resource Hash
daec2c603faf28a6d31fbe7a842d376e8784221a2479cfa3b39f9bf76633bd55
Security Headers
Name Value
Strict-Transport-Security max-age=31536000

Request headers

:method
GET
:authority
admin.light.secure.vote
:scheme
https
:path
/
pragma
no-cache
cache-control
no-cache
upgrade-insecure-requests
1
user-agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36
accept
text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
sec-fetch-site
none
sec-fetch-mode
navigate
sec-fetch-user
?1
sec-fetch-dest
document
accept-encoding
gzip, deflate, br
accept-language
en-US
Upgrade-Insecure-Requests
1
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36

Response headers

status
200
cache-control
public, max-age=0, must-revalidate
content-length
584
content-type
text/html; charset=UTF-8
date
Sat, 26 Sep 2020 11:01:01 GMT
etag
"730d1c8e6fafc24884c89ac3ff012587-ssl"
strict-transport-security
max-age=31536000
age
0
server
Netlify
x-nf-request-id
23c7cd17-bc7b-429c-9caf-c2150b2087c7-49414927
css
fonts.googleapis.com/
2 KB
562 B
Stylesheet
General
Full URL
https://fonts.googleapis.com/css?family=Lato:300,400,700
Requested by
Host: admin.light.secure.vote
URL: https://admin.light.secure.vote/
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
2a00:1450:4001:802::200a Frankfurt am Main, Germany, ASN15169 (GOOGLE, US),
Reverse DNS
Software
ESF /
Resource Hash
1a2c13de08efab2836f482fe649c9853eafcf3af4363edb804d44fe38ecc8f3f
Security Headers
Name Value
Strict-Transport-Security max-age=31536000
X-Content-Type-Options nosniff
X-Frame-Options SAMEORIGIN
X-Xss-Protection 0

Request headers

Referer
https://admin.light.secure.vote/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36

Response headers

strict-transport-security
max-age=31536000
content-encoding
gzip
x-content-type-options
nosniff
status
200
alt-svc
h3-Q050=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-27=":443"; ma=2592000,h3-T051=":443"; ma=2592000,h3-T050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
x-xss-protection
0
last-modified
Sat, 26 Sep 2020 10:15:56 GMT
server
ESF
date
Sat, 26 Sep 2020 11:01:01 GMT
x-frame-options
SAMEORIGIN
content-type
text/css; charset=utf-8
access-control-allow-origin
*
cache-control
private, max-age=86400, stale-while-revalidate=604800
timing-allow-origin
*
link
<https://fonts.gstatic.com>; rel=preconnect; crossorigin
expires
Sat, 26 Sep 2020 11:01:01 GMT
admin-ui.css
admin.light.secure.vote/css/
46 B
174 B
Stylesheet
General
Full URL
https://admin.light.secure.vote/css/admin-ui.css
Requested by
Host: admin.light.secure.vote
URL: https://admin.light.secure.vote/
Protocol
H2
Security
TLS 1.3, , AES_256_GCM
Server
2a03:b0c0:3:e0::1b:1 Frankfurt am Main, Germany, ASN14061 (DIGITALOCEAN-ASN, US),
Reverse DNS
Software
Netlify /
Resource Hash
11b0d53444fdd1b971195e41501267f62fd1881c6b8851bbe18894d2b8bcefe9
Security Headers
Name Value
Strict-Transport-Security max-age=31536000

Request headers

Referer
https://admin.light.secure.vote/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36

Response headers

x-nf-request-id
23c7cd17-bc7b-429c-9caf-c2150b2087c7-49414968
date
Sat, 26 Sep 2020 11:01:01 GMT
server
Netlify
age
0
etag
"4fd5d19b12d6f3ff0e4d9596680448af-ssl"
strict-transport-security
max-age=31536000
content-type
text/css; charset=UTF-8
status
200
cache-control
public, max-age=0, must-revalidate
accept-ranges
bytes
content-length
46
decimal.js
admin.light.secure.vote/js/vendor/
126 KB
29 KB
Script
General
Full URL
https://admin.light.secure.vote/js/vendor/decimal.js
Requested by
Host: admin.light.secure.vote
URL: https://admin.light.secure.vote/
Protocol
H2
Security
TLS 1.3, , AES_256_GCM
Server
2a03:b0c0:3:e0::1b:1 Frankfurt am Main, Germany, ASN14061 (DIGITALOCEAN-ASN, US),
Reverse DNS
Software
Netlify /
Resource Hash
ea7bdf25e15867826565c306179578923b1feea5c495b2aba4fb38d0e9b055fd
Security Headers
Name Value
Strict-Transport-Security max-age=31536000

Request headers

Referer
https://admin.light.secure.vote/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36

Response headers

x-nf-request-id
23c7cd17-bc7b-429c-9caf-c2150b2087c7-49414969
date
Sat, 26 Sep 2020 11:01:01 GMT
content-encoding
br
server
Netlify
age
0
etag
"318f55c69988f0d52696311799049bae-ssl-df"
vary
Accept-Encoding
content-type
application/javascript
status
200
cache-control
public, max-age=0, must-revalidate
strict-transport-security
max-age=31536000
accept-ranges
bytes
admin-15ba8ebc3e0fbe5e9267.js
admin.light.secure.vote/
627 KB
146 KB
Script
General
Full URL
https://admin.light.secure.vote/admin-15ba8ebc3e0fbe5e9267.js
Requested by
Host: admin.light.secure.vote
URL: https://admin.light.secure.vote/
Protocol
H2
Security
TLS 1.3, , AES_256_GCM
Server
2a03:b0c0:3:e0::1b:1 Frankfurt am Main, Germany, ASN14061 (DIGITALOCEAN-ASN, US),
Reverse DNS
Software
Netlify /
Resource Hash
049bdf3212eda507f926973069b2478cd45cb456e0a93f58914b8a75d901f3d6
Security Headers
Name Value
Strict-Transport-Security max-age=31536000

Request headers

Referer
https://admin.light.secure.vote/
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36

Response headers

x-nf-request-id
23c7cd17-bc7b-429c-9caf-c2150b2087c7-49414970
date
Sat, 26 Sep 2020 11:01:01 GMT
content-encoding
br
server
Netlify
age
0
etag
"295a8beeb5f0a2426531edaff8bd8b5f-ssl-df"
vary
Accept-Encoding
content-type
application/javascript
status
200
cache-control
public, max-age=0, must-revalidate
strict-transport-security
max-age=31536000
accept-ranges
bytes
S6uyw4BMUTPHjx4wXiWtFCc.woff2
fonts.gstatic.com/s/lato/v17/
14 KB
14 KB
Font
General
Full URL
https://fonts.gstatic.com/s/lato/v17/S6uyw4BMUTPHjx4wXiWtFCc.woff2
Requested by
Host: fonts.googleapis.com
URL: https://fonts.googleapis.com/css?family=Lato:300,400,700
Protocol
H2
Security
TLS 1.3, , AES_128_GCM
Server
2a00:1450:4001:800::2003 Frankfurt am Main, Germany, ASN15169 (GOOGLE, US),
Reverse DNS
Software
sffe /
Resource Hash
036d841b132c14046e26d8f2da1bc634c6ad34885ed1295660694a91c98933a6
Security Headers
Name Value
X-Content-Type-Options nosniff
X-Xss-Protection 0

Request headers

Origin
https://admin.light.secure.vote
Referer
https://fonts.googleapis.com/css?family=Lato:300,400,700
User-Agent
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36

Response headers

date
Tue, 22 Sep 2020 18:22:26 GMT
x-content-type-options
nosniff
last-modified
Tue, 15 Sep 2020 18:12:59 GMT
server
sffe
age
319116
status
200
content-type
font/woff2
access-control-allow-origin
*
cache-control
public, max-age=31536000
accept-ranges
bytes
timing-allow-origin
*
alt-svc
h3-Q050=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-27=":443"; ma=2592000,h3-T051=":443"; ma=2592000,h3-T050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
content-length
14044
x-xss-protection
0
expires
Wed, 22 Sep 2021 18:22:26 GMT

Verdicts & Comments Add Verdict or Comment

3 JavaScript Global Variables

These are the non-standard "global" variables defined on the window object. These can be helpful in identifying possible client-side frameworks and code.

object| trustedTypes function| Decimal function| Web3

0 Cookies

5 Console Messages

Source Level URL
Text
console-api log URL: https://admin.light.secure.vote/admin-15ba8ebc3e0fbe5e9267.js(Line 1)
Message:
(JSON stringified) Dev env variable: "false"
console-api log URL: https://admin.light.secure.vote/admin-15ba8ebc3e0fbe5e9267.js(Line 1)
Message:
[object Object]
console-api log URL: https://admin.light.secure.vote/admin-15ba8ebc3e0fbe5e9267.js(Line 1)
Message:
[object Object]
console-api log URL: https://admin.light.secure.vote/admin-15ba8ebc3e0fbe5e9267.js(Line 1)
Message:
Environment variables are: [object Object]
console-api log URL: https://admin.light.secure.vote/admin-15ba8ebc3e0fbe5e9267.js(Line 1)
Message:
(t,{mmDetected:e,mmWeb3:r},n,{AuditWeb:i})=>{e&&(window.ethereum&&window.ethereum.enable&&window.ethereum.enable(),n.ports.gotMetamaskImpl.send(!0));const w=l(n),T=s(n);n.ports.setTokenDelegationImpl.subscribe(w(({delegationABI:e,contractAddr:r,delegateAddr:o,tokenContract:c})=>{const i=JSON.parse(e),a=t.eth.contract(i).at(r);console.debug(`Getting data for setTokenDelegation(${c}, ${o})`);const u=a.setTokenDelegation.getData(c,o);n.ports.gotDelegatePayloadImpl.send(u)})),n.ports.setGlobalDelegationImpl.subscribe(w(({delegationABI:e,contractAddr:r,delegateAddr:o})=>{const c=JSON.parse(e),i=t.eth.contract(c).at(r).setGlobalDelegation.getData(o);n.ports.gotDelegatePayloadImpl.send(i)}));const x=t.eth.contract(c.a);n.ports.getDemocHashes.subscribe(w(({indexABI:e,indexAddr:r,ballotBoxABI:o,democHash:c})=>{const i=JSON.parse(e),a=JSON.parse(o),u=t.eth.contract(i).at(r);u.nBallots(c,(e,r)=>{const o=r.toNumber();console.debug("getDemocHashes got",o,"total ballots"),n.ports.democNBallots.send({democHash:c,n:o}),d(e=>{u.getNthBallot(c,e,S(r=>{console.debug("getNthBallot: ",r);const[o,i,u,s]=r,l={democHash:c,i:e,specHash:o,extraData:i,votingContract:u,startTs:s.toNumber()};console.debug("nthBallot: ",e,l),n.ports.gotBallotInfo.send(l),console.debug("Getting starting block"),t.eth.contract(a).at(u).startingBlockAround(S(t=>{const e=t.toNumber();console.debug(`(${u}).startingBlockAround:`,e),n.ports.ballotInfoExtra.send({bHash:o,startingBlockEst:e})}))}))},h(0,o))})})),n.ports.getErc20Abrv.subscribe(w(({bHash:e,erc20Addr:r})=>{const o=t.eth.contract(c.a).at(r),i=t=>n.ports.gotErc20Abrv.send({bHash:e,erc20Addr:r,abrv:t});y(o.symbol)().then(t=>{i(t)}).catch(t=>{i("ERC20"),T("Unable to get ERC20 Abbreviation for "+r+". Error returned: "+JSON.stringify(t).toString())})})),n.ports.getTxInfoContractWrite.subscribe(w(e=>{const{to:r,abi:o,method:c,args:i}=e;console.debug("getTxInfoContractWrite got:",e);const a=t.eth.contract(JSON.parse(o)).at(r)[c].getData(...i);console.debug("getTxInfo got data",a);const u=JSON.stringify({to:r,data:a},null,4);console.debug("Sending to gotTxInfo",u),n.ports.gotTxInfo.send(u)}));const k=w(t=>{const e=t.toString(10);console.debug("implSendErc20Balance got:",e),n.ports.implErc20Balance.send(e)}),S=t=>(e,r)=>{e?(console.warn("handleErrOr got err:",e),T(e)):t(r)};n.ports.initWeb3WProvider.subscribe(w(e=>{t.setProvider(new o.a.providers.HttpProvider(e)),n.ports.gotWeb3.send(t),console.debug("Web3 provider set to:",t.currentProvider)})),n.ports.getErc20Balance.subscribe(w(e=>{let{contractAddress:r,userAddress:n,chainIndex:o,delegationABI:c,delegationAddr:i}=e;n=n.toLowerCase();const a=parseInt(o)||o||"latest";console.debug("getErc20Balance got params",e);const s=x.at(r),l=t.eth.contract(JSON.parse(c)).at(i);let d=new u.BigNumber(0);const h=t=>(d=d.plus(t),t),m=y(s.balanceOf),w=y(l.resolveDelegation),T=([t,e])=>w(t,e).then(([e,r,o,c,i,s])=>b(c,n)&&!b(i,n)?m(t,a):new u.BigNumber(0)).then(h).then(v(`\nFound balance for ${t} delegating ${n} of`,t=>t.toString(10))).catch(t=>{console.warn(`Err in resolveDelegationsPrm: ${t.message}`),console.warn(t)});g.invoke([()=>y(l.findPossibleDelegatorsOf)(n).then(([t,e])=>{console.debug(`Processing delegations of ${n}: voters(${t})`);const o=f(t,e),c=p(_(([t,e])=>b(e,r),o));return g.map(c,T)}),()=>m(n,a).then(h).then(v("Found user balance of: ",t=>t.toString(10)))]).then(()=>k(d)).then(()=>console.debug(`Sent balance total: ${d.toString(10)}`))})),n.ports.constructDataParam.subscribe(w(e=>{e.abi=JSON.parse(e.abi);const{ballot:r,useEnc:o,voterPubkey:c,votingContractAddr:i,abi:a}=e;console.debug("constructDataParam got params:",e);const u=t.eth.contract(a).at(i);let s;s=o?u.submitBallotWithPk.getData("0x"+r,"0x"+c):u.submitBallotNoPk.getData("0x"+r),n.ports.implDataParam.send(s),console.debug("constructDataParam sent: ",s)})),n.ports.getEncryptionPublicKey.subscribe(w(t=>{SwmVotingContract.at(t).getEncPubkey(S(n.ports.gotEncPubkey.send))})),n.ports.performContractRead.subscribe(w(({abi:e,addr:r,method:o,args:c,carry:i})=>{i.hops+=1,console.debug(`Reading ${r}.${o}(${c})`);const a=t.eth.contract(JSON.parse(e)).at(r);y(a[o])(...c).then(t=>{const e=(t=>{const e=Array.isArray(t)?t:[t];return d(t=>!m(t)&&(m(t.s)||m(t.e)||m(t.c))?t:!m(t)&&t.toString?t.toString(10):t,e)})(t);console.debug(`Read ${r}.${o}(${c}) w/ response ${e}`),n.ports.contractReadResponse.send({success:!0,errMsg:"",method:o,resp:e,addr:r,carry:i})}).catch(t=>{console.warn(`Error reading ${r}.${o}(${c}) => ${t.message}`),n.ports.contractReadResponse.send({success:!1,errMsg:t.message,method:o,resp:null,addr:r,carry:i})})})),n.ports.performContractWriteMM.subscribe(w(({abi:t,addr:e,method:n,args:o})=>{console.debug("mm contract write:",{abi:t,addr:e,method:n,args:o});const c=r.eth.contract(JSON.parse(t)).at(e)[n].getData(...o);B({to:e,value:0,data:c})})),n.ports.checkTxid.subscribe(w(({txid:e,abi:r})=>{console.debug(`Checking TXID ${e}`),y(t.eth.getTransaction)(e).then(r=>(console.debug(`Found tx ${e}`),new Promise((n,o)=>{t.eth.getTransactionReceipt(e,((t,e,r=[])=>(n,o)=>{console.debug("promiseCb got:",{err:n,val:o,extra:r}),n?e(n):t([o,...r])})(n,o,[r]))}))).then(([t,e])=>{let o;if(console.debug("checkTxid got tx and txR of:",e,t),null===t||null===e)o={data:"",confirmed:!1,gas:0,logMsg:""};else{let n="";try{a.a.addABI(JSON.parse(r));const e=a.a.decodeLogs(t.logs);console.debug("decoded logs:",e),n=e[0].events[0].value}catch(t){console.debug("checkTxid decoding error broke with: ",t.toString())}o={data:e.input,confirmed:null!==e.blockNumber,gas:t.gasUsed||0,logMsg:n}}n.ports.gotTxidCheckStatus.send(o)}).catch(t=>{T("CheckTXID: "+t.message)})}));let A=0;n.ports.getBallotResults.subscribe(w(t=>{A++,console.debug("Calling AuditWeb session",A,"with:",t);try{i.main(t)((t=>e=>{t===A?(console.debug(e),n.ports.gotAuditMsgImpl.send(e)):console.debug("Got out of date message for audit session:",t,". Message:",e)})(A))()}catch(t){console.error("AuditWeb.main threw error: ",t)}}));n.ports.getMMAddress.subscribe(()=>{if(e){const t=r.eth.accounts;t.length>0?n.ports.gotMMAddress.send(t[0]):n.ports.gotMMAddress.send("")}});const B=t=>{if(console.debug("Sending tx to MetaMask:",t),!e)return T("Cannot send transaction: MetaMask was not detected.");y(r.eth.getAccounts)().then(e=>{if(e===[])throw Error("MetaMask is locked!");console.debug("MetaMask returned accounts: ",e),delete t.gas}).then(()=>{r.eth.sendTransaction(t,(t,e)=>{if(t){console.error("MetaMask error: ",t);const e=t.toString();e.search("validateSender")>0&&e.search("getAccounts")?T("Metamask: Account not found."):T("Unknown Metamask Error: "+t.message)}else console.debug("MetaMask (send) returned: ",t,e),n.ports.metamaskTxidImpl.send(e)})}).catch(t=>T("MetaMask error: "+t.toString()))};n.ports.castMetaMaskVoteImpl.subscribe(w(B))}

Security Headers

This page lists any security headers set by the main page. If you want to understand what these mean and how to use them, head on over to this page

Header Value
Strict-Transport-Security max-age=31536000