
RCE-远程代码执行漏洞
南暮思鸢
一名计算机学院学子
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
[FSCTF 2023]EZ_eval的write up
闭合可以用<script language='php'>system('ls /');(cat, tac, tail, more, head, nl, flag, less, 或空格)>". $word);>被闭合了,后面的代码不会当作php代码执行。cat可以用ca\t替代(后面了解到strings或paste替代cat)如果匹配到这些字符串中的任何一个,脚本将终止并输出"nonono."。否则,使用str_replace函数移除$word中的所有问号?flag可以用fl$*ag替代。原创 2024-11-01 22:35:30 · 732 阅读 · 0 评论 -
HelloCTF [RCE-labs] Level 9 - 无字母命令执行_八进制转义
即,cat /flag对应$'\143\141\164\40\57\146\154\141\147'A-Za-z:任何大小写字母(A-Z, a-z)"":重音符号或反引号 (`` 或者 ```)当然,禁用了空格,也还没有禁用<(小于号)[ 和 ]:方括号 ([ 和 ])即,ls对应$'\154\163'\":双引号 (",转义字符)\/:斜线 (/,反斜杠转义)^:脱字符或caret (^)|:竖线或管道符 (|)同理,cat /flag。@:at 符号 (@)一样成功得到flag。原创 2024-10-29 20:07:27 · 385 阅读 · 0 评论 -
HelloCTF [RCE-labs] Level 8 - 文件描述和重定向
使用base64命令将/flag的内容编码成Base64格式,然后通过管道输出。这行代码将执行命令 $cmd,并且将其标准输出和标准错误输出都重定向到 /dev/null,这意味着无论命令的输出还是可能产生的错误信息都不会显示出来。2>&1 是另一个重定向操作,它把标准错误输出复制到之前的标准输出位置(即 /dev/null),这样标准错误也不会出现在屏幕上。> /dev/null 是一个输出重定向,它把标准输出重定向到 /dev/null,这样就不会有输出出现在屏幕上。一样成功得到flag。原创 2024-10-29 17:37:42 · 783 阅读 · 0 评论 -
HelloCTF [RCE-labs] Level 7 - 空格过滤
空格则选择< 、<>、%20(space)、%09(tab)、$IFS$9、 ${IFS}、$IFS之一进行替代即可。(不知道为什么这题%20(space)、%09(tab)不可以替代空格)由level 5得知flag可以用fl$*ag进行替代。GET传参cmd,对flag字符串和空格进行了过滤。原创 2024-10-29 10:27:11 · 293 阅读 · 0 评论 -
HelloCTF [RCE-labs] Level 6 - 通配符匹配绕过
使用 /bin/base64 /flag。可以尝试在Linux终端中做下面的几个实验,使用echo方法输出?#使用 /bin/cat /flag。b-zA-Z 过滤b到Z范围内的任何单个字符。:{}\-\+<>\"| 匹配这些符号之一。(这里我重开了靶场,所以flag不一样)\[\] 匹配这些符号之一。也一样能拿到flag。原创 2024-10-28 23:35:42 · 345 阅读 · 2 评论 -
HelloCTF [RCE-labs] Level 5 - 黑名单式过滤
当然还有别的方法绕过,就不一一赘述了(已经写了文档了《过滤绕过方法》)GET传参cmd,且对flag字符串进行了过滤。用'绕过,f''lag或f'l'ag。用$*绕过,fl$*ag。原创 2024-10-28 17:10:05 · 259 阅读 · 0 评论 -
HelloCTF [RCE-labs] Level 4 - SHELL 运算符
源码很简单,system("ping -c 1 $ip");原创 2024-10-28 17:08:31 · 219 阅读 · 0 评论 -
HelloCTF [RCE-labs] Level 3 - 命令执行
这关代码跟level 1的区别是eval($_POST['a']);变成了system($_POST['a']);system() 函数会通过软连接执行你输入的系统命令。POST传参:a=cat /flag。原创 2024-10-28 17:06:52 · 257 阅读 · 0 评论 -
php字符过滤绕过方法
在Shell中,单/双引号 "/' 可以用来定义一个空字符串或保护包含空格或特殊字符的字符串。例如:echo "$"a 会输出 $a,而 echo $a 会输出变量a的值,当只有""则表示空字符串,Shell会忽略它。上一个后台运行的进程的进程 ID (PID)传递给脚本或函数的第 1 到第 9 个参数。传递给脚本或函数的所有参数(以字符串形式)传递给脚本或函数的所有参数(以列表形式)当前脚本或 shell 的名字。传递给脚本或函数的参数个数。上一个命令的最后一个参数值。上一个命令的最后一个参数。原创 2024-10-28 17:05:35 · 699 阅读 · 0 评论 -
HelloCTF [RCE-labs] Level 2 - PHP代码执行函数
检查URL中是否有一个名为action的参数。如果有,就使用该参数的值作为start()函数的参数来执行相应的逻辑。如果没有,就执行一个空字符串并没有实际的效果,只是意味着不做任何事情。POST传参content=assert(print_r($flag))得到使用assert()函数。GET传参action。原创 2024-10-28 12:59:52 · 612 阅读 · 0 评论 -
HelloCTF [RCE-labs] Level 0 - 代码执行&命令执行
任意代码执行(Arbitrary Code Execution,ACE)」 是指攻击者在目标计算机或目标进程中运行攻击者选择的任何命令或代码的能力,这是一个广泛的概念,它涵盖了任何类型的代码运行过程,不仅包括系统层面的脚本或程序,也包括应用程序内部的函数或方法调用。这些命令最终的指向通常是系统命令,如Windows中的CMD命令或Linux中的Shell命令,这在语言中可以体现为一些特定的函数或者方法调用,如PHP中的shell_exec()函数或Python中的os.system()函数。原创 2024-10-28 11:05:27 · 562 阅读 · 0 评论 -
HelloCTF [RCE-labs] Level 1 - 一句话木马和代码执行
一眼看到一句话木马的语句:eval($_POST['a']);而且指明了flag跟get_flag.php有关。说明flag在根目录下。原创 2024-10-28 11:07:11 · 517 阅读 · 0 评论 -
PHP 代码执行相关函数
过滤数组元素,如果提供回调函数,仅包含回调返回真值的元素;没有返回值,除非在执行的代码中明确返回。迭代一个数组,通过回调函数将数组的元素逐一减少到单一值。接受数组、回调函数和可选的初始值。用于调用回调函数,可以传递多个参数给回调函数,返回回调函数的返回值。对数组进行自定义排序,接受数组和比较函数作为参数。创建匿名函数,接受两个字符串参数:参数列表和函数体。返回一个匿名函数的引用。将回调函数应用于数组的每个元素,返回一个新数组。调用回调函数,并将参数作为数组传递。或其他动态执行代码的功能,用于间接执行代码。原创 2024-10-28 17:01:24 · 442 阅读 · 0 评论