ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【小迪安全36天】验证码与Token

2021-06-17 22:01:39  阅读:270  来源: 互联网

标签:小迪 self 验证码 36 Token params 识别 数据包


验证码识别与token逻辑问题


在这里插入图片描述

验证码识别

使用工具:pakv_http_fuzz

复制验证码图片数据包中的请求头信息,不用cookie和host
在这里插入图片描述
使用工具的图像型验证码识别,把请求头信息粘贴到其他请求头位置,验证码地址就填图片验证码地址
在这里插入图片描述
选择第三方识别引擎,点击识别,开始识别
在这里插入图片描述


使用工具:Burpsuite插件

下载地址:https://github.com/c0ny1/captcha-killer/releases/tag/0.1.2
burpsuite添加插件:
在这里插入图片描述
captcha-killer工具本身不具备识别验证码的能力,其主要是调用第三方接口来实现验证码
我这里用的是超级鹰验证码识别平台
https://gv7.me/articles/2019/burp-captcha-killer-usage/这篇写的不错,虽然不是超级鹰,但具体添加格式都很详细

超级鹰的验证码类型:http://www.chaojiying.com/price.html
在这里插入图片描述
接口url:http://upload.chaojiying.net:80

POST /Upload/Processing.php HTTP/1.1
Cache-Control: no-cache
Connection: Keep-Alive
Content-Type: application/x-www-form-urlencoded
Accept: */*
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)
Content-Length: 2915
Host: upload.chaojiying.net

user=这里填你的用户名&pass=你的密码&softid=你的软件KEY&codetype=验证码种类编号(官网上有)&file_base64=<@URLENCODE><@BASE64><@IMG_RAW></@IMG_RAW></@BASE64></@URLENCODE>

设置好后,把页面锁定
在这里插入图片描述

这里抓取登录数据包,并发送到intrude模块
在这里插入图片描述

由于第二个选择的是验证码,我们用插件进行爆破故2选择模式如下
在这里插入图片描述
成功识别验证码:
在这里插入图片描述


python 接口

这里我奉上超级鹰的python接口,云代码也有接口

#!/usr/bin/env python
# coding:utf-8

import requests
from hashlib import md5

class Chaojiying_Client(object):

    def __init__(self, username, password, soft_id):
        self.username = username
        password =  password.encode('utf8')
        self.password = md5(password).hexdigest()
        self.soft_id = soft_id
        self.base_params = {
            'user': self.username,
            'pass2': self.password,
            'softid': self.soft_id,
        }
        self.headers = {
            'Connection': 'Keep-Alive',
            'User-Agent': 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)',
        }

    def PostPic(self, im, codetype):
        """
        im: 图片字节
        codetype: 题目类型 参考 http://www.chaojiying.com/price.html
        """
        params = {
            'codetype': codetype,
        }
        params.update(self.base_params)
        files = {'userfile': ('ccc.jpg', im)}
        r = requests.post('http://upload.chaojiying.net/Upload/Processing.php', data=params, files=files, headers=self.headers)
        return r.json()

    def ReportError(self, im_id):
        """
        im_id:报错题目的图片ID
        """
        params = {
            'id': im_id,
        }
        params.update(self.base_params)
        r = requests.post('http://upload.chaojiying.net/Upload/ReportError.php', data=params, headers=self.headers)
        return r.json()


if __name__ == '__main__':
	chaojiying = Chaojiying_Client('超级鹰用户名', '超级鹰用户名的密码', '你的软件KEY')	#用户中心>>软件ID 生成一个替换 96001
	im = open('a.jpg', 'rb').read()													#本地图片文件路径 来替换 a.jpg 有时WIN系统须要//
	print(chaojiying.PostPic(im, 1902)['pic_str'])												#1902 验证码类型,你可以上官网查看你要识别的验证码类型  官方网站>>价格体系 3.4+版 print 后要加()
	

验证码绕过

后端逻辑错误绕过

靶场环境:pickchu

输入用户名和密码和验证码进行burpsuite抓取数据包
在这里插入图片描述
由于输入的用户和密码是错误的,所有显示用户或密码错误
在这里插入图片描述
把这个数据包的用户名和密码进行修改但不修改这个已经失效的验证码进行重发时,发现还是显示用户名或密码错误,不是应该返回验证码错误吗?由此可判断这只识别第一次的验证码
在这里插入图片描述
查看后台php代码,查找原因,原来验证码时通过session进行判别,没识别过后就应该销毁session,但没有销毁,造成后续使用第一次正确的验证码进行绕过
在这里插入图片描述


前端验证码绕过

如何判断前后端,看页面源码数据,就拿这个来说
在这里插入图片描述
在页面源码中找到与验证码有关的关键词,搜索发现:页面的验证码是通过本地的js代码来实现的
在这里插入图片描述
如果有时候发现没有存在,可以查看js文件,有时验证码会保存到js文件中,所有可以查看浏览器响应的js文件中是否有验证码识别过程,所有
本地验证绕过很简单,只需要抓包改用户名和密码就行,不用管他,因为他只是对本地进行验证,当你本地通过后即使验证码错误也没事


真实网站测试

非法网站,注册用户,抓取数据包
在这里插入图片描述
在这里插入图片描述


Token

Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器生成一个Token便将此Token返回给客户端,以后客户端只需带上这个Token前来请求数据即可,无需再次带上用户名和密码

如果数据包含有Token的情况下爆破登录,因为每次的Token值都不一样,所有对burpsuite爆破造成很大困难,我想如果使用hydra这款工具应该就能避开

在这里插入图片描述


绕过token

靶场环境:Pickchu
因为页面源码中回显Token值
在这里插入图片描述
所有就可以把页面回显中的Token值替换爆破中的Token值就可以绕过Token
演示:由于爆破的是密码和Token,把这两个值作为可选项,Attack type:选Pitchfork
在这里插入图片描述
爆破字典1的密码字典选择正常字典就行
但2我们要使用页面源码中的Token进行替换,由于是一个一个替换,故线程设为1
在这里插入图片描述
选择重定向为always
在这里插入图片描述
选择Grep-Extract为add
选择返回数据包中的token值,改操作会使用正则去匹配数据包中选择的值,来进行替换
我们选择token值,这样爆破的token值就会替换成返回数据包中正则所匹配的值
在这里插入图片描述

花屏了…
在这里插入图片描述
然后2的字典选择为:如下
在这里插入图片描述

就可以开始发包了!


callback回调函数

解释原理:https://blog.csdn.net/weixin_42519551/article/details/104578440

在这里插入图片描述
由于callback回调的网址在页面源码中显示,故可以试一试跨站XSS语句如<script>alert(1)</script>进行测试攻击

标签:小迪,self,验证码,36,Token,params,识别,数据包
来源: https://blog.csdn.net/weixin_54252904/article/details/117934063

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有