flag.php

查看源码和扫目录得不到任何东西,发现提示:hint,最后发现是get参数hint(净整这些脑洞有意思吗…)
hint=1得到源码

<?php
error_reporting(0);
include_once("flag.php");
$cookie = $_COOKIE['ISecer'];
if(isset($_GET['hint'])){show_source(__FILE__);
}
elseif (unserialize($cookie) === "$KEY")
{   echo "$flag";
}
else {?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Login</title>
<link rel="stylesheet" href="admin.css" type="text/css">
</head>
<body>
<br>
<div class="container" align="center"><form method="POST" action="#"><p><input name="user" type="text" placeholder="Username"></p><p><input name="password" type="password" placeholder="Password"></p><p><input value="Login" type="button"/></p></form>
</div>
</body>
</html><?php
}
$KEY='ISecer:www.isecer.com';
?>

设置cookie的ISecer值等于key变量,这里有个坑,key的值是后面定义的,因此key的值不是’ISecer:www.isecer.com’,而是NULL,反序列化后为s:0:"";
注意:分号;在cookie中需要url编码为%3B
因此添加头部Cookie:ISecer=s:0:""%3B
得到flag

login4(CBC字节翻转攻击)

由于该题环境问题,无法复现
正好这题是密码学课上刚讲过的AES(CBC)对称加密方式
具体原理见这篇博客
参考博客

存在.index.php.swp文件,这是index.php文件异常退出时系统自动的备份文件,可以恢复源文件,分析源代码

总的来说就是无法post登录admin账户,每次post以后服务器返回你的cookie值,cookie里的内容为username和password序列化后再AES加密,base64,url编码后的值,之后通过cookie登录

CBC字节翻转攻击就是通过更改上一个分组的密文值来更改下一分组相应位置的明文信息。
因此我们可以先post一个与admin相似的用户名,例如:admik,之后修改cookie的值,使得在服务器端变成admin,实现不用username=admin而登录到admin账户。
具体如下:

将密文url解码,base64解码,将对应的值:
s:2:{s:8:”userna

me”;s:5:”admik”;

s:8:”password”;s

:3:”123″;}

即第二分组的第十四个字符k改为n

<?php
$enc=base64_decode("bIpgPK29vVQosJ+smzh0pOdq7QrP3H9CN0MBfynL1eKtILs/ayew1snTYbeYSIz8rQctkAUMORS76SWQHXwuKg==");
$enc[13] = chr(ord($enc[13]) ^ ord("k") ^ ord ("n"));
echo base64_encode($enc);
?>

