CSRF和XSS的区别
CSRF(Cross-site request forgery)是跨站请求伪造,XSS是实现CSRF的一个攻击手段,一般习惯上把通过 XSS 来实现的 CSRF 称为 XSRF。原理上,CSRF利用网站本身的漏洞获取网站的api,且需要用户先登录,获取cookie
XSS(cross site scripting)是跨站脚本攻击,原理上,XSS将代码注入到网站中篡改其中的数据,攻击者通过js代码劫持服务器和客户端的对话,也不需要用户登录。XSS其实是Html的注入问题,攻击者的输入没有经过严格的控制进入了数据库,最终显示给来访的用户,导致可以在来访用户的浏览器里以浏览用户的身份执行Html代码,数据流程如下:攻击者的Html输入—>web程序—>进入数据库—>web程序—>用户浏览器。
CSRF攻击手段总结
1、用户登录到受信任的网站(如银行网站),并保持登录状态。
2、用户在浏览器中打开一个恶意网站,该网站包含一个恶意脚本或链接,触发对受信任网站的请 求。
3、浏览器自动附带用户的会话 Cookie 发送这个请求到受信任的网站。
4、受信任的网站接收到请求后,由于会话 Cookie 有效,认为这是一个合法的请求并执行相应操作。
CSRF手工构造POST型页面的方法
1、使用burpsuite抓到包,发现是post请求
2、选中这个包右键,生成csrf proc
3、复制到html文档中去,修改结果
4、发送给登录的用户让她打开并点击submit request
点击前
5、刷新之后就发现修改成功了
Token型CFRS的绕过方法
CSRF的一个特征是,攻击者无法直接窃取到用户的信息(Cookie,Header,网站内容等),仅仅是冒用Cookie中的信息。
而CSRF攻击之所以能够成功,是因为服务器误把攻击者发送的请求当成了用户自己的请求。那么我们可以要求所有的用户请求都携带一个CSRF攻击者无法获取到的Token。服务器通过校验请求是否携带正确的Token,来把正常的请求和攻击的请求区分开,也可以防范CSRF的攻击。
1、删除令牌:从cookie或参数中移除token,绕过服务器验证。
2、令牌共享:创建两个帐户,替换token看是否可以互相共用。
3、篡改令牌值:有时系统只会检查CSRF令牌的长度。
4、解码CSRF令牌:尝试进行MD5或Base64编码。
5、修改请求方法:将post改为get。
6、窃取token:重定向、XSS、web缓存欺骗、clickjacking等可能导致token泄露。
SSRF常用伪协议
file:// 从文件系统中获取文件内容,如file:///etc/passwd
dict:// 字典服务协议,访问字典资源,如 dict:///ip:6739/info:
ftp:// 可用于网络端口扫描
sftp:// SSH文件传输协议或安全文件传输协议
ldap://轻量级目录访问协议
tftp:// 简单文件传输协议
gopher://分布式文档传递服务
SSRF
第一关(curl)
点击后发现是http请求,所以尝试把他变成其他网址
改成百度就可以了
第二关(file_get_content)
在这个目录下自己创建一个1.txt
点击后看到url所以尝试用file://来打开我们的1.txt
输入之后可以看到成功