web之命令执行(持续更新)

本文最后更新于 2024年6月10日 中午

执行系统命令

system
passthru
exec
show_source

空格绕过

%09(tab)
$IFS$9
${IFS}
$IFS%09(tab)
<(不能和通配符一起使用)
<>(不能和通配符一起使用)
%20(space)

无字符绕过

文件上传

第一种姿势利用poc文件上传,通过./tmp/php??????这样的形式来写
通配符除了?和*之外还有[^x]可以使用,一般默认上传的最后一个字母是大写字母,可以用[ @-[ ]进行遍历
然后进行修改内容,可以先尝试whoami看看是否RCE成功,需要在#!/bin/sh下进行(我暂时还不太懂);然后ls看看,最后cat或者tac flag ,直接不行的情况下,可以在默认目录下(var/www/html/XXX)
附上poc代码:

算是第一次接触到这种姿势,记录一下.

$()构造数字

在linux中,echo $(())默认为0,取反就是-1,也就是$((~ $(())))=-1;
因为是默认相加构造负数最后整体相加即可。

include包含

include$_GET[1]?>&1=php://filter/convert.base64-encode/resource=flag.php
include函数传入的参数不能执行系统命令,需要使用伪协议


web之命令执行(持续更新)
http://example.com/2024/04/13/学习文章/命令执行/
作者
orange
发布于
2024年4月13日
许可协议