返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >BUUCTF 之 代码审计知识点总结
  • 799
分享到

BUUCTF 之 代码审计知识点总结

php安全web安全 2023-09-07 11:09:26 799人浏览 安东尼
摘要

[HCTF 2018]WarmUp isset($a)判断a是否声明(有值) is_string($b)判断b是否是字符串 in_array($c,$d)判断c是否在b数组里有。 mb_subst&#

[HCTF 2018]WarmUp

  1. isset($a)判断a是否声明(有值)
    is_string($b)判断b是否是字符串
    in_array($c,$d)判断c是否在b数组里有。
    mb_substr($e,x,y)把字符串从x开始截取y位。(第一位是0)
    mb_strpos($f,$g)找g在f里出现的第一次位置,没有则返回false。(第一位是0)

[ZJCTF 2019]NiZhuanSiWei

伪协议: 在这里插入图片描述
具体内容可见链接: https://www.cnblogs.com/zzjdbk/p/13030717.html

  1. 注意使用伪协议时几乎都得用base64编码,别怕麻烦。
  2. 没有源码时可以利用PHP://filter读取源码。
  3. 向网站文件写内容用data协议。
  4. 注意当页面由于传参变化时,要注意读取源代码或者抓包,本题就是在最后把flag放在源代码注释中。

[极客大挑战 2019]php

  1. __sleep:在序列化时执行,处理序列化的字符串。
    __wakeup:在反序列化时会先执行,来充填反序列化对象。 绕过方法他的方法:当反序列化字符串中给出的属性个数大于实际应该的参数个数,就会被跳过。
  2. 反序列化字符串:
    O:类名长度:“类名”:属性个数:{s:属性名1长度:“%00类名%00属性名1”;s:5:“admin”;s:属性名2长度:“%00类名%00属性名2”;i:100;}
    其中s表示字符串,i表示整数,O表示对象,s后面需要跟字符串长度和名称,i后面只有值。
  3. 爆破目录:经常性失效,需要多试几次才行。

[ACTF2020 新生赛]BackupFile

  1. PHP有弱类型比较,分两种等号,
    其中==在比较时候是先将字符串类型转化为相同,再比较;===是先判断两种字符串的类型是否相等,再比较
  2. 在==转换字符串的过程中,遵循如下原则:
    当字符串开始部分不存在数值的时候,会将该字符串转换为数值 0。如var_dump(‘abc’ == 0),结果为 True
    当字符串开始部分有合法数值的时候,会将该字符串转换为合法数值。如var_dump(‘123abc’ == 123),结果为True
    当字符串中包含 e 或者 E 时,会将其识别为科学计数法。如var_dump(‘0e12asda’ == 0),结果为True

[极客大挑战 2019]BuyFlag

  1. 需要你是XX身份才能访问,往往是越权漏洞,改cookie的值试试。
  2. 来自XX网址往往是改文件头XFF。
  3. POST传参可以在拦截包的Params里新增一项。
  4. 限制数字长度,可以利用科学计数法e来表示数字。

[RoarCTF 2019]Easy Calc

  1. PHP在接收get传参时对?后面加空格或者+是无所谓的,就是说: /?num=a和/? num=a和/?+num=a都一样能接受,但是过滤WAF可能就会判定后面两种不是num传参,不予拦截。
  2. 等价函数:
    scandir()函数返回指定目录中的文件和目录的数组。
    scandir(/)相当于ls /
    var_dump()相当于echo
    file_get_contents(/flag.php)读取文件内容。
    上述函数可以利用使其绕过WAF(可能拦截ls echo cat等)
    对于拦截"/“等符号时,可以利用chr(47)来绕过,其中47是”/"的ASCII值。

[HCTF 2018]admin

  1. 对于有很多链接的网站,要尽量把每一个链接都看一下源代码,有可能会发现线索。
  2. flask的session会有编码,需要用脚本flask_session_cookie_manager来解密,但是偶尔会有解不开的情况,可以尝试使用decode.py来解(本地的flask_session_cookie_manager文件夹里已经存了,使用说明也在文件夹里)decode.py来自于
    Https://blog.csdn.net/u011250160/article/details/121923930 。
  3. 如果session在编码前做了异或字符串处理,就是加盐,在encode时利用-s加盐即可。
  4. 改页面cookie或者seesion直接刷新抓包即可,不能重新登陆抓包,试过了没用。刷新改即可,当然插件也可以。

[BJDCTF2020]Easy MD5

  1. 开局源代码没东西可以抓包,没准头里有东西。
  2. sql用md5了的时候,可以找md5之后是’or’ 的,这样就可以绕过。
  3. php的md5在传参为数组时返回为空,所以如果判断相等,就把俩传参都搞成数组,返回都为空,就相等了。
  4. 传参数组可以是:a[]=1,这样就是传参数组(或者a[0]=1)。
    如果是弱等于,可以碰撞前两个为0e的,这时候二者字符串都被判断为科学计数法的0。

[网鼎杯 2020 青龙组]AreUSerialz

  1. 序列化的对象中的对象名如果是a,变量名如果是b。
    对于public,序列化字符串中直接使用b作为变量名;
    对于private,使用\00a\00作为变量名,其中\00表示ascii为0的字符;
    对于protected,使用\00*\00b作为变量名。

    但是对于php7.1以上版本,对此不敏感,所以只需要传public即可,即直接使用变量名对于此三种类型都能识别。

  2. 序列化中的字符串类型如果用大写的S,那么对于后面的字符串可以使用十六进制表示,以此来防止输入\00被当做00截断,或者当网页拦截ascii码为0的字符串时使用。

