.user.ini的利用
.user.ini 我们先在php手册上看一下对.user.ini的介绍: 也就是说我们可以在.user.ini中设置php.ini中PHP_INI_PERDIR 和 PHP_INI_USER 模式的 INI 设置,而且只要是在使用 CGI/FastCGI...
docker构建web环境
先简单理解 docker 的使用过程,它分为镜像构建与容器启动。 镜像构建:即创建一个镜像,它包含安装运行所需的环境、程序代码等。这个创建过程就是使用 dockerfile 来完成的。 容器启动:容器最终运行起来是通过拉取构建好的镜像,通过一系列运行指令(如端口映射、外部数据挂载、环境变量等)来启动服务的。针对单个容器,这可以通过 docker run 来运行。 而如果涉及多个容器的运行(如服务编排)就可以通过 docker-compose 来实现,它可以轻松的将多个容器作为 service 来运行(当然也可仅运行其中的某个),并且提供了 scale (服务扩容) 的功能。 简单总结: 1.dockerfile: 构建镜像; 2.docker run: 启动容器; 3.docker-compose: 启动服务; dockerfile的作用是从无到有的构建镜像。它包含安装运行所需的环境、程序代码等。这个创建过程就是使用 dockerfile 来完成的。Dockerfile - 为 docker build 命令准备的,用于建立一个独立的 image ,在...
强网杯2019
随便注 堆叠注入 输入1' or '1有返回,输入'提示sql语法错误,输入select返回了过滤规则 1preg_match("/select|update|delete|drop|insert|where|\./i",$inject); 12345678910111213141516171819202122232425262728293031321';show databases;#array(1) { [0]=> string(11) "ctftraining"}array(1) { [0]=> string(9) "supersqli"}1';use supersqli;show tables;#array(1) { [0]=> string(16) "1919810931114514"}array(1) { [0]=> string(5)...
PHP反序列化及扩展
phar扩展
PHP开启交互模式
php -a代表开启交互模式 需要注意的是,Interactive Shell 和 Interactive Mode 并不是一个东西,尽管名称和功能都很相似。 如果你输入php -a,得到的回应是‘Interactive Shell’并跟随着php>提示符,那你使用的就是交互式shell。如果你得到的回应是Interactive mode enabled,说明你的PHP并不支持交互式shell,上面介绍的用法也不实用于你。 但也不用担心,Interactive mode(交互模式)也可以在命令行窗口里执行PHP代码,只是代码的执行方式有些区别。在PHP交互模式(Interactive mode)里,你在命令行窗口里输入PHP代码,代码不会立即执行,当你输入了所有PHP代码后,输入Ctrl-Z(windows里),或输入Ctrl-D(linux里),你输入的所有代码将会一次执行完成并输出结果。 在PHP交互模式(Interactive...
PHP参数字符串解析特性
利用PHP的字符串解析特性Bypass 我们知道PHP将查询字符串(在URL或正文中)转换为内部GET或的关联数组_GET或的关联数组GET或的关联数组_POST。例如:/?foo=bar变成Array([foo] => “bar”)。值得注意的是,查询字符串在解析的过程中会将某些字符删除或用下划线代替。例如,/?%20news[id%00=42会转换为Array([news_id] => 42)。如果一个IDS/IPS或WAF中有一条规则是当news_id参数的值是一个非数字的值则拦截,那么我们就可以用以下语句绕过: 1/news.php?%20news[id%00=42"+AND+1=0-- 上述PHP语句的参数%20news[id%00的值将存储到$_GET[“news_id”]中。 PHP需要将所有参数转换为有效的变量名,因此在解析查询字符串时,它会做两件事: 1.删除空白符 2.将某些字符转换为下划线(包括空格) 例如: User input Decoded...
RoarCTF2019
Easy Calc cacl.php 123456789101112131415<?phperror_reporting(0);if(!isset($_GET['num'])){ show_source(__FILE__);}else{ $str = $_GET['num']; $blacklist = [' ', '\t', '\r', '\n','\'', '"', '`', '\[', '\]','\$','\\','\^']; foreach ($blacklist as $blackitem) { if...
SUCTF2019
EasySQL 1、堆叠注入 2、set sql_mode=PIPES_AS_CONCAT;将||视为字符串的连接操作符而非或运算符 3、没有过滤*的时候可以直接注入* 测试过滤词 被过滤的词有: 1union prepare && or sleep if from... 可用的词: 1select set database mid ascii || , ^ ( ) # show ping 12; benchmark ... 输入1’没什么反应,输入1返回1,猜测是堆叠注入,输入1;select 123;返回Array ( [0] => 1 ) Array ( [0] => 123 ) ,嗯~,输入1;select benchmark(50000000,7^5^8);存在延迟。后续测试发现有长度限制,为40。 12345678910111;select database();Array ( [0] => 1 ) Array ( [0] => ctf ) 1;use ctf;show tables;Array ( [0]...
2018护网杯
这个tornado是一个python的模板,在web使用的时候给出了四个文件,可以访问,从提示中和url中可以看出,访问需要文件名+文件签名(长度为32位,计算方式为md5(cookie_secret + md5(filename))); flag文件名题目已给出 /fllllllllllag ...
HCTF2018
WarmUp 题目原型是phpmyadmin4.8.1的任意文件包含漏洞 题目源码source.php 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 <?php highlight_file(__FILE__); class emmm { public static function checkFile(&$page) { $whitelist = ["source"=>"source.php","hint"=>"hint.php"]; if (! isset($page) || !is_string($page)) { echo "you can't see...


