You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
329 lines
9.5 KiB
HTML
329 lines
9.5 KiB
HTML
{{define "fields"}}
|
|
{{range .Fields}}<td><a href="/?search={{.}}">{{.}}</a></td>{{end}}<td><a href="/?search={{index .Fields 0}}" title="{{.Links}} Relationships Share an Identifier connection with this Identifier">{{.Links}}</a></td>
|
|
{{end}}
|
|
|
|
{{define "table"}}
|
|
<br/>
|
|
<div id="{{.Title}}" class="row">
|
|
<div class="col-lg-12">
|
|
<div class="panel panel-default">
|
|
<div class="panel-heading">{{.AltTitle}} linked to {{.SearchTerm}} ({{len .Rows}})</div>
|
|
|
|
|
|
|
|
|
|
{{ $length := len .RollupCounts }} {{ if ne $length 0 }}
|
|
<div class="panel-body text-center">
|
|
<canvas id="myChart{{.Title}}" style="max-width:300px;max-height:300px;margin:auto;" width="300px" height="300px"></canvas>
|
|
|
|
<script>
|
|
var ctx = document.getElementById("myChart{{.Title}}");
|
|
var myChart = new Chart(ctx, {
|
|
type: 'bar',
|
|
data: {
|
|
|
|
labels: [
|
|
{{ range $key, $value := .RollupCounts }}
|
|
"{{$key}}",
|
|
{{end}}
|
|
],
|
|
datasets: [{
|
|
data: [
|
|
{{ range $key, $value := .RollupCounts }}
|
|
{{$value}},
|
|
{{end}}
|
|
],
|
|
borderWidth: 1
|
|
}]
|
|
},
|
|
options: {
|
|
scales: {
|
|
yAxes: [{
|
|
ticks: {
|
|
beginAtZero:true
|
|
}
|
|
}]
|
|
},
|
|
title: {
|
|
text: "Breakdown of {{.Title}}s for {{.SearchTerm}}",
|
|
display:true
|
|
},
|
|
legend :{
|
|
display:false
|
|
},
|
|
}
|
|
});
|
|
</script>
|
|
|
|
{{ range $key, $value := .RollupCounts }}
|
|
{{if ne $key ""}}
|
|
|
|
<button class="btn btn-primary" style="margin: 5px;" type="button">
|
|
{{$key}} <span class="badge">{{$value}}</span>
|
|
</button>
|
|
{{end}}
|
|
{{end}}
|
|
</div>
|
|
{{end}}
|
|
|
|
<!-- Table -->
|
|
<table class="table table-bordered table-striped">
|
|
|
|
<tr>
|
|
<th>Tag</th>
|
|
{{range .Heading}}
|
|
<th>{{.}}</th>
|
|
{{end}}
|
|
<th>Other Links</th>
|
|
</tr>
|
|
|
|
{{range .Rows}}
|
|
|
|
<tr><td><span class="label label-default"><a href="/?search={{.Tag}}">{{.Tag}}</a></span></td>{{template "fields" .}}</tr>
|
|
{{end}}
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<br/>
|
|
{{end}}
|
|
|
|
|
|
<!-- ############ SUMMARY ################# -->
|
|
{{define "summary"}}
|
|
|
|
|
|
|
|
|
|
<table class="table table-bordered table-striped">
|
|
|
|
{{range .Fields}}
|
|
<tr><th><a href="#{{.Key}}">{{.AltTitle}}</th>
|
|
<td>
|
|
<div class="progress">
|
|
<div class="progress-bar progress-bar-striped" style="width: {{.Total}}%">
|
|
{{.Value}}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</td></tr>
|
|
{{end}}
|
|
</table>
|
|
{{end}}
|
|
|
|
<!-- ############ Main Page ################# -->
|
|
<!DOCTYPE html>
|
|
<html lang="en"><head>
|
|
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
|
|
<meta charset="utf-8">
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<meta name="description" content="">
|
|
<meta name="author" content="">
|
|
<link rel="icon" href="/images/favicon.ico">
|
|
|
|
<script src="/scripts/chart.bundle.js"></script>
|
|
|
|
|
|
<title>OnionScan Correlations Lab</title>
|
|
|
|
<link href="/style/bootstrap.css" rel="stylesheet">
|
|
|
|
<style>
|
|
@font-face {
|
|
font-family: 'Roboto Slab';
|
|
font-style: normal;
|
|
font-weight: 400;
|
|
src: local('Roboto Slab Regular'), local('RobotoSlab-Regular'), url(/fonts/RobotoSlab-Regular.woff) format('woff');
|
|
}
|
|
@font-face {
|
|
font-family: 'Roboto Slab';
|
|
font-style: normal;
|
|
font-weight: 700;
|
|
src: local('Roboto Slab Bold'), local('RobotoSlab-Bold'), url(/fonts/RobotoSlab-Bold.woff) format('woff');
|
|
}
|
|
|
|
body{
|
|
font-family: 'Roboto Slab';
|
|
}
|
|
.label a {
|
|
color:#fff;
|
|
}
|
|
|
|
.btn {
|
|
margin-bottom:5px;
|
|
}
|
|
|
|
|
|
</style>
|
|
|
|
</head>
|
|
|
|
<body role="document">
|
|
|
|
|
|
<nav class="navbar navbar-default navbar-fixed-top">
|
|
<div class="container">
|
|
<div class="navbar-header">
|
|
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
|
|
<span class="sr-only">Toggle navigation</span>
|
|
<span class="icon-bar"></span>
|
|
<span class="icon-bar"></span>
|
|
<span class="icon-bar"></span>
|
|
</button>
|
|
<a class="navbar-brand" href="/"><img style="margin-top: -16px;" width="75px" height="75px" src="/images/logo.png"/></a>
|
|
</div>
|
|
<div id="navbar" class="navbar-collapse collapse">
|
|
<ul class="nav navbar-nav">
|
|
<li><a href="/" style="color:#fff;">Summary</a></li>
|
|
<li><a href="/saved" style="color:#fff;">Saved Searches</a></li>
|
|
</ul>
|
|
</div><!--/.nav-collapse -->
|
|
</div>
|
|
</nav>
|
|
<br/><br/> <br/><br/>
|
|
<div class="container theme-showcase" role="main">
|
|
|
|
<form action="/">
|
|
<div class="row">
|
|
<div class="col-lg-12">
|
|
<div class="input-group">
|
|
<input name="search" type="text" class="form-control" placeholder="{{.SearchTerm}}" value="{{.SearchTerm}}"/>
|
|
<span class="input-group-btn">
|
|
<input class="btn btn-default" type="submit" value="Search!">
|
|
</span>
|
|
</div><!-- /input-group -->
|
|
</div><!-- /.col-lg-6 -->
|
|
</form>
|
|
</div>
|
|
|
|
<br/>
|
|
|
|
{{if ne .Error ""}}
|
|
<div class="alert alert-danger" role="alert">{{.Error}}</div>
|
|
{{end}}
|
|
|
|
{{if ne .Success ""}}
|
|
<div class="alert alert-success" role="alert">{{.Success}}</div>
|
|
{{end}}
|
|
|
|
|
|
{{if ne .SearchTerm ""}}
|
|
{{ $length := len .Tables }} {{ if ne $length 0 }}
|
|
<div class="row">
|
|
<div class="col-lg-3 text-center">
|
|
|
|
<h2>Options</h2>
|
|
<form action="/save" method="post">
|
|
<input type="hidden" name="search" value="{{.SearchTerm}}"/>
|
|
<input type="hidden" name="token" value="{{.Token}}"/>
|
|
<span class="input-group-btn">
|
|
<input class="btn btn-default" type="submit" value="Save Search">
|
|
</span>
|
|
</form>
|
|
|
|
{{ $lentags := len .UserTags }}
|
|
{{if ne 0 $lentags}}
|
|
<h2>Linked Tags</h2>
|
|
{{ $search := .SearchTerm }}
|
|
{{ $token := .Token }}
|
|
{{ range .UserTags }}
|
|
<form action="/delete-tag" method="post">
|
|
<input type="hidden" name="search" value="{{$search}}"/>
|
|
<input type="hidden" name="tag" value="{{.}}"/>
|
|
<input type="hidden" name="token" value="{{$token}}"/>
|
|
<div class="btn-group">
|
|
<button class="btn btn-default" type="button"><a href="/?search={{.}}">{{.}}</a></button>
|
|
{{if ne . $search}}
|
|
<button class="btn btn-default" type="submit"><img src="/images/remove.png" width="16px" height="16px" title="remove tag"/></button>
|
|
{{end}}
|
|
</div>
|
|
</form>
|
|
{{end}}
|
|
{{end}}
|
|
|
|
|
|
<h3>Tag Search Term</h3>
|
|
|
|
<form action="/tag" method="post">
|
|
<div class="input-group">
|
|
<input type="text" name="tag" class="form-control" placeholder="Enter Tag..."/>
|
|
<input type="hidden" name="search"value="{{.SearchTerm}}"/>
|
|
<input type="hidden" name="token" value="{{.Token}}"/>
|
|
<span class="input-group-btn">
|
|
<input class="btn btn-default" type="submit" value="Tag!">
|
|
</span>
|
|
</div>
|
|
</form>
|
|
|
|
|
|
|
|
</div>
|
|
<div class="col-lg-9">
|
|
|
|
|
|
<div class="panel panel-default">
|
|
<div class="panel-heading">Summary for {{.SearchTerm}} {{if ne "" .Summary.Title}}({{.Summary.Title}}){{end}}
|
|
|
|
{{range .Tags}}
|
|
<span class="label label-{{if eq . "mod_status"}}danger{{else}}primary{{end}}"><a href="/?search={{.}}">{{.}}</a></span>
|
|
{{end}}
|
|
|
|
</div>
|
|
|
|
{{template "summary" .Summary}}
|
|
</div>
|
|
|
|
|
|
{{range .Tables}}
|
|
{{template "table" .}}
|
|
{{end}}
|
|
</div>
|
|
</div>
|
|
{{else}}
|
|
|
|
<div class="alert alert-warning" role="alert">No Relationships Found for <strong>{{.SearchTerm}}</strong></div>
|
|
{{end}}
|
|
{{else}}
|
|
|
|
{{ $length := len .SearchResults }}
|
|
|
|
{{ if eq $length 0 }}
|
|
|
|
<div class="jumbotron">
|
|
<h1>Welcome to your OnionScan Correlation Lab!</h1>
|
|
<p>You have <strong>{{.RelationshipNum}}</strong> correlations to hunt through!</p>
|
|
</div>
|
|
|
|
{{else}}
|
|
|
|
<h2>Saved Searches</h2>
|
|
|
|
<ul>
|
|
|
|
{{ if eq $length 1}}
|
|
<div class="alert alert-warning" role="alert">You don't have any saved searches yet!</div>
|
|
{{else}}
|
|
{{range .SearchResults}}
|
|
{{if ne . "onionscan://dummy"}}
|
|
<li><a href="/?search={{.}}">{{.}}</a></li>
|
|
{{end}}
|
|
{{end}}
|
|
{{end}}
|
|
|
|
</ul>
|
|
|
|
{{end}}
|
|
|
|
|
|
{{end}}
|
|
|
|
|
|
|
|
|
|
</body>
|
|
</html>
|
|
|
|
|
|
|