这个题其实是转自Bugku的Login4 (CBC字节翻转攻击)

题目有提示密码就是web1 的flag
然后登入

这里有回显,然后我们换一下


下面cookie里的iv和cipher看着就像CBC加密的方式

利用的就是CBC解密的特点:前16个密文字符用来解密接下来的一组16个密文,就是说通过改变前16个密文就可以改变下面16个密文解密的结果,这就是字符翻转攻击。具体原理看链接,解释的挺详细。

重点来说CBC的加密方式吧,我理解的就是16个一组,然后密文第一组会和初始化向量(就是iv)进行异或运算得到明文第一组,然后密文第二组再和密文第一组进行异或运算得到明文第二组,以此类推

然后就阔以通过改前面的密文,影响后面组的明文内容,从而让username改为admin

下一步将我们的序列化内容分组,16个一组:

s:2:{s:8:”userna

me”;s:5:”admil”;

s:8:”password”;s

:3:”123″;}

我们想要改的l在第二组的13位(从0开始),那我们要改第一组的第13位。

抄的大佬思路

假设:A ^ B = C,则可得
B = A ^ C
当人为修改A=A ^ C时,
A ^ B = A ^ C ^ B = B ^ B = 0
当人为修改A=A ^ C ^ x (x为任意数值)时,
A ^ B = A ^ C ^ x ^ B = B ^ B ^ x = x举例:
密文1[4]的意思是密文1字符串第4个字节,相当于数组下标。
设:密文1[4] = A,解密(密文2)[4] = B,明文2[4] = C
因为A ^ B = C,根据结论有B = A ^ C
当人为修改A=A ^ C时,那么A ^ B = A ^ C ^ B = B ^ B = 0,这样明文2[4]的结果就为0了
当人为修改A=A ^ C ^ x (x为任意数值)时,那么
A ^ B = A ^ C ^ x ^ B = B ^ B ^ x = x,这是明文2[4] = x,这样就达到了控制明文某个字节的目的了。

修改脚本:


<?php
$enc=base64_decode(urldecode("bp1MKh8f9RLRRqO3uSSykYRYV0kfOqQTx1qUxKpekZt6AutPfxSbJXM0qc2ppFCTIW9NYIZZbLfEhbCvSUCoqfxDWiAR5a7xWxVJHDCOG1k%3D"));
$enc[13] = chr(ord($enc[13]) ^ ord("l") ^ ord ("n"));
echo base64_encode($enc);
?>



报错显示无法序列化,这是因为我们修改了第一组密文,那第一组密文解密后也是错的,不能正确序列化。通过CBC解密的原理我们知道,第一组密文解密时,用的是iv的值,那么我们构建一个新的iv,使这个iv解密第一组后,得到s:2:{s:8:”userna即可

<?php
$enc=base64_decode("YixidufNP1ip8AV9exttKG1lIjtzOjU6ImFkbWluIjtzOjg6InBhc3N3b3JkIjtzOjE1OiIxU0NDXzJvMmxfS2VGdXUiO30=");
$iv=base64_decode(urldecode("CoXsrNvawesqx1ACRM76Xw%3D%3D"));
$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);
?>

再放两个连接吧,写的还不错
https://blog.csdn.net/u013577244/article/details/86310881

https://blog.csdn.net/zpy1998zpy/article/details/80684485