得到的新值经过解码后明文k被改为n,但是第一组明文变成乱码,因此还需要更改IV的值使得第一分组的明文为
s:2:{s:8:”userna

<?php
$enc=base64_decode("4quudO++PAeVPQfcFJ0bbm1lIjtzOjU6ImFkbWluIjtzOjg6InBhc3N3b3JkIjtzOjM6IjEyMyI7fQ==");
$iv=base64_decode("TrphJjWLH37sj6+EBqh28A==");
$cleartext = 'a:2:{s:8:"userna';
$newiv = '';
for ($i=0;$i<16;$i++){$newiv=$newiv.chr(ord($iv[$i]) ^ ord($enc[$i]) ^ ord ($cleartext[$i]));
}
echo base64_encode($newiv);
?>

用新的IV值和cookie去登录即可得到flag

BugkuCTF-WEB部分题解(五)相关推荐

  1. BugkuCTF web基础$_GET

    前言 写了这么久的web题,算是把它基础部分都刷完了一遍,以下的几天将持续更新BugkuCTF WEB部分的题解,为了不影响阅读,所以每道题的题解都以单独一篇文章的形式发表,感谢大家一直以来的支持和理 ...

  2. ASP.NET编程技术-用ASP.NET开发Web服务的五则技巧

    ASP.NET编程技术-用ASP.NET开发Web服务的五则技巧 ------------------------------------------------------------------- ...

  3. Web学习(五)中期项目-简易拳皇

    Web学习(五)中期项目-简易拳皇 项目参考地址:https://git.acwing.com/yxc/kof 游戏的基本原理:主要依靠requestAnimationFrame实现,该函数会在下次浏 ...

  4. %3c xml 和php冲突,[原创]WEB安全第五章 漏洞学习与利用11 xml实体注入

    WEB安全第五章 漏洞学习与利用11 xml实体注入 XXE Injection即XML External Entity Injection,也就是XML外部实体注入攻击.漏洞是在对非安全的外部实体数 ...

  5. 用 ASP.NET 开发 Web 服务的五则技巧

    (转的,作者不详) 一.禁用HTTP POST/GET协议 除非另外指定,否则,.NET将试图把Web服务绑定到三种协议:HTTP/POST.HTTP/GET和SOAP.之所以说"试图&qu ...

  6. BugKuCTF WEB flag在index里

    http://123.206.87.240:8005/post/ 题解:本地文件包含漏洞+php伪协议的结合应用 原理:php的封装协议:http://php.net/manual/zh/wrappe ...

  7. BugKuCTF WEB 网站被黑

    http://123.206.87.240:8002/webshell/ 题解: 原理: webshell webshell就是以asp.php.jsp或者cgi等网页文件形式存在的一种命令执行环境, ...

  8. BugkuCTF——WEB(1)

    一.Web2 题目网址:http://123.206.87.240:8002/web2 鼠标右键,查看网页源代码即可看到flag 二.计算器  题目网址:http://123.206.87.240:8 ...

  9. 【JS 逆向百例】吾爱破解2022春节解题领红包之番外篇 Web 中级题解

    关注微信公众号:K哥爬虫,持续分享爬虫进阶.JS/安卓逆向等技术干货! 逆向目标 本次逆向的目标来源于吾爱破解 2022 春节解题领红包之番外篇 Web 中级题,吾爱破解每年都会有派送红包活动(送吾爱 ...

  10. bugkuCTF web进阶+web最后两题

    bugkuCTF一些题目 江湖魔头 ①js文件类–>js文件被压缩 解压缩方法–>在该网站解压缩即可 https://tool.lu/js/ ②伪造cookie 1.解密与获取cookie ...

最新文章

  1. Sql Server触发器的使用
  2. python自动化运维平台能用php开发吗_关于数据库自动化运维平台的设计及开发实现思路...
  3. 基于XML的IOC案例
  4. spark算子大全glom_2小时入门Spark之RDD编程
  5. why always WebContent is added as prefix of url when repository request served
  6. php上传图片管理系统,php 登录操作的文件上传管理系统
  7. linux操作-centos下载mysql
  8. 转:POJ先做完这50题再说
  9. python面试文件操作_python基础-三分钟搞定面试官爱问的【文件操作】
  10. mysql 返回几个组_MySQL – 控制由组返回的行
  11. 4. Phpstorm svn
  12. php怎么跟小程序链接,小程序的链接怎么提取?
  13. Hadoop安装教程详解
  14. Android开发常用开源框架
  15. PSCS6下载和安装教程
  16. MATLAB无法直接打开M文件
  17. uniapp 制作手机app程序, 使用uni.chooseVideo录制视频,视频播放模糊分辨率低的原因
  18. Cinnamon 任务栏网速绘制内存和CPU使用率竖线
  19. 【思科模拟器实验】三层交换机配置DHCP
  20. android 区分平板,加量不加价!台电首款基于Android 11的平板终上市

热门文章

  1. C语言程序设计精髓习题总汇
  2. Vivado驱动安装
  3. Oracle ORA-01017: invalid username/password;解决完一个12560又来一个
  4. 以太坊智能合约编程之菜鸟教程
  5. 吉他自学教程(一)-基础乐理
  6. Z=X+Y的概率密度100%做对的方法
  7. 手机app测试用例怎么写?手机app测试点有哪些?没有水分,错过绝对后悔
  8. easyui框架实现datagrid多表头设置
  9. Foxit Reader(福昕PDF阅读器) v4.3.1.218 绿色专业版
  10. 为了让人愿意花3000块买口锅,这些高端厨具品牌也是蛮拼的