PHP常用函数 strpos("1","2")在1中查找二并返回索引或false str_replace("1","2","3")在3中找1并替换为2 define()定义大小写不敏感的常量 !...>"; array() count() 函数用于返回数组的长度(元素数 htmlspecialchars() 函数把特殊字符转换为 HTML 实体 (通过 PHP trim() 函数)去除用户输入数据中不必要的字符...(多余的空格、制表符、换行) (通过 PHP stripslashes() 函数)删除用户输入数据中的反斜杠(\) 这些超全局变量是: $GLOBALS $_SERVER $_REQUEST...文件中已有的数据会被保留。文件指针在文件结尾开始。创建新文件,如果它不存在。x+创建新文件为读/写。返回 FALSE 和错误,如果文件已存在。...php中所有用户自定义的函数类和关键词(if else echo)不区分大小写但是变量大小写敏感php is_numeric()绕过 [判断是否为数字或数字字符串]用url编码中的空字符%00或%20进行绕过
PHP作为世界上最好的语言(然而人生苦短,我用python),在CTF web题中大放异彩,深受出题人的喜爱。...P神在对web题出题套路总结的第三条指出,出题人喜欢花式玩弄php的特性,包括弱类型、反序列化、\0截断、iconv截断。那么今天我们就php弱类型这一特性,总结一下相关出题的套路。...在Bugku WEB Write Up(二)《矛盾》这题中我们已经初步领略了PHP弱类型的魅力 也明白了为什么“test”会等于0 这里再举几个例子,加深一下理解 “1test”与1相比较时,会先将“...中md5()函数(sha1()函数类似)无法处理数组类型的数据从而可以绕过进行了讲解。...这篇文章对php弱类型在CTF比赛中的总结并不全面,如果大家在做题的过程遇到了新的套路和绕过姿势,欢迎一起交流哦~
Baby PHP 核心代码 打开后给了代码: <?php require_once('flag.php'); error_reporting(0); if(!...1'); } 过file_get_contents()用到了php伪协议。https://www.lorexxar.cn/2016/09/14/php-wei/。...只要通过php://input来读取POST里的数据就可以。 所以构造payload: ?msg=php://input post:Hello Challenge!...变量k2等于cc的原因就是PHP的恐龙特性。 于是构造payload: ?...flag.php');// POST:Hello Challenge!
php黑魔法,是以前做CTF时遇到并记录的,很适合在做CTF代码审计的时候翻翻看看。...php $password=$_GET['password']; if(strcmp('am0s',$password)){ echo 'false!'...当输入的两个值为不是字符串时就会产生不预期的返回值: 比如 这样一段代码中,输入password[]=1则返回success,成功绕过验证 三、当有两个is_numeric判断并用and连接时,and后面的...php $a=$_GET['a']; if ($a==0) { echo "1"; } if ($a) { echo "must"; } 七、接收参数中不能出现某一字符,但下面又必须使用可以php://...九、php5,3,29,这里可以直接用%0b绕过\s(空白字符)的匹配 十、既是0又是1的情况 $a==1&$test[$a]=t时 php精度(16以上)var_dump(9999999999999999999
$_POST['signature']变量可控,注入点就在这里: @$ret = $db->insert(array('userid','username','signature','mood'),'ctf_user_signature...":3:{s:4:"mood";i:`,(select conv(hex((select mid((select password from ctf_users where is_admin=1 ),1,8...后来在跟队友的讨论中想到了php的__call的魔术方法 : 也就是说,在调用一个类的不可访问的方法的时候,就会去调用__call方法。...这里的关键是在请求头,因为在HTTP协议中,当请求头中有相同的键值的时候,是一第个为准的。 比如这样的一个请求: POST /2.php?...(记得phithon师傅说过,php5.5.x版本有个bug,php.ini中的short_open_tag => Off是不起作用的) 所以一直拿不到shell,后来自己来看代码才发现: stripos
Java:Java里面没有类似于php中的eval函数可以直接将字符串转化为代码执行的函数。但是又反射机制,并且有各种基于反射机制的表达式引擎。...我们利用这一点可以绕过CTF中的一些函数。 ps: <?php $c = $_GET['c']; if(!...空格绕过 在Linux中,空格可以替换为以下几种: ${IFS} $IFS %20(space) %09(tab) $IFS$9 $IFS$1等等 cat<flag.php catflag.php...特殊变量绕过 我们可以使用Linux中的一些特殊变量进行绕过 ps: $* $@ $x ${X} //这里的x代表任意值 ca$*t flag.php ca$@t flag.php.../flag 字符串长度限制(ノ*・ω・)ノ 这个挺有意思的,在CTF中,题目可能会限制你输入的长度,如果说我们要绕过他的话,我们可以只用上文中的一些思想,我们直接看payload cat flag ->
通过序列化与反序列化我们可以很方便的在PHP中传递对象,下面小编给大家介绍反序列化的原理和一些常见的利用方式。...02 反序列化中常用的魔术函数 在利用对PHP反序列化进行利用时,经常需要通过反序列化中的魔术方法,检查方法里有无敏感操作来进行利用。...__sleep() #使用serialize时触发,serialize() 函数会检查类中是否存在一个魔术方法 __sleep()。...php error_reporting(0); include "flag.php"; $KEY = "D0g3!!!"...04 菜鸟进阶 如下所示,为本道题的源码,通过 __destruct 方法中 show_source(dirname (__FILE__).'/'.
PART ONE ---- PHP黑魔法 PHP语言的开发者在几乎所有内置函数以及基本结构中使用了很多松散的比较和转换,防止程序中的变量因为程序员的不规范而频繁的报错,然而这却带来了安全问题。...也正是因为这些PHP特性,使得它频繁出现在各类CTF题目中。 在开始今天的重点之前,我们先复习一下以前遇到过的一些PHP黑魔法。...0e的数都相等(==) 240610708、QNKCDZO这两个字符串,经过md5运算后,都为0e的形式,满足弱相等的条件 b) 数组的md5都相等(===) http://127.0.0.1/CTF...== FALSE password中要包含这个星星眼的表情符号 这些条件互相矛盾,可以说是脑洞很大了。但是在PHP灵感的黑魔法面前,这一切都可以实现。。。.../index.php 参考:WEB题附加信息获取方法 a) 查看页面源代码; b) 抓包查看数据包中是否有提示信息; c) 搜索未知页面、敏感文件等,可以借助一些扫描工具
,即Content-Length和Transfer-Encoding标头,请求走私主要与HTTP/1请求相关,但是支持HTTP/2的网站可能容易受到攻击,具体取决于其后端架构,本篇文章我们主要介绍一些CTF...Step 1:访问上面的链接启动演练靶场 Step 2:随后访问靶机地址会看到如下界面 简单尝试发现输入计算式会成功计算出结果,属实是一个计算器 随后抱着好奇心去查看了一下源代码,发现一个calc.php...,但是要想利用的关键点还是看如何去突破过滤 我们初步尝试发现传入数字时可以正常访问 当我们传入字符串时会发现这里会被直接给拦截,而我们的过滤中并没有针对我们此的过滤函数,结合之前我们查看网页源码看到的提示...-->"初步猜测是有WAF在作祟 接下来我们尝试一手请求走私是否存在,构造一个CL-CL: GET /calc.php?...deflate Accept-Language: zh-CN,zh;q=0.9 Content-Length:68 Content-Length:5 num=1 文末小结 本篇文章主要介绍了请求走私的CTF
(base64后的) payload (base64后的) secret 这个部分需要base64加密后的header和base64加密后的payload使用.连接组成的字符串,然后通过header中声明的加密方式进行加盐...0x01 、Node的JWT库的空加密缺陷 以下内容学习基于两道CTF题。...虎符CTF的WEB(easy_login) 该题开始是一个登录框,经过随意注册一个用户后,再进行登录后提示没有权限登录,这一点我们直接就可以猜测出是要求admin用户登录,然后我们在注册处利用BP抓包放包后可以看到有一串
,但在PHP 7中则不是。...> 在PHP 5中输出结果为: int(0) int(1) int(2) 但在PHP 7中输出结果为: int(0) int(0) int(0) 在PHP 7中,按照值进行循环时,foreach是对数组的复制操作...,在循环过程中对数组的修改不会影响循环行为,但在PHP 5中会有影响。...> 在PHP 7中输出结果为: int(0) int(1) int(2) 在PHP 5中输出结果为: int(0) int(2) 在PHP 7中按照引用循环的时候对数组的修改会影响循环,在PHP 5中则不会改变...> 在PHP 7中运行结果: int(0) int(1) int(2) 在PHP 5中运行结果: int(0) die() die()函数:输出一条信息,并退出当前脚本。
也有其他的比赛,一道题目解答的人越多那么你拿到的分数就越低。...目前国内还有工控形式的比赛,一套现实中的工控环境对他渗透,你来获得一个flag,之后ctf比赛类型也会越来越有趣。...、WEB 题型较多很常见的 CTF赛事: 1、DEFCON CTF :CTF赛事中的 “世界杯”,往年都是美国夺冠,去年是韩国的战队 2、XCTF全国联赛等 3、其他各种赛事 比赛前要多多练习,...用union找出库名: http://chinalover.sinaapp.com/SQL-GBK/index.php?...id=1%df’ union select 1,database()%23 再找表名,再根据表名找column 再找出可疑的· 其中有一个要注意的, 就是在查询ctf表中时, =ctf 是不行的,这时候可以用十六进制转码
world 利用系统已存在资源绕过 从已有的文件或者环境变量中获得相应的字符...hello world Linux 中已经存在的一些字符...sudo apt install hello-traditional reference 命令执行的一些绕过技巧 ctf
目标 获取Linux服务器根目录下的flag 代码 /*home.php*/ class home{ private $method; private $args; function...mysql_escape_string($v))); } } } $a=@$_POST['a']; @unserialize(base64_decode($a)); 分析 该PHP...该方法只允许执行类中的ping方法,并会将args的值作为ping方法host参数。 ping中存在可控参数$host,且调用了system函数,这里便可以作为一个利用点。...这里得到了构造payload的最终PHP脚本: class home{ private $method; private $args; } $a = new home...Tzo0OiJob21lIjoyOntzOjEyOiIAaG9tZQBtZXRob2QiO3M6NDoicGluZyI7czoxMDoiAGhvbWUAYXJncyI7YToxOntpOjA7czoyNDoiMTI3LjAuMC4xfGNhdCAJL2ZsYWcudHh0Ijt9fQ=="} url = 'http://localhost/common/home.php
PHP大法分值:20 来源: DUTCTF 难度:中 参与人数:8205人 Get Flag:2923人 答题人数:3042人 解题通过率:96% 注意备份文件 解题链接: http://ctf5.shiyanbar.com.../DUTCTF/index.php 原题链接:http://www.shiyanbar.com/ctf/54 【解题报告】 这是我入门Web开始写的第十一道题,这道题同样是道代码审计的题目,打开看下题面...这是一段php代码,我们可以看这个当传入的参数为hackerDJ,会显示flag的值,我们可以试试看 ? 不允许访问!!!我们重新审视下那段php代码,看到 ?
而DEFCON作为CTF赛制的发源地,DEFCON CTF也成为了目前全球最高技术水平和影响力的CTF竞赛,类似于CTF赛场中的“世界杯”。...MISC,也可以搞搞CRYPTO,但是PWN和REVERSE只有入门级水平了… 0x01 正文 基本情况介绍完了,下面开始进入正题,Python在CTF中的运用,首先Python是轻量级的脚本语言,并且有非常非常多的库...,import一下,直接调用就完事了,非常方便,首先要讲的就是通过Python脚本的编解码,这也是CTF比赛常用脚本中运用较多的功能,以前没会Python的时候什么编码解码全要找在线工具,听说一听说省赛的决赛是线下赛并且处于断网环境下...既然用在网络传输数据上,那么CTF中的WEB题也必然会遇到类似的问题,当然需要用到base64编解码,我们拿一个题来作为例子,地址:http://123.206.87.240:8002/web6/这是bugku...由于CTF中遇到需要Python脚本来解决的东西实在太多,加上本人才疏学浅(其实就是太菜了,文化人讲话要文绉绉的)无法将所有的类型都详细介绍,就靠以上几个简单的例子大致介绍了几种类型,以下再贴一个大佬用的实现各种操作的各种脚本
这里就谈谈winhex在CTF中的简单应用,欢迎各位大佬在评论区发表高端的操作技巧或者经验分享。...十六进制编辑 这个功能也是最常用的,ctf中经常会用来 查看十六进制数据和ascii码、 修改文件头、 修改图片IHDR等。...修改图片IHDR 文件头数据块IHDR(header chunk):它包含有PNG文件中存储的图像数据的基本信息,并要作为第一个数据块出现在PNG数据流中,而且一个PNG数据流中只能有一个文件头数据块。...这时候就可以去尝试修改IHDR中的宽高值。这里只要修改高度值为 027F ? 最终效果 ?...其他 CTF还会遇到一些几个文件合并成一个的,那种可以用 File_Analysis这个工具简单分析一下,然后打开winhex搜索文件头尾讲数据块复制出来另存实现文件分离。
中的RSA题型 CTF中的RSA题目一般是将flag进行加密,然后把密文(即c)和其他一些你解题需要的信息一起给你,你需要克服重重难关,去解密密文c,得到flag(即m),一般有下列题型 公钥加密文 这是...factordb 如果对一个大整数用一些特殊算法也分解不了的时候,我们可以在 http://factordb.com/ 中查询一下数据库,说不定就能找到其因子 其他一些题型 有些题会给你一些随机生成的大整数...k 指定公钥,用 —decrypt 指定密文文件就行了 2:题目给了你如(N,e,c)的十进制值,分别通过-N,-e,-c输入就行了 3:上面那种情况,如果题目是把这些参数都写入一个文本文件,如txt中,...考点在于大整数分解,脚本的关键代码在CTF-RSA-tool/lib/factor_N.py中的solve函数 选择输出 CTFer可以通过命令行选择是输出私钥还是输出解密后的密文,还是一起输出,不过非...--input(文本文档自动识别攻击) 的情况下,请至少选择 --private(打印得到的私钥) 或 --decrypt(解密一个加密的文件) 或 --decrypt_int(解密一个十进制数) 中的一个
从2013年开始,Facebook就在全世界举办CTF竞赛。现在,它将它的CTF平台源码放在Github上开源并向大众开放CTF平台。...现在,它将它的CTF平台源码放在Github上开源并向大众开放CTF平台。 ...而该平台开源已久,无奈个别小伙伴不会安装,在这里统一解答一次。...放到你下载的fbctf/src/language/ 目录下,之后安装FBCTF 其他说明:因为“lang_zh-cn.php”和“lang_zh-tw.php”在后台管理中都显示为“中文/中文”,但是有一个简体有一个繁体...,会造成不必要的麻烦,为避免这种情况,不需要繁体中文的用户可以删掉“lang_zh-tw.php”
代码整理为了C语言. 提取了核心的异或代码. unsigned char* encode(const unsigned char* enbuffer, in...
领取专属 10元无门槛券
手把手带您无忧上云