【CSRF&SSRF】---漏洞案例讲解---day29

【CSRF&SSRF】---漏洞案例讲解---day29

一、CSRF---跨站请求伪造攻击

1、解释

image-20210420101114653

2、原理

①pikachu靶场演示

在pikachu的CSRF中测试get

image-20210420101422931

然后进去之后点击修改个人信息

image-20210420101444241

修改手机号后,抓包。

image-20210420101535560

相当于发送这个请求的时候,就会修改电话号

image-20210420101629911

那么,我们可以在另外新建一个网页,把这个网页放到公网服务器上,然后诱导管理员去点击这个网页,并且管理员已经登录了后台,那么执行了伪造网页中的 js代码,就会神不知鬼不觉的修改了电话号,实战中可以添加管理员。

payload

<script src='http://127.0.0.1/pikachu/vul/csrf/csrfget/……'></script>

image-20210420102429158

3、测试有没有这个漏洞

burp插件

image-20210420102646897

生成poc

image-20210420102705964

然后把poc代码放到服务器上,本地测试就行了。

4、防御方案

image-20210420102819014

①Token

最有效的方法就是设置随机Token,Token可以确定唯一地数据包。

在CSRF token里看一下数据包。

image-20210420102955127

image-20210420103020869

重新请求的话,token的值会变。

②Referer头

同源策略,Referer判断是否为同一个域名下的。如果不是的话,就不予以执行。

但是这个可以通过抓包修改,来伪造成同源。

二、SSRF---服务端请求伪造

1、解释:

SSRF(Server-side Request Forge, 服务端请求伪造)。
由攻击者构造的攻击链接传给服务端执行造成的漏洞,一般用来在外网探测或攻击内网服务。

image-20210420214520200

2、危害:

扫内网

向内部任意主机的任意端口发送精心构造的Payload

DOS攻击(请求大文件,始终保持连接Keep-Alive Always)

攻击内网的web应用,主要是使用GET参数就可以实现的攻击(比如struts2,sqli等)

利用file协议读取本地文件等

image-20210420103639240

3、案例演示

①代码:

image-20210420104026789

②界面:

image-20210420104051462

③利用

  • 本地上传

  • 远程上传:

    远程上传的时候,会让用户输入一个远程的地址,比如说http://www.xxxx.com/aaa.jpg这个地址是个图片,那么服务端就回去访问这个地址。

如果把这个地址恶意利用,请求本地

image-20210420104435992

那么服务端就会请求本地的信息。

可以请求本地的端口,比如127.0.0.1:3306,请求mysql的端口。

image-20210420104618987

返回了版本号信息。

可以进行一个端口的扫描。除此之外,还可以当做内网的探针,比如说让服务器请求自己已经打开的虚拟机,类比到内网之中,就实现了内网探测。

image-20210420105145243

内网ip可以用字典跑,一般都是192.168.xxx.xxx,端口用常见的端口就可以了。

image-20210420105451271

dict协议,ftp协议,查看是否开放协议的这个端口。

https://www.t00ls.net/articles-41070.html

三、CSRFTester安全测试工具

教程

http://luckyzmj.cn/posts/a1b686d3.html

image-20210420220144148

下载好这个cms之后,放到PHPstudy里面。

image-20210420220520996

image-20210420220536029

一系列的设置

image-20210420220606780

数据库密码是root,害得自己猜。

image-20210420220903087

登录后,先开启CSRFTester监听

image-20210420221037045

完事儿之后,准提交表单奥。

在CSRFTester里找到提交的表单数据包,将其原来数据修改为admin2数据,然后点击右下角 Generate HTML 保存到指定目录,会生成一个index.html文件

image-20210420221340988

这里我放到了桌面上

image-20210420221305886

打开index.html将末尾form里面的代码全删除掉

image-20210420221432652

修改完后,使用同个浏览器打开index.html,页面返回success

image-20210420221536321

image-20210420221601951

再返回查看会员列表页面,可以发现已经成功添加了admin2用户

image-20210420221626041

posted @ 2021-05-17 20:59  DarkerG  阅读(136)  评论(0编辑  收藏  举报