CTF中常见的 PHP 弱类型漏洞总结】的更多相关文章

作者:ZERO    所属团队:Arctic Shell 参考资料: http://archimesan.me/2017/12/21/php%E5%BC%B1%E7%B1%BB%E5%9E%8B%E6%BC%8F%E6%B4%9E/ https://www.cnblogs.com/Mrsm1th/p/6745532.html https://blog.spoock.com/2016/06/25/weakly-typed-security/ 0x1::弱类型与强类型 通常语言有强类型和弱类型两种,…
强类型和弱类型的变量都有两个属性:类型和值. 强类型的变量类型是不能改变的,弱类型的变量类型是随需改变的,这是强弱的真正含义. 我们在编写c#代码时,变量类型是明确的,不可更改的,如string就是string,int就是int,这就是强类型,好处: 1.能够享受代码提示功能 2.能够获得重构工具的支持 3.能够在编译期发现更多错误 弱类型:Object,在C#中Object是所有类型的基类,任何对象都可以使用Object来引用.可是一旦转化成Object的变量之后,代码提示便消失了:即使我们“…
简介 PHP在使用双等号(==)判断的时候,不会严格检验传入的变量类型,同时在执行过程中可以将变量自由地进行转换类型.由于弱数据类型的特点,在使用双等号和一些函数时,会造成一定的安全隐患 eg: <?php var_dump("admin"==0); //true var_dump("1admin"==1); //true var_dump("admin1"==1); //false var_dump("admin1"=…
目录00x1 .ng源码泄露 00x2  git源码泄露 00x3 .DS_Store文件泄漏 00x4 网站备份压缩文件 00x5 SVN导致文件泄露 00x6 WEB-INF/web.xml泄露 00x7 CVS泄漏 工具推荐 参考 0x01 .hg源码泄漏 漏洞成因: hg init的时候会生成.hg <span class="pln">e</span><span class="pun">.</span><…
0x00.综合 网站中包含大多编码的解码. http://web2hack.org/xssee/ https://www.sojson.com/ http://web.chacuo.net/ 0x01.文字倒序排列 http://www.qqxiuzi.cn/zh/daoxu/ 0x02.cmd5解密 http://www.cmd5.com/ http://pmd5.com/ http://tool.chinaz.com/Tools/MD5.aspx http://md5jiami.51240.…
前言 参考,我们任课老师的WORD和PPT,结合自己的理解,在结合网上文章的理解. 一.BASE64编码 BASE64编码中,特征和所拥有的字符字母:A-Z a-z;数字:0-9;符号:+ / ,然后末尾经常有一个"="或者两个"==". 原理,先把需要加密的字符串每个字符转换成ASCII码,然后ASCII码转换成二进制为8位二进制数字表示,然后在以六位二进制为一组转十进制,最后查找对应的BASE64对照表即可. ASCII表,常用的无非就是大写字母和小写字母,大写…
1.代码审计发现 这里没有用escape_string,因此存在注入. function show($username){ global $conn; $sql = "select role from `user` where username ='".$username."'"; $res = $conn ->query($sql); if($res->num_rows>0){ echo "$username is ".$re…
今天一早起来,就要去做早操,心里苦呀! 但是不影响我为未来的学弟学妹整理资料的心情呀!希望我的一些拙见能够帮助到学弟学妹! 永远爱你们的 ---- 新宝宝 ASCII编码 ASCII 码使用指定的7 位或8 位二进制数组合来表示128 或256 种可能的字符.标准ASCII 码也叫基础ASCII码,使用7 位二进制数(剩下的1位二进制为0)来表示所有的大写和小写字母,数字0 到9.标点符号, 以及在美式英语中使用的特殊控制字符. 其中: 0-31及127(共33个)是控制字符或通信专用字符(其余…
jpg/jpeg FF D8 FF E0 或 FF D8 FF E1 或 FF D8 FF E8 png 89 50 4E 47 bmp 42 4D 36 5D gif 47 49 46 38 zip 50 4B 03 04 rar 52 61 72 21 mp3 49 44 33 03 wav 52 49 46 46…
成因分析: == 在进行比较的时候,会先将两边的变量类型转化成相同的,再进行比较 0e在比较的时候会将其视作为科学计数法,所以无论0e后面是什么,0的多少次方还是0. 因此CTF比赛中需要用到弱类型HASH比较缺陷最明显的标志便是管理员密码MD5之后的值是以0e开头 利用方法: 由漏洞成因我们可以分析出: 只要让我们输入的密码在经过函数加密之后是以0e开头即可 附上一部分md5加密之后是以0e开头的值: ej0D ek06 el08 eo0n ey0M ey0O ez0s e006 e10l e…
鉴于目前PHP是世界上最好的语言,PHP本身的问题也可以算作是web安全的一个方面.在PHP中的特性就是弱类型,以及内置函数对于传入参数的松散处理.本篇文章主要就是记录我在做攻防平台上面遇到的PHP的函数中存在的问题,以及PHP的弱类型所带来的问题. PHP弱类型简介 在PHP中,可以进行一下的操作. $param = 1;$param = array();$param = "stringg"; 弱类型的语言对变量的数据类型没有限制,你可以在任何地时候将变量赋值给任意的其他类型的变量,…
扫描目录,发现.git泄露: 提取.git泄露的源码,得到许多文件: 网站这里: 这就要审计一下代码,找找漏洞了. 经过一番审计,猜数字对应的函数在api.php中: 我们要绕过这个$win_numbers,$win_numbers我们是无法控制的,毕竟函数在人家服务器上运行,我们只能输入数字,那么就只能在输入上做文章了,89行判断相等的数字个数时,用的是==,这不就是个弱类型漏洞吗,bool类型的true是可以和任何数据弱类型相等的,于是输入,抓包改包来刷钱: 刷钱就是爽...钱够之后去买fl…
1. 布尔反序列化 $unserialize_str = $_POST['password']; $data_unserialize = unserialize($unserialize_str); 3 if($data_unserialize['user']=='???'&&$data_unserialize['pass']=='???') 4 { print_r($flag); } 反序列化后得到的值的user和pass都为不知道的,但是这里是两个==,根据php弱类型,bool值和任…
其实不是很爱搞Linux,但是因为CTF必须要接触一些,漏洞利用方面也是因为CTF基本都是linux的pwn题目. 基本的题目分类,我认为就下面这三种,这也是常见的类型. 下面就分类来说说 0x0.栈溢出 栈溢出一般都是CTF中,PWN类别的第一题.基本思想就是覆盖栈中返回地址啦,这个谁都知道.这种题一定会有NX保护,怎么跳是问题.常见的是leak出一个函数的got表,leak方法题中一定会给出的,然后看看有没有给出libc.如果有libc就能算system()和/libc/sh的地址了,直接溢…
智能手机的存在让网民的生活从PC端开始往移动端转向,现在网民的日常生活需求基本上一部手机就能解决.外卖,办公,社交,银行转账等等都能通过移动端App实现.那么随之也带来了很多信息安全问题,大量的用户信息储存在移动App中,由于移动App的开发并不健全,由移动App引发的用户信息泄露事件也层出不穷. 移动App中的Web型漏洞主要分为以下几块: 1.SQL注入漏洞 这是一个不能再常见的漏洞类型了,由于App的特性,开发人员认为使用App时无法获取到详细URL等信息,所以忽视了App防注入的编写.…
1.安全攻击 1.SQL.HTML.JS.OS命令注入 2.XSS跨站脚本攻击,利用站内信任的用户,在web页面插入恶意script代码 3.CSRF跨站请求伪造,通过伪装来自信任用户的请求来利用受信任的网站. 4.目录遍历漏洞 5.参数篡改 6.会话劫持 2.防止攻击的措施总结 1) 对用户输入的数据进行全面安全检查或过滤,尤其注意检查是否包含SQL 或XSS特殊字符. 验证用户输入的数据,包括值.类型.范围等等,用验证控件进行验证 RequiredFieldValidator RangeVa…
一.SQL注入漏洞 SQL注入攻击(SQL Injection),简称注入攻击.SQL注入,被广泛用于非法获取网站控制权,是发生在应用程序的数据库层上的安全漏洞.在设计程序,忽略了对输入字符串中夹带的SQL指令的检查,被数据库误认为是正常的SQL指令而运行,从而使数据库受到攻击,可能导致数据被窃取.更改.删除,以及进一步导致网站被嵌入恶意代码.被植入后门程序等危害. 通常情况下,SQL注入的位置包括: (1)表单提交,主要是POST请求,也包括GET请求: (2)URL参数提交,主要为GET请求…
PHP开发中常见的漏洞及防范 对于PHP的漏洞,目前常见的漏洞有五种.分别是Session文件漏洞.SQL注入漏洞.脚本命令执行漏洞.全局变量漏洞和文件漏洞.这里分别对这些漏洞进行简要的介绍和防范. 1.session文件漏洞 Session攻击是黑客最常用到的攻击手段之一.当一个用户访问某一个网站时,为了免客户每进人一个页面都要输人账号和密码,PHP设置了Session和Cookie用于方便用户的使用和访向. 防范: 从前面的分析可以知道,Session攻击最常见的就是会话劫持,也就是黑客通过…
Web安全测试中常见逻辑漏洞解析(实战篇) 简要: 越权漏洞是比较常见的漏洞类型,越权漏洞可以理解为,一个正常的用户A通常只能够对自己的一些信息进行增删改查,但是由于程序员的一时疏忽,对信息进行增删改查的时候没有进行一个判断,判断所需要操作的信息是否属于对应的用户,导致用户A可以操作其他人的信息.​ 逻辑漏洞挖掘一直是安全测试中“经久不衰”的话题.相比SQL注入.XSS漏洞等传统安全漏洞,现在的攻击者更倾向于利用业务逻辑层的应用安全问题,这类问题往往危害巨大,可能造成了企业的资产损失和名誉受损,…
简介  原题复现:  考察知识点:PHP弱类型.  线上平台:https://www.ichunqiu.com/battalion(i春秋 CTF平台) 过程 看源码发现这个 vim泄露  下方都试了一遍 .index.php.swp是的 下载源码即可 .index.php.swpindex.php.swp --vim文件泄露index.php.bakindex.php~ 要通过vim编辑器打开   vim -r index.php.swp <html> <head> <ti…
上一篇给大家介绍了SpringMVC中常见的客户端数据输入点,这一篇给大家讲解下java中常见漏洞的防御方法. 0x01.sql注入 下面我们就用利用SpringMVC自带的数据库操作类jdbcTemplate举例.比如下面Dao中有如下的两个函数. 函数save使用的是绑定变量的形式很好的防止了sql注入,而queryForInt_函数接收id参数直接对sql语句进行了拼接,测试时出现sql注入. public static void save(String username,String p…
一. Java中常见的异常类 异常类 说明 ClassCastException 类型准换异常 ClassNotFoundException 未找到相应类异常 ArithmeticException 算数异常 ArrayIndexOutOfBoundsException 数组下标越界异常 ArrayStoreException 数组中包含不兼容的值抛出的异常 SQLException 操作数据库异常类 NullPointerException 空指针异常 NoSuchFieldException…
1.SyntaxError(语法错误) 解析代码时发生的语法错误 var 1a; //Uncaught SyntaxError: Invalid or unexpected token 变量名错误 console.log 'hello'); //Uncaught SyntaxError: Unexpected string 缺少括号 2.ReferenceError(引用错误) console.log(a); //Uncaught ReferenceError: a is not defined…
MySQL 中常见的时间类型有三种 DATE, DATETIME 和 TIMESTAMP,其中 DATE 类型用于表示日期,但是不会包含时间,格式为 YYYY-MM-DD,而 DATETIME 和 TIMESTAMP 用于表示日期和时间,常见的格式为 YYYY-MM-DD HH:MM:SS,也可以带 6 位小数来表示微秒.不同于 DATETIME,TIMESTAMP 支持的时间范围从 1970-01-01 00:00:01.000000 到 2038-01-19 03:14:07.999999,…
前几天写一个js的时候遇到一个非常诡异的事情,这个问题是这样的,我要获取一个页面的DOM元素的val值,判断这个值是否比某个变量大,这个需求原先数字最大也就是10,现在要改了,可能会更多,这个时候我发现比较大小的判断就出了问题: 代码粘出来: // js弱类型导致的诡异现象,11 > 9 false function downtest(id){// 现象是当val取到的元素val值是11的时候,11>9结果是false // 当前点击下一题的是第几题, var val=$("#&qu…
0x01 前言 PHP 是一门弱类型语言,不必向 PHP 声明该变量的数据类型,PHP 会根据变量的值,自动把变量转换为正确的数据类型. 弱类型比较,是一个比较蛋疼的问题,如左侧为字符串,右侧为一个整数,只不过左侧与右侧内容完全相等. <?php var_dump(null ==false); //bool(true) var_dump('aa'==0); //bool(true) ?> 0x02 Magic Hash PHP在处理哈希字符串时,会利用”!=”或”==”来对哈希值进行比较,在进…
漏洞描述 FTP 弱口令或匿名登录漏洞,一般指使用 FTP 的用户启用了匿名登录功能,或系统口令的长度太短.复杂度不够.仅包含数字.或仅包含字母等,容易被黑客攻击,发生恶意文件上传或更严重的入侵行为. 漏洞危害 黑客利用弱口令或匿名登录漏洞直接登录 FTP 服务,上传恶意文件,从而获取系统权限,并可能造成数据泄露. 加固方案 不同 FTP 服务软件可能有不同的防护程序,本修复方案以 Windows server 2008 中自带的 FTP 服务和 Linux 中的vsftpd服务为例,您可参考以…
1.if(eregi("hackerDJ",$_GET[id])) {   //eregi字符串对比 echo("<p>not allowed!</p>"); exit(); 2.isset 判断变量是否定义过 3.比较符 $a==$b   松散比较 ===      完全等于 =        大于等于 !=       如果类型转换后$a不等于$b,Ture !==      不完全等于,如果$a不等于$b或者它们类型不同,Ture 当p…
0x01 前言 最近CTF比赛,不止一次的出了php弱类型的题目,借此想总结一下关于php弱类型以及绕过方式 0x02 知识介绍 php中有两种比较的符号 == 与 === <?php $a = $b ; $a===$b ; ?> === 在进行比较的时候,会先判断两种字符串的类型是否相等,再比较 == 在进行比较的时候,会先将字符串类型转化成相同,再比较 如果比较一个数字和字符串或者比较涉及到数字内容的字符串,则字符串会被转换成数值并且比较按照数值来进行 这里明确了说如果一个数值和字符串进行…
0x01 前言 php是世界上最好的语言,所以php自身的安全问题也是web安全的一个方面.由于其自身弱类型语言的特性以及内置函数对于传入参数的松散处理,所以会带来很多的问题,这里将进行简要介绍. 弱类型语言对变量的数据类型没有限制,可以在人很适合将变量赋值给人以的其他类型变量,同时变量可以转换成任意其他类型的数据. 0x02 基础知识 php中有两种比较的符号 == 与 === === 在进行比较的时候,会先判断两种字符串的类型是否相等,再比较 == 在进行比较的时候,会先将字符串类型转化成相…