ISCC ISCC客服一号冲冲冲(二)
这个题其实是转自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客服一号冲冲冲(二)相关推荐
- ISCC2021—ISCC客服一号冲冲冲(二)
ISCC客服一号冲冲冲(二) 呦,又见面了,狗子 打开链接,发现登录接口似乎是个图片截了一块啊,把图片下载下来,lsp隐写发现源代码,同时php弱比较登录页面 (都看到这里啦,还不给个三连吗) 本着这 ...
- 淘宝网nbsp;E客服帐号nbsp;登录阿里旺旺时nbsp;…
刚刚开通E客服的帐号,我们等10分钟以后,再登录阿里旺旺就会正常了.如果开通E客服功能已经比较久了,而登录阿里旺旺还是提示只能登录到指定服务器,一般是由于网络原因,E客服登帐号服务器地址不正确引 ...
- 万能客服公众号版-聚合客服小程序功能模块V28.1.0
简介: 万能客服是强大的微信公众号客户服务功能模块,无缝对接人人商城等其他类型的商城,实现聊天界面实时显示商品信息,优化前端管理员可查询任意粉丝查看聊天记录,其他优化! 源码特色: 1.多渠道接入:w ...
- 多国语言在线客服系统源码+软件下载二合一集成
本文分三部分系统介绍如何开发一套在线客服系统聊天源码,该源码基于ThinkPHP,代码完全开源. 首先,我们只使用@auth指令. 其次,我们添加一个带有参数的订阅类型. 第三,我们更新@auth指令 ...
- 多客服功能终于也向所有微信认证的订阅号开放了
多客服功能支持多人同时为一个公众号提供客服服务,经过半年多仅对认证服务号开放后,现在终于也向所有微信认证的订阅号开放了,所有微信认证的服务号和订阅号可以在"功能"-"添加 ...
- PHP 微信公众号之客服完整讲解
//获取access_tokenprivate static function get_access_token($app_id){$getAuthorizerInfo = wx_auth::getA ...
- 公众号客服头像上传-java
公众号客服头像上传:form-data格式 亲测,可以直接使用 public String addCustomer(MultipartFile file, Integer publicNumberId ...
- 微信公众号最佳实践 ( 4.4)客服接口
当用户和公众号产生特定动作的交互时(具体动作请见下方列表),微信将会把消息数据推送给开发者,开发者可以在一段时间内(目前修改为48小时)调用客服接口,通过POST一个JSON数据包来发送消息给普通用户 ...
- 微信公众号开发教程[019]-新版客服
新版客服是针对之前文章<<微信公众号开发教程[007]-消息管理-客服消息>>里面提到的客服功能而言的.在其基础上做了很多提升. 首先如果公众号曾经使用过旧版多客服功能,则要在 ...
最新文章
- 2017-2018-2 20165236 实验四《Android开发基础》实验报告
- 关于linux的root用户密码忘记处理成绩
- 机器学习笔记(三)线性模型
- C# 连接MySQL错误给定关键字不在字典中”,下载最新mysql.dll文件即可
- (转)如果知道dll文件是面向32位系统还是面向64位系统的?
- linux无桌面重做系统,Linux不需要重做系统
- 在objective-C中#pragma mark是什么意思?
- 线性代数学习笔记(十四)
- SQL字符串转换为数组
- mysql建表语句转换成oracle,如何手动将ORACLE的sql建表语句转换为MYSQL的建表语句...
- 电子厂计算机维修周记,关于电子厂实习周记范文
- 鹰信 UC 登录状态同步方法
- Altium Designer 18 生成网络表
- matlab 2013至2016 32bit、64bit破解版集合 百度云盘下载
- 使用蛮力法求解数字迷问题(类似ABCAB*A = DDDDDD)
- 大数据培训机构靠谱吗
- SwitchHosts 模拟本地域名解析访问
- 针织厂计算机社会实践报告,大学生寒假针织厂打工实践报告
- Centos7 配置pppoe服务器
- USB 2.0 suspend resume
热门文章
- 关于泛微E9 OA系统手机端无法使用的抢救过程
- 职称计算机模块intern,职称计算机考试模块试题.pdf
- 皮尔森相关性系数的计算python代码(四)(热力图版)
- ps如何去掉不想要的东西
- 外键约束的作用以及如何创建外键约束
- HINSTANCE (句柄相关)
- 「数据管理系统」顶级数据库管理系统供应商
- No space left on device: mod_rewrite: could not create rewrite_log_lock
- PKI体系简易JAVA实现(一):时间戳服务器TSA
- creo扫描选择多条链作为轨迹_CREO/PROE四芯花线建模,灵活使用关系式控制扫描截面就成了...