单身杯web wp

本文详细解析了两例PHP代码审计案例,涉及文件包含漏洞和命令注入。第一例中,通过payload绕过限制,利用反转字符串实现文件包含。第二例中,深入理解escapeshellcmd()和escapeshellarg()函数,利用sed命令替换和写入文件功能,最终执行系统命令获取flag。同时介绍了awk命令的基础知识及其在命令行中的应用。

web签到题

php代码审计

post传入一个参数file,file的反转字符串与file相同时即可执行文件包含

payload :

?file=data://text/plain,<?php echo system("cat /f*")?>>?)"*f/ tac"(metsys ohce php?<,nialp/txet//:atad

使用?>即可对代码进行截断

easyPHP

php代码审计

POST方式传入cmd和param两个参数,使用escapeshellcmd()和escapeshellarg()俩函数处理并合并为一条cmd命令交由shell_exec()函数执行

其中参数cmd限长三位,参数param不限长

escapeshellcmd()和escapeshellarg()函数我都不熟悉,先查一下:

escapeshellcmd()

escapeshellarg()

简单来说,

escapeshellcmd是对&#;|*?~<>^()[]{}$\, \x0A 和 `\xFF这些字符之前添加一个转义字符'\'。

escapeshellarg的作用是 用空格替换了百分号、感叹号(延迟变量替换)和双引号,并在字符串两边加上双引号。此外,每条连续的反斜线(\)都会被一个额外的反斜线所转义。

参照k师傅wp学习

← sed 基础教程sed 环境安装 →

SED简介

sed,英文全称 stream editor ,是一种非交互式的流编辑器,通过多种转换修改流经它的文本。

sed 可以对文字的增删改替换查( 过滤、取行 ),能同时处理多个文件多行的内容。

sed 与 awk 并称为 Linux/Unix 世界的两大王牌文字处理器。

sed 与 awk 一样,都是行文字处理器

awk 侧重点是分割和重新合成。而 sed 的侧重点是替换

步骤一

我们重点看看需要的内容,k师傅使用sed命令替换了shell_exec函数为system函数,并且将$cmd=escapeshellcmd(substr($cmd,0,3))." ".escapeshellarg($param)." ".__FILE__;这一行给删除了

传入的参数是

cmd=sed&param=/esca/d;s/shell_exec/system;w 1.php

sed是三字命令,自然没有超过sustr的字符串长度限制,接下来对命令参数进行说明:

/esca/d: 斜杠这个符号在sed中用于隔离不同参数(或是命令), /d的作用是delete,即删除,/esca是/d所需要匹配的字符串,即含有esca这个字符串所在的行会被删除。

; :sed中分号是不同命令之间的分隔。

s/shell_exec/system:s是sed中的字符串替换命令

在这里可以学到其具体的使用方式与效果:sed 字符串替换命令 s - sed 基础教程 - 简单教程,简单编程

s/shell_exec/system即是将shell_exec替换为system的命令。

w 1.php :w即write 写入,合起来就是将修改后的文件写入1.php中

因此该payload 的实际效果就是 sed '/esca/d;s/shell_exec/system;ww 1.php'

步骤二

那么我们现在了解了sed是如何替换字符串并写入文件的,我们知道最终将有一个1.php会在网站目录下被生成,因此在网站链接后加上1.php进入

可以了解到我们修改后的成果,接下来使用post cmd传入使用的命令行指令:

cmd = ls / :了解当前目录下的文件

cmd=cat /f* 即可拿到flag

AWK 简介

参考链接:AWK 简介 - Awk 基础教程 - 简单教程,简单编程

AWK 是一个命令行工具,它和其它的 Unix/Linux 命令行工具,比如 curlwget 一样,没有界面。

AWK 是一门语言,对的,一门语言,而且是一个解释性编程语言。使用 Awk 可以完成无数的任务,我们简单的罗列几条

  • 文本处理

  • 生成格式化的文本报告

  • 运行一些简单的算术操作

  • 执行一些常见的字符串操作

AWK 程序有两种运行方式:

  1. 一种就是直接在终端( shell )中使用。

  2. AWK 的另一种使用方式,就是可以和 Shell 脚本,写在一个文本文件里,然后运行这个文本文件。不过这种方式不多见

AWK 最常见的使用方式就是在终端里直接输入 AWK 脚本。

awk [options] file ...

在命令行里直接使用,我们需要讲 AWK 代码使用 单引号 ( '' ) 引起来。

比如

[www.twle.cn]$ awk '{print}' employee.txt

exp

因为awk中可以直接执行指令。

<think>好的,我现在需要帮助用户寻找关于强网青少年专项赛Web部分的解题思路或Writeup。用户明确提到了想要Web部分的解题思路,所以我要集中精力在这部分。 首先,我应该回忆一下自己知道的强网比赛情况。强网是一个网络安全竞赛,通常包括多个方向如Pwn、Reverse、Crypto、Web等。用户提到的引用内容中,引用了两篇Writeup,但里面提到的是Pwn、Reverse、Crypto题目的情况,而Web部分可能没有被详细提及。例如,引用[1]中的用户提到“Pwn 一道题都不会捏qwq Reverse 一道题都不会捏qwq Crypto crypto1”,但Web部分可能没有写出来。引用[2]同样没有提到Web题目的具体内容。 接下来,我需要考虑用户可能的需求。用户可能参加了这个比赛,或者在准备类似的比赛,需要参考往届的解题思路来提高自己的技能。由于公开的Writeup中Web部分的信息有限,可能需要给出一般性的解题建议,或者指导用户如何寻找相关资料。 另外,我需要确保回答符合用户的要求,结构清晰,分步骤解决问题,并且真实可靠。可能需要建议用户查看官方资料、社区论坛、GitHub仓库或者联系参赛队伍获取更多信息。同时,提醒用户注意题目中的常见考点,如SQL注入、文件上传漏洞、反序列化等,这些都是Web题目中常见的类型。 还需要检查是否有遗漏的信息。比如,是否有其他年份的强网比赛Writeup中包含了Web部分的内容?如果用户提到的第六届和第八届的Writeup中没有,可能需要建议用户搜索其他届次或者类似比赛的解题思路。 最后,应该生成相关问题,帮助用户进一步探索。例如,询问常见的Web漏洞类型或CTF中Web题的训练方法,这样可以引导用户深入学习相关知识点。</think>关于强网青少年专项赛Web题目的公开Writeup目前较为有限。根据现有资料显示,第六届和第八届赛事中公开的解题报告主要聚焦在Crypto、Pwn等方向,Web部分的详细解题思路尚未见完整披露[^1][^2]。以下是可提供的建议思路: 1. **常见漏洞定位** Web题常涉及SQL注入、文件上传漏洞、反序列化攻击等考点。建议通过修改HTTP请求头参数(如`X-Forwarded-For`)测试服务端过滤机制,例如: ```python import requests r = requests.post(url, headers={"X-Forwarded-For": "127.0.0.1"}) ``` 2. **框架特性利用** 若题目使用Spring、Flask等框架,需注意模板注入漏洞,测试如`{{7*7}}`等表达式是否被解析 3. **数据流追踪** 使用浏览器开发者工具分析网络请求,重点关注Cookie字段和JWT令牌的加密方式,使用`jwt.io`在线工具解码验证 建议通过以下渠道获取更多信息: - 访问CTF赛事平台(如CTFHub、攻防世界)的Web专项训练 - 查阅GitHub仓库搜索"强网 Web writeup"关键词 - 联系参赛战队获取非公开解题文档
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值