在php页面上的xss攻击

时间:2015-05-18 15:06:18

标签: php html security xss

在我的安全课程中,老师给了我们一个挑战,我们可以在虚拟网站上练习xss。 该网站由2个php页面组成。 第一个叫做xss.php,这是代码

<html>
<head>
<title>Equations</title>
</head>
<body>
<center>

<?php

if (isset($_POST['result'])){
$result = $_POST['result'];

if (intval($result) == 1){
    echo "<h1>Ok, you are able to solve simple equations </h1><br>";
}

if (intval($result) == 0) {
    header("Location: error.php?error=Type numbers!");
}

if (intval($result) != 1){
    echo "<h1>Wrong result! Try again.</h1>";
}
}

else { ?>

<h1>Can you solve equations?</h1>
<h2>x^2 - 2*x + 1</h2>
<form method=POST action="xss.php"> 
    <table>
    <tr> <td>x:</td> <td><input type=text name=result></td> </tr>
    </table>
    <input type=submit value=Submit />
    </form>
 </center>
</body>
</html>

<?php }
?>

第二个是error.php,就是这个:

<html>
<head>
    <title>Error</title>
</head>
<body>
   <center>
      <h1>Error: <?php echo $_GET["error"]; ?></h1>
   <center>
</body>
</html>

请求是将某人重定向到另一个网站(我称之为“http://whatever.com/”)。当我开始挑战时,我在xss.php中,我唯一能做的就是在输入表单中写一些东西(name = result)。我能写些什么?谢谢

2 个答案:

答案 0 :(得分:1)

XSS攻击是指允许用户将脚本块注入渲染的HTML中的攻击。所以,首先你必须弄清楚如何做到这一点。例如,如果用户的输入显示在页面上并且未进行html转义,则用户可以执行以下操作:

用户输入:

<script>alert('testing');</script>

之后,如果在查看页面时显示警报,则该页面易受XSS攻击。

因此,如果用户按如下方式输入JavaScript:

<script>window.location.href = "http://www.whatever.com";</script>

将重定向用户。

答案 1 :(得分:0)

你可以传递“错误”GET变量javascript代码重定向页面,无论你想要什么。 为此,您将访问

error.php?error=<script>window.location.href="http://youpageurl.com";</script>

然后你必须被重定向到“yourpageurl.com”网站