Files
wooyun_search/search.php

246 lines
5.8 KiB
PHP
Raw Normal View History

2016-09-15 19:21:41 +08:00
<!DOCTYPE html>
<html>
<head>
2017-03-07 16:46:26 +08:00
<meta http-equiv="content-type" content="text/html;charset=utf-8">
2016-09-15 19:21:41 +08:00
<title>乌云搜索|搜索结果</title>
2017-03-07 16:46:26 +08:00
<link href="//lib.baomitu.com/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="//lib.baomitu.com/jquery/3.1.0/jquery.min.js"></script>
<script type="text/javascript" src="//lib.baomitu.com/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script>
<style type="text/css">
.container{
width: auto;
max-width: 1500px;
margin: 0 auto;
position: relative;
top: 50px;
padding-bottom: 50px;
}
</style>
2016-09-15 19:21:41 +08:00
</head>
<body>
2017-03-07 16:46:26 +08:00
<nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">
<div class="navbar-left">
<a class="navbar-brand" href="#">search from wooyun.org</a>
</div>
<div class="navbar-right">
<ul class="nav navbar-nav">
<li><a href="./index.html">home</a></li>
<li><a href="#">about</a></li>
<li><a href=""></a></li>
</ul>
</div>
</nav>
<div class="container">
2016-09-15 19:21:41 +08:00
<?php
2017-03-07 16:46:26 +08:00
require './config.php';
2016-09-15 19:21:41 +08:00
#接受参数
2017-03-07 16:46:26 +08:00
if (!isset($_GET['keywords']))
{
2016-09-15 19:21:41 +08:00
header("Location: index.html");
exit;
}
2017-03-07 16:46:26 +08:00
else
{
$keywords = preg_replace("/[^a-zA-Z0-9\x{4e00}-\x{9fff}]+/u", "", $_GET['keywords']);
}
if (!isset($_GET['page']))
{
$page = 1;
2016-09-15 19:21:41 +08:00
}
2017-03-07 16:46:26 +08:00
else
{
$page = intval($_GET['page']);
2016-09-15 19:21:41 +08:00
}
2017-03-07 16:46:26 +08:00
if (!isset($_GET['kind']))
{
$kind = 'bugs';
}
else
{
if ($_GET['kind'] === 'bugs' || $_GET['kind'] === 'drops' || $_GET['kind'] === 'author')
{
$kind = $_GET['kind'];
2016-09-15 19:21:41 +08:00
}
2017-03-07 16:46:26 +08:00
else
{
$kind = 'bugs';
2016-09-15 19:21:41 +08:00
}
}
2017-01-01 22:21:04 +08:00
2017-03-07 16:46:26 +08:00
echo "<h3 style=\"display:inline-block;\">关键词<strong>【{$keywords}】</strong>的搜索结果:</h3>";
2017-01-01 22:21:04 +08:00
2017-03-07 16:46:26 +08:00
//pdo连接mysql
try
{
$conn = new PDO("mysql:host={$config['host']};dbname={$config['database']};port={$config['port']};charset=utf8", $config['user'], $config['passwd']);
//echo "mysql:host={$config['host']};dbname={$config['database']}";
2017-01-01 22:21:04 +08:00
}
2017-03-07 16:46:26 +08:00
catch (PDOException $pe)
{
die("Could not connect to the database $dbname :" . $pe->getMessage());
2017-01-01 22:21:04 +08:00
}
2017-03-07 16:46:26 +08:00
//查询数目
if ($kind === 'author')
{
$query0 = "SELECT count(*) FROM `bugs` WHERE author LIKE '%{$keywords}%'";
$query1 = "SELECT count(*) FROM `drops` WHERE author LIKE '%{$keywords}%'";
$res0 = $conn->query($query0);
$res1 = $conn->query($query1);
$row = $res0->fetch(PDO::FETCH_NUM)[0] + $res1->fetch(PDO::FETCH_NUM)[0];
}
else
{
$query0="SELECT count(*) FROM `{$kind}` WHERE `title` LIKE '%{$keywords}%'";
$res0 = $conn->query($query0);
$row = $res0->fetch(PDO::FETCH_NUM)[0];
2017-01-01 22:21:04 +08:00
}
2017-03-07 16:46:26 +08:00
2017-01-01 22:21:04 +08:00
//得到总页数 $p
2017-03-07 16:46:26 +08:00
if ($row % 15 != 0)
{
$p = intval($row / 15) + 1;
}
else
{
$p = $row / 15;
}
if ($row == 0) $p = 1;
if ($page > $p || $page <1 ) $page = 1;
echo "<h4 style=\"display:inline-block;\">共 {$row} 条记录</h4>";
$start = ($page - 1) * 15;
if ($kind === 'author')
{
$query = "(SELECT doc,dates,title,type,author FROM `bugs` WHERE `author` LIKE '%{$keywords}%') UNION ALL (SELECT doc,dates,title,type,author FROM `drops` WHERE `author` LIKE '%{$keywords}%')ORDER BY dates DESC LIMIT {$start},15";
}
else
{
$query = "SELECT * FROM `{$kind}` WHERE `title` LIKE '%{$keywords}%' ORDER BY dates DESC LIMIT {$start},15";
}
$res = $conn->query($query);
$resulte = $res->fetchAll(PDO::FETCH_ASSOC);
//var_dump($resulte);
//输出结果
echo '<div><table class="table table-striped table-hover">';
echo '<tr><td>提交时间</td><td>标题</td><td>漏洞类型</td><td>提交者</td><tr>';
foreach ($resulte as $rrr){
if ($kind != "author")
{
echo "<tr onclick=\"window.open('./{$kind}/{$rrr['doc']}');\" style=\"cursor:pointer;\">";
}
else
{
if (array_key_exists($rrr['type'], $drops))
{
echo "<tr onclick=\"window.open('./drops/{$rrr['doc']}');\" style=\"cursor:pointer;\">";
}
else
{
echo "<tr onclick=\"window.open('./bugs/{$rrr['doc']}');\" style=\"cursor:pointer;\">";
}
}
$time0 = str_split($rrr['dates'], 10);
echo "<td>{$time0[0]}</td>";
echo "<td style=\"color:#01a8ff;\">{$rrr['title']}</td>";
if (array_key_exists($rrr['type'], $drops))
{
echo "<td style=\"color:#01a8ff;\">{$drops[$rrr['type']]}</td>";
}
else
{
echo "<td style=\"color:#01a8ff;\">{$rrr['type']}</td>";
}
echo "<td>{$rrr['author']}</td>";
echo "</tr>";
}
2017-01-01 22:21:04 +08:00
echo "</table></div>";
2017-03-07 16:46:26 +08:00
$conn = null;
2016-09-15 19:21:41 +08:00
//分页
2017-03-07 16:46:26 +08:00
echo '<ul class="pagination pagination-lg">';
2017-01-01 22:21:04 +08:00
//首
2017-03-07 16:46:26 +08:00
if ($page==1)
{
echo '<li class="disabled"><a href="#">&laquo;</a></li>';
2016-09-17 23:46:35 +08:00
}
2017-03-07 16:46:26 +08:00
else
{
echo "<li><a href=\"search.php?kind={$kind}&keywords={$keywords}&page={($page-1)}\">&laquo;</a></li>";
2016-09-17 23:46:35 +08:00
}
2017-01-01 22:21:04 +08:00
//中间处理
2017-03-07 16:46:26 +08:00
if ($p > 17)
{
if ($page < 9)
{
2017-01-01 22:21:04 +08:00
$i=1;
2016-09-15 19:21:41 +08:00
}
2017-03-07 16:46:26 +08:00
elseif ($page >= 9 && $page + 8 < $p)
{
$i = $page-8;
2016-09-15 19:21:41 +08:00
}
2017-03-07 16:46:26 +08:00
elseif ($page + 8 >= $p)
{
$i = $p-8;
2017-01-01 22:21:04 +08:00
}
2017-03-07 16:46:26 +08:00
$j = $i + 17;
2016-09-15 19:21:41 +08:00
}
2017-03-07 16:46:26 +08:00
else
{
$i = 1;
$j = $p;
2016-09-15 19:21:41 +08:00
}
2017-01-01 22:21:04 +08:00
//echo $p;
2017-03-07 16:46:26 +08:00
for (;$i <= $j;$i++)
{
if ($page == $i)
{
echo "<li class=\"disabled\"><a href=\"search.php?kind={$kind}&keywords={$keywords}&page={$i}\">{$i}</a></li>";
2016-09-15 19:21:41 +08:00
}
2017-03-07 16:46:26 +08:00
else
{
echo "<li><a href=\"search.php?kind={$kind}&keywords={$keywords}&page={$i}\">{$i}</a></li>";
2016-09-15 19:21:41 +08:00
}
}
2017-01-01 22:21:04 +08:00
//尾
2017-03-07 16:46:26 +08:00
if ($page == $p || $p ==0)
{
echo '<li class="disabled"><a href="#">&raquo;</a></li>';
}
else
{
echo "<li><a href=\"search.php?kind={$kind}&keywords={$keywords}&page={($page+1)}\">&raquo;</a></li>";
}
echo "</ul>";
2016-09-15 19:21:41 +08:00
?>
2017-03-07 16:46:26 +08:00
2016-09-15 19:21:41 +08:00
</div>
2017-03-07 16:46:26 +08:00
<nav class="navbar navbar-default navbar-fixed-bottom" role="navigation">
<p class="navbar-text navbar-left">公开漏洞、知识库等数据来自于wooyun.org</p>
<!--<p class="navbar-text navbar-right">written by grt1st</p> -->
</nav>
2016-09-15 19:21:41 +08:00
</body>
</html>
2017-03-07 16:46:26 +08:00