基于PHP评论区的存储型XSS漏洞

评论区的XSS漏洞是指攻击者在评论区输入恶意脚本,当其他用户浏览该页面时,这些恶意脚本会被执行,从而造成安全威胁。这种漏洞通常出现在网站没有对用户输入进行充分过滤和转义的情况下,为存储型XSS。存储型XSS攻击是指攻击者在目标网站上注入恶意脚本,当其他用户访问该网站时,恶意脚本会被执行。为了创建一个有存储型XSS的靶场环境,我们需要一个PHP后端来处理用户的输入并将其存储在数据库中,然后当其他用户访问这些内容时,恶意脚本将被执行。

1.创建评论区存储型xss所需的数据库内容

CREATE DATABASE xss_vulnerable_comments;
USE xss_vulnerable_comments;

CREATE TABLE comments (
    id INT AUTO_INCREMENT PRIMARY KEY,
    content TEXT NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

 2.创建一个带有存储型XSS漏洞的评论区PHP代码

<?php
include 'config.php';

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $content = $_POST["content"];
    $sql = "INSERT INTO comments (content) VALUES ('" . $content . "')";

    if ($conn->query($sql) === TRUE) {
        echo "评论添加成功";
    } else {
        echo "Error: " . $sql . "<br>" . $conn->error;
    }
}
?>

<!DOCTYPE html>
<html>
<head>
    <title>评论</title>
</head>
<body>
    <h1>评论发表</h1>
    <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>">
        <label for="content">发表内容:</label><br>
        <textarea name="content" id="content" rows="4" cols="50"></textarea><br>
        <input type="submit" value="提交">
    </form>
    <hr>
    <h2>评论</h2>
    
    <?php
    $sql = "SELECT content FROM comments";
    $result = $conn->query($sql);

    if ($result->num_rows > 0) {
        while($row = $result->fetch_assoc()) {
            echo "<p>" . htmlspecialchars_decode($row["content"]) . "</p>";
        }
    } else {
        #无评论
        echo "";
    }
    $conn->close();
    ?>
</body>
</html>

3.数据库配置config.php

<?php
$servername = "127.0.0.1";
$username = "root";
$password = "root";
$dbname = "xss_vulnerable_comments";

$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}
?>

4.通过XSS漏洞获取cookie

利用BlueLotus获取cookie

1.BlueLotus的安装

地址:https://github.com/trysec/BlueLotus_XSSReceiver

2.创建cooke.js

 3.生成payload

4.评论发布payload

5.获取到cookie

每篇一言:有些错误无法犯两次,有些事绝对不会无趣。

 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cityミ slaves

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值