CBC字节反转攻击

作者: 分类: Security,Programming 时间: 2017-03-26 评论: 暂无评论

CBC加解密原理

原理

先来看下CBC(AES为例)是如何工作的:

加密流程如下:

cbc_encrypt.png

  1. 首先将明文分组(常见的以16字节为一组),位数不足的使用特殊字符填充。
  2. 生成一个随机的初始化向量(IV)和一个密钥。
  3. 将IV和第一组明文异或。
  4. 用密钥对3中xor后产生的密文加密。
  5. 用4中产生的密文对第二组明文进行xor操作。
  6. 用密钥对5中产生的密文加密。
  7. 重复4-7,到最后一组明文。
  8. 将IV和加密后的密文拼接在一起,得到最终的密文。

加密公式:

Ciphertext-0 = Encrypt(Plaintext XOR IV)—只用于第一个组块
Ciphertext-N = Encrypt(Plaintext XOR Ciphertext-N-1)—用于第二及剩下的组块

阅读全文»

Python编写Keylogger

作者: 分类: Python,Programming 时间: 2016-09-25 评论: 暂无评论

最近出于一些“不可告人”的目的,走上了编写keylogger之路...

下面先来看一下目前写好的keylogger的效果。

keylogger.gif

能获取当前焦点所在窗口,并且各种输入、组合键之类的也都能记录到。

源代码和几个库文件已经发布在我的Github上面了,想学习的可以到上面去看。里面一些核心代码是参见乌云的那篇文章,其实也就是Python黑帽子一书中的。

Keylogger_client.py这个文件需要pyHookpythoncom库,这些在我Github上也都有打包上传了。

阅读全文»

2016西安“华山杯”部分Writeup

作者: 分类: CTF 时间: 2016-09-11 评论: 暂无评论

2016西安“华山杯”部分Writeup

Web


打不过~

删掉disabled="true",加上type="submit",随便提交一个,抓包,发现返回的header头里有

Str: OGM0MzU1NTc3MTdhMTQ4NTc4ZmQ4MjJhYWVmOTYwNzk=

base64解一下再解个md5就拿下了。

系统管理

发现有提示:

<!-- $test=$_POST['username']; $test=md5($test); if($test=='0') -->

乌云有篇文章谈php弱类型的有说到,0e12353...这样的字符串等于,也就是说,我们要找到一个字串的md5是这样的形式,主义0e后面要全是数字才可以。写个脚本爆破一下子就拿到了:

md5.png

脚本代码在这里,5层循环简单粗暴

提交byGcY,提示user.php,访问得到新提示

$unserialize_str = $_POST['password']; $data_unserialize = unserialize($unserialize_str); if($data_unserialize['user'] == '???' && $data_unserialize['pass']=='???') { print_r($flag); }

是一个序列、反序列的问题,自己本地构造一下:

$t=array(
    'pass'=>'???',
    'user'=>'???'
);
$x=serialize($t);
print $x;
print gettype($x);

最后得到所要的a:2:{s:4:"pass";s:3:"???";s:4:"user";s:3:"???";}

最后到首页去连带之前的byGcY用户名一起提交,就拿下了。

序列和反序列下面还有一题,等下提供一些资料。

阅读全文»

python脚本解多层嵌套压缩包

作者: 分类: *nix 时间: 2016-08-13 评论: 暂无评论

晚上看到一个题,一个文件,用file看了一下是7z压缩过的压缩包,手动解压缩发现是多层嵌套

doll.png

之后就写了个脚本来跑,但是发现文件名太长了不能打开:

filenametoolong.png

阅读全文»

坑爹Dungeon挖洞之二

作者: 分类: Web,Python 时间: 2016-08-13 评论: 暂无评论

hacker.org坑爹Dungeon挖洞之二
接上集,前天轻松跑了Dungeon Master,结果下一关是一个叫Cavern Master。无尽的坑爹之旅启程了...

看下题目,跟上一题一样啊!?只不过他说了这句:

Rumor has it this dungeon is quite deep.

传言这个地老很深?不详的预感。

开始跑脚本,层数多点就一直死翘翘,多加了几个等级判断选择是否下楼的条件,之后就跑啊跑,一看,50层了,卧槽?

50.png

阅读全文»