登录框前端加密数据爆破方法

现在越来越多的登录界面使用rsa、aes等前端加密用户凭据再进行提交,给爆破用户名密码造成了一定难度,本文记录了某次爆破加密登录框的过程,把思路和方法分享给大家

一、某次渗透项目遇到的登录提交数据包,密码字段使用了加密

base64解码后是乱码,可能是使用了对称或者公钥加密

登录框

数据包

二、爆破用到了bp的一个插件BurpCrypto

这里给到下载地址https://github.com/whwlsfb/BurpCrypto

按照bp安装插件的方法,点击添加然后安装好

三、找到js加密函数,这个是比较关键的

有两个思路,一个是直接查看前端登录按钮的提交事件,第二个是搜索bp抓到的数据包中的关键词,再进行跟进

1、直接查看登录提交事件

然后再按下面点击跳转到js代码页面

跳转过去之后代码是这样的,没有发现加密代码没有在这两个位置,所以使用第二种方法

2、全局搜关键词

这里发现提交数据里面有一个captcha,搜一下试试

搜到catpcha疑似提交数据函数,设置断点,然后输入用户密码,点击登录,程序会停在断点位置

调试这边有三个功能,下面从左向右依次对应,一直点步入就可以跟踪到加密代码段

  • 步过:一行一行的往下走,不会进入到其他方法的内部。
  • 步入:如果当前行有方法执行,可以进入方法的内部(不会进入官方定义的方法,仅能进入自定义的方法)。
  • 步出:从步入的方法内执行完该方法,然后退出到方法调用处。

这里找到了加密代码,分析可以得出,使用aes的cbc方式进行加密,密钥为1234123412ABCDEF,iv也是1234123412ABCDEF

去在线加密网站验证加密数据

刚才密码字段被加密为KsfCCKg/XgwyEJL/ME7tdg==

这个网站可以进行在线aes加解密,填好后密文和加密方式后解密成功

https://the-x.cn/zh-cn/cryptography/Aes.aspx

四、最后使用bp进行爆破

首先在burpCrypto设置好刚才分析好的加密方式和密钥iv等(加密方式设置错了可能发送不出爆破数据)

然后点击add processor,随便起一个名就行

接下来就是把加密的处理操作引用到Intruder

将数据包发送到攻击器(Intruder)

密码字段payload这里设置,添加插件加密处理操作

记得把这里的打钩取消掉,否则bp会自动编码等号这些,可能造成服务器不能识别加密数据

最后点击开始攻击就可以愉快地爆破啦!

  • 10
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
在CodeIgniter实现数据库部分数据加密方法,可以使用架自带的加密类 `Encryption`。 以下是一个简单的实现示例: ```php class MY_Model extends CI_Model { protected $table_name = ''; protected $primary_key = ''; protected $encrypt_fields = array(); public function __construct() { parent::__construct(); $this->load->library('encryption'); } public function get($id) { $this->db->where($this->primary_key, $id); $query = $this->db->get($this->table_name); $row = $query->row_array(); foreach ($this->encrypt_fields as $field) { $row[$field] = $this->encryption->decrypt($row[$field]); } return $row; } public function insert($data) { foreach ($this->encrypt_fields as $field) { $data[$field] = $this->encryption->encrypt($data[$field]); } return $this->db->insert($this->table_name, $data); } public function update($id, $data) { foreach ($this->encrypt_fields as $field) { $data[$field] = $this->encryption->encrypt($data[$field]); } $this->db->where($this->primary_key, $id); return $this->db->update($this->table_name, $data); } } ``` 在这个示例,我们创建了一个 `MY_Model` 类,它继承自 CodeIgniter 架的 `CI_Model` 类。在构造函数,我们加载了架自带的加密类 `Encryption`。 我们定义了三个属性,分别为数据库表名 `$table_name`、主键名 `$primary_key`,以及需要加密的字段名数组 `$encrypt_fields`。 我们提供了三个方法,分别为 `get`、`insert`、`update`,用于获取、插入、更新数据。在 `get` 方法,我们查询数据库并获取一行数据,然后遍历 `$encrypt_fields` 数组,对每个需要加密的字段调用 `encryption` 类的 `decrypt` 方法进行解密。在 `insert` 和 `update` 方法,我们同样遍历 `$encrypt_fields` 数组,对每个需要加密的字段调用 `encryption` 类的 `encrypt` 方法进行加密。最后,我们调用架自带的数据库操作方法 `insert` 和 `update` 进行插入和更新操作。 这样,我们就可以在 CodeIgniter 方便地实现数据库部分数据加密了。当然,这只是一个简单的示例,实际应用还需要考虑很多其他因素,例如密钥的管理、加密算法的选择等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Star1!ght

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值