徐州做网站,河南春辉建设集团官方网站,太仓seo网站优化软件,网络营销业务流程改变的确很难#xff0c;但结果值得冒险 本文如有错误之处#xff0c;还请各位师傅指正 一.ssrf概述
SSRF全称为Server-side Request Fogery,中文含义服务器端请求伪造 SSRF是一种由攻击者构造形成由目标服务端发起请求的一个安全漏洞。一般情况下#xff0c;SSRF攻击的目标… 改变的确很难但结果值得冒险 本文如有错误之处还请各位师傅指正 一.ssrf概述
SSRF全称为Server-side Request Fogery,中文含义服务器端请求伪造 SSRF是一种由攻击者构造形成由目标服务端发起请求的一个安全漏洞。一般情况下SSRF攻击的目标是从外网无法访问的内部系统防火墙隔绝。正是因为它是由服务端发起的所以它能够请求到与它相连而与外网隔离的内部系统 原由大都是由于服务端提供了从其它服务器获取数据的功能比如使用户从指定的URL web应用获取图片、下载文件、读取文件内容等。但又没有对目标地址做严格过滤与限制导致攻击者可以传入任意的地址来让后端服务器对其发送请求并返回对该目标地址请求的数据。 判断是否为SSRF题目题目源码出现以下函数file_get_contents()、curl()、fsocksopen()、fopen()时可能有SSRF常用协议http://,file://,dict://gopher:// 二.curl会话
PHP中的cURL会话cURL session是通过cURL库提供的功能来进行HTTP请求的过程。cURL会话可以用于发送HTTP/HTTPS协议请求获取服务器响应并对请求和响应进行配置和处理。
支持的协议dict file ftp ftps http https imap imaps ipfs ipns mqtt pop3 pop3s smb smbs smtp smtps telnet tftp
ssrf常用的四种协议包括filedicthttpgopher file协议用于进行任意文件读取是SSRF中最简单的利用方式。通过指定文件路径如file://开头攻击者可以尝试读取服务器上的任何文件包括敏感信息或配置文件。 http(s)协议允许攻击者向目标发送HTTP请求探测内网服务。由于GET请求的参数直接加在URL中这使得探测那些使用GET请求的应用成为可能进而进行内网探测和攻击。 dict协议1.探测内网主机 2.探测端口的开放情况 3.探测端口的指纹信息 4.执行命令 gopher万金油协议gopher协议允许通过Telnet远程访问其他应用程序并使得Internet上的所有Gopher客户程序能够与Internet上的所有已“注册”的Gopher服务器进行对话。此外Gopher协议支持发出GET和POST请求这使得它能够在ssrf服务器端请求伪造攻击中发挥重要作用例如攻击内网的MySQlFTPTelnetRedisMencache等同时也可以进行GET、POST请求。 使用cURL会话进行HTTP请求的基本步骤如下 创建一个cURL会话句柄curl_init。 设置需要的选项如请求的URL、请求方法、请求头、请求体等curl_setopt。 执行HTTP请求curl_exec。 获取服务器响应可选。 关闭cURL会话curl_close。 三.ctfshow之ssrf
web351:
使用dict协议查看哪个端口开放来决定使用哪个协议
urldict://127.0.0.1:80成功回显可以使用http协议 payloadurl127.0.0.1/flag.php web352:
parse_url()函数是用来解析一个URL并返回该URL的各个组成部分 scheme: URL的协议部分http/https等等host: URL的主机名部分 //后的部分port: URL的端口部分 user: URL的用户名部分 前pass: URL的密码部分 前path: URL的路径部分query: URL的查询字符串部分fragment: URL的锚点部分 #后 payloadurlhttp://127.0.0.1/flag.php web353:
不能出现127.0.的部分 payloadurlhttp://127.1/flag.php 还可以通过编码绕过16进制10进制8进制 web354
不能出现0和1
使用域名指向http://sudo.cc指向1270.0.1 payloadurlhttp://sudo.cc/flag.php web355: payloadurlhttp://127.1/flag.php web356
linux中0也可以访问本地 payloadurlhttp://0/flag.php web357
gethostbyname()函数是Linux系统中用于获取主机名对应IP地址的函数之一。
get_file_contens()函数读取域名后返回目标攻击ip
filter_var函数来验证第一次返回真正IP地址的有效性并且排除了私有IP范围0.0.0.0/8、172.16.0.0/12和192.168.0.0/16和保留IP范围(0.0.0.0/8和169.254.0.0/16。)。 这里采用DNS rebindingDNS重新绑定攻击绕过 攻击重点在于DNS服务能够在两次DNS查询中返回不同的IP地址第一次是真正的IP第二次是攻击目标IP地址甚至可以通过这种攻击方法绕过同源策略。 在这个网站注册账号CEYE - Monitor service for security testing 得到一个域名和两个ip
注意重定向时域名的使用r.域名 payloadurlhttp://r.zxfpib.ceye.io/flag.php web358
preg_match(/^http:\/\/ctf\..*show$/i,$url) ^:表示正则匹配的开始 ^http:\/\/ctf\.以http://ctf.开头 .*:匹配零个或任意个字符 $:匹配的结束表示 parse_url匹配的时候前的内容是user部分#后的部分会被忽略 payloadurlhttp://ctf.0/flag.php#show 或者 urlhttp://ctf.0/flag.php?show