Php I';我不知道为什么我的代码没有存储在XSS中
更新:我将有效负载更改为Php I';我不知道为什么我的代码没有存储在XSS中,php,html,mysql,xss,Php,Html,Mysql,Xss,更新:我将有效负载更改为“,XSS工作了,所以我仍然不知道为什么不能工作,但至少我存储的XSS现在正在工作。 谢谢大家的帮助 我从GitHub下载了一个聊天代码,该代码是用PHP和MYSQL编写的。我想让聊天容易受到存储的XSS的攻击,但我不明白为什么不会。 当然,所有内容都存储在数据库中,但每当我尝试注入XSS时,标记或标记内容都不会显示,但在数据库中,我看到了警报(),它只是不让我在网站上看到它本身。。。 有人知道问题的原因吗? 以下是index.php: <?php include
“
,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>
::消息:
函数ajax(){
var req=新的XMLHttpRequest();
req.onreadystatechange=函数(){
如果(req.readyState==4&&req.status==200){
document.getElementById('chat').innerHTML=req.responseText;
}
}
请求打开('GET','chat.php',true);
请求发送();
}
setInterval(函数(){ajax()},1000);
名称:
写点东西:
我认为您可能正在使用一种现代浏览器来防止利用漏洞。这并不意味着应用程序不易受攻击,它只意味着它非常容易受到攻击,甚至浏览器都可以自动检测到漏洞
尝试发送以下响应标头:
X-XSS-Protection: 0
您可以使用类似于header('X-XSS-Protection:0');
的方法来执行此操作,并查看这是否允许您尝试XSS。此外,您还可以在此聊天中显示XSS消息,而不是响应您的“恶意攻击”“请求但在之后-它应该会工作,因为浏览器将无法将您的请求与响应关联。您的代码易受SQL注入攻击,当您尝试发送”
时,它会崩溃,等等。。。只有XSS没有问题。嘿,谢谢你的回复。但每当我尝试注入XSS时,我只会执行alert(),不带引号。即使我没有使用引号,这也是一个问题吗?您的代码容易受到SQL注入和XSS的攻击。当您查看生成的页面时,您在浏览器中看到了什么?首先,非常感谢您的回复,感谢下面的评论,我已经成功地修复了它。谢谢你的帮助。你试过调试这个问题吗?标记是否如您所期望的那样正确生成?嘿,这似乎不是问题所在,因为每当我使用有效负载时,如“它可以工作。我确实设法将XSS存储在数据库中,但alert()只是不起作用。无论如何,非常感谢你的帮助!这进一步支持了我的猜测,img起作用是因为内置浏览器保护没有阻止它,而脚本被阻止。哦,我明白了,非常感谢你的帮助!即使在我添加标题“X-XSS-protection:0”后,它也没有修复脚本标记" ... 但无论如何,我接受了答案,因为我的问题已经解决了。再次感谢!
X-XSS-Protection: 0