ISCC ISCC客服一号冲冲冲(二)相关推荐

  1. ISCC2021—ISCC客服一号冲冲冲(二)

    ISCC客服一号冲冲冲(二) 呦,又见面了,狗子 打开链接,发现登录接口似乎是个图片截了一块啊,把图片下载下来,lsp隐写发现源代码,同时php弱比较登录页面 (都看到这里啦,还不给个三连吗) 本着这 ...

  2. 淘宝网nbsp;E客服帐号nbsp;登录阿里旺旺时nbsp;…

       刚刚开通E客服的帐号,我们等10分钟以后,再登录阿里旺旺就会正常了.如果开通E客服功能已经比较久了,而登录阿里旺旺还是提示只能登录到指定服务器,一般是由于网络原因,E客服登帐号服务器地址不正确引 ...

  3. 万能客服公众号版-聚合客服小程序功能模块V28.1.0

    简介: 万能客服是强大的微信公众号客户服务功能模块,无缝对接人人商城等其他类型的商城,实现聊天界面实时显示商品信息,优化前端管理员可查询任意粉丝查看聊天记录,其他优化! 源码特色: 1.多渠道接入:w ...

  4. 多国语言在线客服系统源码+软件下载二合一集成

    本文分三部分系统介绍如何开发一套在线客服系统聊天源码,该源码基于ThinkPHP,代码完全开源. 首先,我们只使用@auth指令. 其次,我们添加一个带有参数的订阅类型. 第三,我们更新@auth指令 ...

  5. 多客服功能终于也向所有微信认证的订阅号开放了

    多客服功能支持多人同时为一个公众号提供客服服务,经过半年多仅对认证服务号开放后,现在终于也向所有微信认证的订阅号开放了,所有微信认证的服务号和订阅号可以在"功能"-"添加 ...

  6. PHP 微信公众号之客服完整讲解

    //获取access_tokenprivate static function get_access_token($app_id){$getAuthorizerInfo = wx_auth::getA ...

  7. 公众号客服头像上传-java

    公众号客服头像上传:form-data格式 亲测,可以直接使用 public String addCustomer(MultipartFile file, Integer publicNumberId ...

  8. 微信公众号最佳实践 ( 4.4)客服接口

    当用户和公众号产生特定动作的交互时(具体动作请见下方列表),微信将会把消息数据推送给开发者,开发者可以在一段时间内(目前修改为48小时)调用客服接口,通过POST一个JSON数据包来发送消息给普通用户 ...

  9. 微信公众号开发教程[019]-新版客服

    新版客服是针对之前文章<<微信公众号开发教程[007]-消息管理-客服消息>>里面提到的客服功能而言的.在其基础上做了很多提升. 首先如果公众号曾经使用过旧版多客服功能,则要在 ...

最新文章

  1. 2017-2018-2 20165236 实验四《Android开发基础》实验报告
  2. 关于linux的root用户密码忘记处理成绩
  3. 机器学习笔记(三)线性模型
  4. C# 连接MySQL错误给定关键字不在字典中”,下载最新mysql.dll文件即可
  5. (转)如果知道dll文件是面向32位系统还是面向64位系统的?
  6. linux无桌面重做系统,Linux不需要重做系统
  7. 在objective-C中#pragma mark是什么意思?
  8. 线性代数学习笔记(十四)
  9. SQL字符串转换为数组
  10. mysql建表语句转换成oracle,如何手动将ORACLE的sql建表语句转换为MYSQL的建表语句...
  11. 电子厂计算机维修周记,关于电子厂实习周记范文
  12. 鹰信 UC 登录状态同步方法
  13. Altium Designer 18 生成网络表
  14. matlab 2013至2016 32bit、64bit破解版集合 百度云盘下载
  15. 使用蛮力法求解数字迷问题(类似ABCAB*A = DDDDDD)
  16. 大数据培训机构靠谱吗
  17. SwitchHosts 模拟本地域名解析访问
  18. 针织厂计算机社会实践报告,大学生寒假针织厂打工实践报告
  19. Centos7 配置pppoe服务器
  20. USB 2.0 suspend resume

热门文章

  1. 关于泛微E9 OA系统手机端无法使用的抢救过程
  2. 职称计算机模块intern,职称计算机考试模块试题.pdf
  3. 皮尔森相关性系数的计算python代码(四)(热力图版)
  4. ps如何去掉不想要的东西
  5. 外键约束的作用以及如何创建外键约束
  6. HINSTANCE (句柄相关)
  7. 「数据管理系统」顶级数据库管理系统供应商
  8. No space left on device: mod_rewrite: could not create rewrite_log_lock
  9. PKI体系简易JAVA实现(一):时间戳服务器TSA
  10. creo扫描选择多条链作为轨迹_CREO/PROE四芯花线建模,灵活使用关系式控制扫描截面就成了...