day6 CSRF和SSRF

1.总结CSRF和XSS区别

  1. 1XSS 允许攻击者在受害者的浏览器上执行js代码;而 CSRF 不行。
  2. XSS 通过窃取受害者的cookie 来实现账号接管,如果目标站点使用了httponly 这就行不通了;CSRF 通过浏览器发起请求,自动携带受害者的cookie信息,即使有 httponly也不影响CSRF 攻击的实现。
  3. XSS 的危害更大。攻击者如果成功实现了XSS 攻击,那通常意味着他可以使用受害者在这个网站的所有功能,而CSRF只限于特定的存在漏洞的功能。
  4. CSRF 无法让攻击者获取到服务器返回的数据,由于请求是由受害者的浏览器发起的,那么服务器的响应最后还是给到了受害者那里,攻击者是拿不到这部分数据的,所以对于一些查询类功能,即便没有做任何防御CSRF的措施,它也几乎是没有利用价值的;而XSS由于可以执行js代码,这也就使得攻击者可以将它想要的数据发送到自己的服务器上,比如前面XSS章中提到的回传cookie。
  5. 在XSS攻击中,恶意代码存储在站点中,而在CSRF攻击中,恶意代码存储在受害用户访问的第三方站点中。


2.总结CSRF攻击步骤

  1. 访问受信任网站A,输入用户名和密码请求登录网站A;
  2. 在用户信息通过验证后,网站A产生Cookie信息并返回给浏览器,此时用户登录网站A成功,可以正常发送请求到网站A;
  3. 用户未退出网站A之前,在同一浏览器中,打开一个TAB页访问网站B(攻击者构造的网站);
  4. 网站B接收到用户请求后,返回一些攻击性代码,并发出一个请求要求访问第三方站点A;
  5. 浏览器在接收到这些攻击性代码后,根据网站B的请求,在用户不知情的情况下携带Cookie信息,向网站A发出请求。网站A并不知道该请求其实是由B发起的,所以会根据用户C的Cookie信息以C的权限处理该请求,导致来自网站B的恶意代码被执行。

3.总结CSRF手工构造POST型页面方法

1.确定目标网站

确定该网站存在CSFR漏洞以及请求方式为POST,可以通过BP抓包查看url,请求方式,参数等。

2.构造HTML表单

创建一个HTML表单,表单的action属性应设置为目标网站的URL,method属性应设置为POST。在表单中添加input元素,这些元素的type属性设置为hidden,然后根据URL所需要的参数,name为参数名,value设置为攻击者希望发送的值。

示例:

<form action="http://target.com/malicious" method="POST">
   <input type="hidden" name="username" value="victim_username">
   <input type="hidden" name="password" value="victim_password">
   <button type="submit">点击</button>
</form>

3.诱骗用户点击

将其布置到自己的vps上,然后伪造一个看起来像来自可信来源的消息,通过电子邮件、社交媒体等方式发送给目标用户,诱骗用户点击提交按钮。


4.说明token类CSRF利用方法

1.Token的工作原理:

客户端把用户的用户名和密码发到服务端;

服务端进行校验,校验成功会生成token, 把token发送给客户端;

客户端自己保存token, 再次请求就要在Http协议的请求头中带着token去访问服务端,和在服务端保存的token信息进行比对校验。

2.CSRF Token Tracker可以自动获取 csrf 的 token,对于一些有 csrf 限制的请求,它可以绕过该限制,如暴力破解具有 csrf token 的登录请求。在BApp Store中可以直接安装。

3.在pikachu靶场演示使用方法

修改两次信息并提交,burpsuite抓包,发现每次提交请求token都会变化。

原本在repeater中修改参数值,send后不能成功修改数据,说明有验证token,使用CSRF Token Tracker自动识别Token值,之后每次提交的重放都会自动识别并填充token值来实现绕过的目的。


5.SSRF常用伪协议

file:// 从文件系统中获取文件内容,如file:///etc/passwd
dict:// 字典服务协议,访问字典资源,如 dict:///ip:6739/info:
ftp:// 可用于网络端口扫描
sftp:// SSH文件传输协议或安全文件传输协议
ldap://轻量级目录访问协议
tftp:// 简单文件传输协议
gopher://分布式文档传递服务


6.SSRF pikachu靶场通关

第一关(curl)

点击链接,发现这里出现了一个url地http://127.0.0.1/pikachu/vul/ssrf/ssrf_info/info1.php

1.通过网址访问链接

比如说修改url为:url=http://www.baidu.com,访问百度页面:

2.利用file协议查看本地文件

修改url为:url=file:///f:/test.txt,查看文件的内容:

3.dict协议扫描内网主机开放端口

使用dict协议可以获取内网主机开放端口相应服务的指纹信息,比如说内网主机开了http端口的话,可以修改url为:url=dict://127.0.0.1:80

第二关(file_get_content)

点击链接,发现这里出现了一个url地http://127.0.0.1/pikachu/vul/ssrf/ssrf_info/info2.php

1.file读取本地文件

修改file为:file=file:///F:/test.txt,查看文件的内容:

2.http协议请求内网资源

修改file为:file=http://127.0.0.1/pikachu/vul/sqli/1.php,查看文件的内容:


7.SSRF靶场通关时根据源代码说明漏洞成因(加分项)

第一关(curl)

部分关键源代码:

根据源码可以看到,这里对传入的url参数没有做任何过滤,然后就直接对传入的参数执行了curl。

第二关(file_get_content)

部分关键源代码:

根据源码可以看到,这里对传入的file参数没有做任何过滤,然后就直接对传入的路径进行了文件读取。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值