网站制作公司多少钱一年,成都建工网站,叮当设计网,昆明cms建站模板文章目录 1. 跨站请求伪造#xff08;CSRF#xff09;1.1 CSRF(get)1.2 CSRF(post)1.3 CSRF Token1.4 CSRF漏洞防御 1. 跨站请求伪造#xff08;CSRF#xff09;
还可以参考我的另一篇文章#xff1a;跨站请求伪造(CSRF)
全称Cross-site request forgery#xff0c;翻译… 文章目录 1. 跨站请求伪造CSRF1.1 CSRF(get)1.2 CSRF(post)1.3 CSRF Token1.4 CSRF漏洞防御 1. 跨站请求伪造CSRF
还可以参考我的另一篇文章跨站请求伪造(CSRF)
全称Cross-site request forgery翻译过来就是跨站请求伪造是指利用受害者尚未失效的身份认证信息cookie、会话等诱骗其点击恶意链接或者访问包含攻击代码的页面在受害人不知情的情况下以受害者的身份向身份认证信息所对应的服务器发送请求从而完成非法操作如转账、改密码等。CSRF与XSS最大的区别就在于CSRF并没有盗取cookie而是直接利用。 什么是CSRF CSRF跨站域请求伪造通常攻击者会伪造一个场景例如一条链接来诱使用户点击用户一旦点击黑客的攻击目的也就达到了他可以盗用你的身份以你的名义发送恶意请求。CSRF攻击的关键就是利用受害者的cookie向服务器发送伪造请求。 1.1 CSRF(get)
这里是一个登录界面使用提示的用户名和密码进行登录 发现是个人信息页面 点击修改个人信息点击提交 所以这时候可以使用burpsuit进行抓包修改在点击提交修改个人信息的时候可以抓包看到下面的内容。 从上面的url可见修改用户信息的时候是不带任何不可预测的认证信息的。那么我们可以修改路径中的参数。
例如将电话好修改为一个新的参数。
127.0.0.1/pikachu/vul/csrf/csrfget/csrf_get_edit.php?sex%E5%A5%B3phonenum150666666668add%E5%8C%97%E4%BA%ACemail2488%40qq.comsubmitsubmit但是这个路径太明显了可以使用短路径的方法来伪造我们的路径。 https://s.r.sn.cn/vEARsG如果被攻击者此时登录状态或cookie/session没有过期如果用户登录了淘宝在没有退出淘宝或身份认证信息还未过期时打开了新的黑客设计好的修改淘宝登录密码的链接就会把淘宝的密码改了。
1.2 CSRF(post)
登陆allen账号进行修改 然后使用burpsuit进行抓包修改在点击提交修改个人信息的时候可以抓包看到下面的内容 发现采用的传递数据的方式是POST提交同样知道本页面中有的标签以及name方便后面构造表单时使用。
攻击者可以通过构造恶意站点将POST请求隐藏在站点中的表单中然后诱骗用户进行点击当用户点击后触发表单数据自然就POST到存在CSRF漏洞的网站用户的信息则被恶意修改。
htmlscript !-- 这个script是用来自动提交表单的 --window.onload function() {document.getElementById(submit).click();}/script bodyform actionhttp://127.0.0.1/pikachu/vul/csrf/csrfpost/csrf_post_edit.php methodPOST input typehidden namesex valuegirl /input typehidden namephonenum value15088888888 /input typehidden nameadd value缅甸 /input typehidden nameemail value222488qq.com /input typehidden namesubmit valuesubmit /input idsubmit typesubmit valueSubmit request styledisplay:none/ !-- style设置为display:none起到隐藏submit按钮的作用 --/form/body
/html 将写好的表单部署到攻击者的站点这里因为是本机做演示所以位置在WWW\pikachu\vur\scrf目录下。 用户访问攻击者的站点127.0.0.1/pikachu/vul/csrf/CSRF.html并点击提交按钮那么其个人信息将会被恶意修改可以在控制台中看到点击按钮后触发的POST请求。
点击前 点击后 1.3 CSRF Token
token验证原理
CSRF的主要问题是敏感操作的链接容易被伪造每次请求都增加一个随机码需要够随机不容易伪造后台每次对随机码进行验证。
网页接受从后台发过来的token类型不可见。将其一并提交给后台进行验证。每次刷新后台发送过来的token都不一样起到了防止伪造的作用。
使用bp抓包查看可以看到报文中包含token 查看源代码修改用户信息时服务器会比较url中的token字段和session中的token字段如果相同才能修改用户信息。并且在修改完用户信息之后会用set_token()函数生成新的token将其返回到html表单中并隐藏起来以便下次用户修改信息时代入url。 set_token()函数在生成新token之前会先销毁老token避免token重复使用。 1.4 CSRF漏洞防御
验证Referer字段添加Token验证二次验证在关键操作之前再输入密码或者验证码。HttpOnly某些情况下禁止JS 脚本访问Cookie 信息。SameSiteCookie 属性浏览器自带的安全机制。