来源地址:https://blog.csdn.net/qq_49833809/article/details/127839407

--结束END--

本文标题: BUUCTF 之 代码审计知识点总结

本文链接: https://lsjlt.com/news/398031.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • BUUCTF 之 代码审计知识点总结
    [HCTF 2018]WarmUp isset($a)判断a是否声明(有值) is_string($b)判断b是否是字符串 in_array($c,$d)判断c是否在b数组里有。 mb_subst&#...
    99+
    2023-09-07
    php 安全 web安全
  • MySQL知识点总结
    MySQL知识点总结 一、      MySQL常用命令 启动MySQL服务:service mysqld start 或 systemctl start mysqld.service 停止MySQL服务:service mys...
    99+
    2019-07-01
    MySQL知识点总结
  • MongoDB知识点总结
    一:MongoDB 概述    一、NoSQL 简介        1. 概念:NoSQL(Not Only SQL的缩写),指的是非关系型数据库,是对不同于传统的关系型数据库的数据库管理系统的统称。用于超大规模数据的存储,数据存...
    99+
    2019-04-03
    MongoDB知识点总结
  • Python知识点总结
    本篇内容介绍了“Python知识点总结”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. 为什么要使用描述符?假想你正在给学校写一个成绩管理...
    99+
    2023-06-16
  • java基础之字符串编码知识点总结
    目录一、为什么要编码二、如何“翻译”三、Java 中需要编码的场景3.1 I/O 操作中存在的编码3.2 内存中操作中的编码四、Java 中如何编解码4.1 按照 ISO-8859-...
    99+
    2024-04-02
  • java基础之泛型知识点总结
    目录一、什么是泛型?为什么要使用泛型? 二、泛型的特性是什么?三、泛型的使用方式 四、Java中的泛型通配符一、什么是泛型?为什么要使用泛型? 泛型,即“参数化...
    99+
    2024-04-02
  • js知识点总结之getComputedStyle的用法
    getComputedStyle()这个方法来获取元素当前的样式 这个方法是window的方法,可以直接使用 需要两个参数 第一个:要获取样式的元素第二个:可以传递一个伪元素,一般都...
    99+
    2022-11-13
    getcomputedStyle用法 window.getComputedStyle() 方法
  • 总结DOM的知识点
    这篇文章主要介绍“总结DOM的知识点”,在日常操作中,相信很多人在总结DOM的知识点问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”总结DOM的知识点”的疑惑有所帮助!接下来,...
    99+
    2024-04-02
  • Spring源码解析之BeanPostProcessor知识总结
    一、简介 BeanPostProcessor是Spring IOC容器给我们提供的一个扩展接口。 实例化Bean做前置处理、后置处理 二、接口定义 @Component publ...
    99+
    2024-04-02
  • Java代码审计的一些基础知识你知道吗
    目录JSP生命周期详细过程:War包结构JAVA 内置对象JAVA 中的危险函数名词概念总结JSP生命周期 关键词:Web服务器,JSP容器,JVM(Java虚拟机),servlet...
    99+
    2024-04-02
  • 数据库知识点总结 -
    目录数据库介绍SQLSQL定义SQL的分类:DDL(数据定义语言:操作数据库和表)DML(数据操纵语言:操作数据(增删改))DQL(查询表中的数据记录)(重点)视图事务 数据库介绍 数据库DataBase: 用于存储和管理数...
    99+
    2021-05-02
    数据库知识点总结 -
  • mysql常用知识点总结
    本篇文章给大家主要讲的是关于mysql常用知识点总结的内容,感兴趣的话就一起来看看这篇文章吧,相信看完mysql常用知识点总结对大家多少有点参考价值吧。       ...
    99+
    2024-04-02
  • mysql知识点简单总结
    1.操作数据库语句  1.1 显示所有的数据:show databases;  1.2 创建数据库:create database databasename;&nbs...
    99+
    2024-04-02
  • Oracle基础知识点总结
    这篇文章主要讲解了“Oracle基础知识点总结”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Oracle基础知识点总结”吧!首先上一张Oracle体系结构图...
    99+
    2024-04-02
  • Elasticsearch入门知识点总结
    这篇文章主要介绍“Elasticsearch入门知识点总结”,在日常操作中,相信很多人在Elasticsearch入门知识点总结问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”...
    99+
    2024-04-02
  • MySQL MVCC的知识点总结
    本篇内容介绍了“MySQL MVCC的知识点总结”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1).Mul...
    99+
    2024-04-02
  • java中Supplier知识点总结
    1、说明 这个接口是提供者的意思,只有一个抽象的get,没有默认的方法和静态的方法,导入一个泛T,get方法,返回一个泛T。 supplier也用于创建对象,但与传统的创建对象语法不...
    99+
    2024-04-02
  • HTML相关知识点总结
    目录简介HTML文档和网页的关系呢?HTML的标签样子?HTML基本概念标签元素属性注释编码规则HTML常用元素标题段落链接跳转页面:跳转锚点图片列表有序列表无序列表定义列表表格块表...
    99+
    2024-04-02
  • Python基本知识点总结
    Python注释 python中单行注释采用 # 开头。 python 中多行注释使用三个单引号(''')或三个双引号(""")...
    99+
    2024-04-02
  • 总结数据库知识点
    本篇内容主要讲解“总结数据库知识点”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“总结数据库知识点”吧!存储引擎InnoDBInnoDB 是 MySQL 默认的事务型存储引擎,只要在需要它不支持的...
    99+
    2023-06-16
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作