我不确定为什么我的代码没有存储 XSS



更新:我将有效载荷更改为"<img src="fake.jpg" onerror="alert()">和XSS工作,所以我仍然不知道为什么不会工作,但至少我存储的XSS现在正在工作。谢谢大家的帮助。

我从GitHub下载了一个代码,这是一个聊天,代码是用PHP和MYSQL编写的,我想使聊天容易受到存储的XSS的攻击,我完全无法想象为什么它不是。当然,一切都存储在数据库中,但每当我尝试注入XSS标签或标签的内容不显示,但在数据库中,我看到警报()它只是不让我看到它在网站本身…有人知道是什么导致了这个问题吗?这里是index.php:

<?php
include 'db.php';
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>::Message::</title>
<link rel="stylesheet" href="style.css">
<script>
function ajax() {
var req =  new XMLHttpRequest();
req.onreadystatechange = function() {
if (req.readyState == 4 && req.status == 200) {
document.getElementById('chat').innerHTML = req.responseText;
} 
}
req.open('GET','chat.php', true);
req.send();
}
setInterval(function(){ajax()},1000);
</script>
</head>
<body onload="ajax();">
<div class="page">
<div class="display-box">
<div id="chat"></div>
</div>
<div class="form">
<form action="" method="post">
<label for="name">Name:</label><br>
<input type="text" name="name" placeholder="Your name"><br>
<label for="message">Write some thing:</label><br>
<textarea name="message" id="message-write" cols="30" rows="3"></textarea><br>
<input type="submit" name="submit" value="Send">
</form>
<?php
if (isset($_POST['submit'])) {
$name = $_POST['name'];
$message = $_POST['message'];
$query = "INSERT INTO tbl_chat (name, message) VALUES ('$name','$message')";
$run = $con->query($query);
}
?>
</div>
</div>

</body>
</html>

,下面是聊天记录:

<?php
include 'db.php';
$query = "SELECT * FROM `tbl_chat` ORDER BY id DESC";
$run = $con->query($query);
while($row = $run->fetch_array()):
?>
<div class="chating_data">
<span id="name"><?php echo $row['name'];?></span><br>
<span id="message"><?php echo $row['message'];?></span>
</div>
<?php endwhile; ?>

我认为您可能正在使用现代浏览器,该浏览器可以为您阻止该漏洞的利用。这并不意味着应用程序不容易受到攻击,它只是意味着它是如此容易受到攻击,甚至浏览器都可以自动检测到一个漏洞。

尝试发送以下响应头:

X-XSS-Protection: 0

您可以使用header('X-XSS-Protection: 0');这样做,看看是否允许您尝试XSS。此外,您可以在此聊天中显示XSS消息,而不是在响应您的"恶意"。请求,但之后-它应该工作,因为浏览器将无法将您的请求与响应相关联。

最新更新