当前位置: 首页 > news >正文

【审计试题案例】

一、常见的题目类型

1、直接给出题目源码

请添加图片描述

2、源码泄露

请添加图片描述

二、HCTF 2018 Warmup

url二次编码绕过WAF

请添加图片描述

查看源代码发现有提示

请添加图片描述
source.php

请添加图片描述
hint.php

请添加图片描述
回到source.php,包含文件之前有三个校验
请添加图片描述
checkfile里先是一个白名单,传入的file就是里面的hint,判断是否为str类型和判断是否在白名单里
请添加图片描述
用mb_substr取问号之前的字符,取了字符后判断是否在白名单里,再进行url解码,再取问号之前的字符是否在白名单里
请添加图片描述
这个安全检查机制存在逻辑漏洞。它只检查了问号 ?之前的部分是否在白名单内。这意味着攻击者可以在白名单文件名后拼接路径遍历(…/) payload​ 来绕过检查。
请添加图片描述
漏洞原理:​

攻击者传入 file=source.php?/…/…/…/…/fffflllllaaaaagggg

checkFile函数会截取问号前的内容:source.php

source.php在白名单中,所以安全检查通过。

但是,最终执行 include语句时,PHP 包含的完整路径是 source.php?/…/…/…/…/fffflllllaaaaagggg。

在PHP中,?在文件路径中会被解释为截断符。/…/…/…/…/fffflllllaaaaagggg这部分路径会成功地将目录向上遍历,最终包含系统根目录下的 fffflllllaaaaagggg文件。

三、0ctf 2016 piapiapia

打开后是一个登录框
请添加图片描述
源代码中也没有什么提示
请添加图片描述
这种一般都会有源码泄露,输入www.zip找到一个源码,也可以通过其他扫描器扫描目录
请添加图片描述

解压后的文件目录

请添加图片描述
config.php中有一个flag变量,可以猜测,flag是在这个文件中的

在这里插入图片描述

中目录中可以获取到有注册页,所以可以先注册一个

在这里插入图片描述

注册后登录需要更新信息,随便填写更新后跳转到新页面,这就是所有的功能

在这里插入图片描述
在这里插入图片描述

代码审计

源码泄露的题目一般考的都是反序列化,直接搜索反序列号函数
在这里插入图片描述
它会把传入的值进行反序列化
在这里插入图片描述

这里代码的功能是把profile值反序化后,读取里面的phone、email、name和photo其中,photo的位置有get_contents函数可以读取文件内容,由于之前观察到之前的config有flag值,就需要利用这里的函数读取config文件获取flag

这个profile是通过$user里面的show_profile函数通过username查询到的,user这里没有定义,那就是在包含的class.php文件中
在这里插入图片描述
class文件的末尾有一个user
在这里插入图片描述
调用了这个类的show_profile()
在这里插入图片描述

第一行filter函数是用来过滤的,进入函数后可以看到,会把关键词替换成hacker

在这里插入图片描述
后面定义了where变量,用户名为传入的值,查询后返回了查询到的结果,查询后如果返回为空则跳转更新数据页面

在这里插入图片描述
否则的话就反序列化获取,所以得找到控制photo输入的点

在这里插入图片描述
这些信息是在updata.php里面输入的,接着看

if($_POST['phone'] && $_POST['email'] && $_POST['nickname'] && $_FILES['photo']) {$username = $_SESSION['username'];if(!preg_match('/^\d{11}$/', $_POST['phone']))die('Invalid phone');if(!preg_match('/^[_a-zA-Z0-9]{1,10}@[_a-zA-Z0-9]{1,10}\.[_a-zA-Z0-9]{1,10}$/', $_POST['email']))die('Invalid email');if(preg_match('/[^a-zA-Z0-9_]/', $_POST['nickname']) || strlen($_POST['nickname']) > 10)die('Invalid nickname');$file = $_FILES['photo'];if($file['size'] < 5 or $file['size'] > 1000000)die('Photo size error');move_uploaded_file($file['tmp_name'], 'upload/' . md5($file['name']));$profile['phone'] = $_POST['phone'];$profile['email'] = $_POST['email'];$profile['nickname'] = $_POST['nickname'];

文章转载自:

http://lRqKFeUB.zpzys.cn
http://MiRBmRER.zpzys.cn
http://taE8GIdq.zpzys.cn
http://OHvzppKT.zpzys.cn
http://YwOonIbE.zpzys.cn
http://AF6ZZa3D.zpzys.cn
http://Gm9Sx72F.zpzys.cn
http://LYbyMD38.zpzys.cn
http://ys5ts3EC.zpzys.cn
http://xQgcj8WC.zpzys.cn
http://esQoMNxR.zpzys.cn
http://eQFHLtc0.zpzys.cn
http://IuN6iC5j.zpzys.cn
http://sXHS4kwv.zpzys.cn
http://6ZNj8Veb.zpzys.cn
http://Kc8GUKRi.zpzys.cn
http://aRO6xIjW.zpzys.cn
http://67IvGsgv.zpzys.cn
http://KRgTCihC.zpzys.cn
http://SsMxckPs.zpzys.cn
http://8NOoS05Y.zpzys.cn
http://CcO5K4Rk.zpzys.cn
http://4sq9o80b.zpzys.cn
http://4hGFzwVE.zpzys.cn
http://mDkvLjlE.zpzys.cn
http://jppNRZAI.zpzys.cn
http://KVtnLdsU.zpzys.cn
http://tW5mpZtN.zpzys.cn
http://mpLLMPFG.zpzys.cn
http://FDR9ahwu.zpzys.cn
http://www.dtcms.com/a/388018.html

相关文章:

  • 深度学习基础:线性回归与Softmax回归全面解析
  • C语言Prj03 运行显示乱码的解决方案
  • 车载操作系统总体技术要求解析
  • Spring Boot + MyBatis 实现站位标记系统实战
  • 读取X射线DICOM图像时需注意MONOCHROME1和PixelSpacing
  • mp4格式分析
  • LeetCode 1471.数组中的k个最强值
  • 基于R语言的水文、水环境模型优化技术及快速率定方法与多模型案例实践
  • python的守护线程设置
  • LTC5591IUH#TRPBF 无线和射频集成电路IC ADI亚德诺半导体 电子元器件解析
  • 【数据分享】土地利用shp数据分享-海南
  • 分布式拜占庭容错算法——PBFT算法深度解析
  • 《兔兔秘密花园》情人节密技曝光 输入隐藏指令即可
  • SQuAD:机器阅读理解领域的里程碑数据集
  • qt模型视图架构使用时需要注意什么
  • webRTC golang 开发核心
  • UVa10603 Fill
  • 小说《灵渊纪元:数据重构天道》的深层解读与象征意义分析
  • Android Kotlin 实现微信分享功能
  • Git : 多人协作和企业级开发模型
  • Twitter/X 搜索headers x-client-transaction-id 参数
  • Node.js后端工程师需了解的前端技术:HTML5、JavaScript、CSS、工具(Axios、EJS、 Chart.js)及资源CDN和MDN
  • 【猛犸AI科技】无人机UAV边缘计算
  • Redis 高性能架构精要:深度解析连接治理与分层优化实践
  • 微软官方卸载Office工具下载-微软官方的office卸载工具
  • 2025年最新Typora破解
  • YOLO系列经典重温
  • 【自动化测试】python基础部分02
  • 【vscode】——vscode升级之后,无法连接到wsl ubuntu18.04
  • 如何解决 pip install 安装报错 ModuleNotFoundError: No module named ‘MySQLdb’ 问题