代码审计-strpos数组绕过】的更多相关文章

<?php $flag = "flag"; if (isset ($_GET['ctf'])) { if (@ereg ("^[1-9]+$", $_GET['ctf']) === FALSE) echo '必须输入数字才行'; else if (strpos ($_GET['ctf'], '#biubiubiu') !== FALSE) die('Flag: '.$flag); else echo '骚年,继续努力吧啊~'; } ?> ereg()函数…
0x00.感悟      写完这道题,我感觉到了扫源码的重要性.暑假复现的那些CVE,有的就是任意文件读取,有的是任意命令执行,这些应该都是通过代码审计,得到的漏洞.也就和我们的CTF差不多了.     但是我们扫目录,字典是个大问题,我目前还没有搞懂为什么有些文件,只能被一些特定的软件扫到.比如这道题,这个dirsearch,连www.zip这样的变态目录都能扫出来,为什么扫不出update.php这样极其常见的目录.而且题目的源码,就只能用dirsearch扫到,dirb和nikto就不行.…
简介  原题复现:  考察知识点:反序列化.数组绕过  线上平台:https://buuoj.cn(北京联合大学公开的CTF平台) 榆林学院内可使用信安协会内部的CTF训练平台找到此题 漏洞学习 数组绕过 1.1 url传递数组当我们要向服务器传递数组时,我们可以通过 http://127.0.0.1/index.php?a[]=hello&a[]=world 来传递,这样,在后端, $a = $_GET['a']; 就可以接收到 $a[0]="hello", $a[1]=&q…
简介  原题复现:https://github.com/CTFTraining/zjctf_2019_final_web_nizhuansiwei/  考察知识点:反序列化.PHP伪协议.数组绕过  线上平台:https://buuoj.cn(北京联合大学公开的CTF平台) 榆林学院内可使用信安协会内部的CTF训练平台找到此题 过程 打开页面看到源码先审计 大致分析flag在flag.php里面 先想办法绕过这些限制到达 文件包含那一块 绕过file_get_contents() 将welcom…
一开始我先随便输入了几个账号名字进行测试,发现当输入的账号名为admin时会发生报错 经过测试果然是一个注入点 当拿到admin密码后发现根本没用,没办法另寻他路 审查元素时发现提示index.txt,原来又是一个代码审计,这里把关键代码贴一下 <?php if($_POST[user] && $_POST[pass]) { $conn = mysql_connect("********, "*****", "********");…
第一题:extract变量覆盖 知识简介 extract()函数语法: extract(array,extract_rules,prefix) 参数 描述 array必需. 规定要使用的数组. extract_rules可选. extract() 函数将检查每个键名是否为合法的变量名,同时也检查和符号表中已存在的变量名是否冲突.对不合法和冲突的键名的处理将根据此参数决定. 可能的值: EXTR_OVERWRITE - 默认.如果有冲突,则覆盖已有的变量. EXTR_SKIP - 如果有冲突,不覆…
目录 变量覆盖 1x01.extract 变量覆盖 定义和用法 语法 漏洞产生:使用了默认设置 攻击方法:制造变量名冲突,对于需要相等的值可以同时置空 修复:设定一个冲突时的处理规则 例题: 1x02 $$导致的变量覆盖问题 1x03 全局变量覆盖 1x04 parse_str()变量覆盖 1x05 import_request_variables()变量覆盖 弱类型 2x00 strcmp 定义和用法 注释 提示 语法 漏洞 例题 2x01 md5 定义和用法 语法 漏洞 例题 例题2 2x0…
extract变量覆盖: 相关函数: extract()函数:从数组中将变量导入到当前的符号表.把数组键名作为变量名,数组的键值作为变量值.但是当变量中有同名的元素时会默认覆盖掉之前的变量值. trim():去除字符串两边的空白符或其他预定义字符. file_get_contents():将整个文件内容读入一个字符串.注意该函数与php://input伪协议可以读取$_POST[]的值 漏洞产生原因: extract()函数当只有一个参数时,默认的第二参数是:EXTR_OVERWRITE,如果有…
0x01.extract变量覆盖 代码: <?php$flag='xxx';extract($_GET);if(isset($shiyan)){$content=trim(file_get_contents($flag));if($shiyan==$content){echo'flag{xxx}';}else{echo'Oh.no';}}?> GET型传入参数,如果变量shiyan=content,则输出答案 extract()函数用法: extract() 函数从数组中将变量导入到当前的符号…
14 intval函数四舍五入 <?php if($_GET[id]) { mysql_connect(SAE_MYSQL_HOST_M . ':' . SAE_MYSQL_PORT,SAE_MYSQL_USER,SAE_MYSQL_PASS); mysql_select_db(SAE_MYSQL_DB); $id = intval($_GET[id]); $query = @mysql_fetch_array(mysql_query("select content from ctf2 w…