暴力破解,暴力破解zip压缩包
BurpSuite 基本使用之暴力破解
0x01
之前使用 BurpSuite 进行了简单的请求修改演示,现在我们来使用 BurpSuite 进行账号密码爆破。
0x02
这次对漏洞靶场 Pikachu 进行爆破,这个靶场的第一关便是暴力破解。
0x03
基于表单的暴力破解
浏览器设置好代理,burp 开启拦截,输入账号密码,点击登录,burp 拦截到请求。
右键,选择 Send to Intruder。
然后来到 Intruder 界面,选择 Position,点击 Clear,清除默认的荷载,然后分别依次选中账号和密码部分并点击 Add,最后选择 Attack Type 为 Cluster bomb。因为我们账号和密码都不知道,所以账号密码都需要爆破,故选择这种模式。
点击?Position 旁边的 Payload,设置好字典,我这里选择从文件读取,用户名字典 6 个,密码字典 13 个,一共会爆破 6*13=78 次。
点击 Start attack,开始爆破,根据 Length,可以看到其余都是 35054,只有一个是 35030,对应账号密码为 admin 123456。
使用此账号密码尝试登录,登录成功!
0x04
验证码绕过(on server)
这一关需要验证码,并且是在服务端做校验。
但是有一点,验证码可以重复使用,只要不重新获取,就不会失效,这使得我们依旧可以爆破。
burp 拦截到请求后,发送到 Intruder,然后 drop 掉本次请求。
此时返回浏览器应该可以看到如下,说明请求被我们 drop 了。
然后我们在 Intruder 设置好 payload 就可以爆破,按照上一次的设置,依旧只需要设置账号和密码,验证码不用动。
0x05
验证码绕过(on client)
这个就更简单了,验证码在客户端验证,只需要输对验证码,点击登录,然后拦截请求,就可以直接爆破了,相当于无验证码。
0x06
token防爆破比较复杂一点,下次单独写一篇文章。
暴力破解是什么意思
所谓暴力破解就是利用软件本身的命令尝试找到密码,这种命令要对常规字符进行一一组合叠加,通常要试很多种组合方式,需要时间很长,只适用于密码比较简单,位数比较少的情况!
暴力破解原理与过程详解
顾名思义,暴力破解的原理就是使用攻击者自己的用户名和密码字典,一个一个去枚举,尝试是否能够登录。因为理论上来说,只要字典足够庞大,枚举总是能够成功的!
但实际发送的数据并不像想象中的那样简单——“ 每次只向服务器发送用户名和密码字段即可!”,实际情况是每次发送的数据都必须要封装成完整的 HTTP 数据包才能被服务器接收。但是你不可能一个一个去手动构造数据包,所以在实施暴力破解之前,我们只需要先去获取构造HTTP包所需要的参数,然后扔给暴力破解软件构造工具数据包,然后实施攻击就可以了。
Web暴力破解通常用在,已知部分信息,尝试爆破网站后台,为下一步的渗透测试做准备。
Http 中的 response 和 request 是相对浏览器来说的。浏览器发送request,服务器返回response。
Get 和 Post :get放在url中,而post放在http的body中。
http_referer :是http中header的一部分,向浏览器发送请求时,一般会带上referer,告诉服务器我是从哪个页面链接而来,为服务器处理提供一些信息。
这里我们使用dvwa渗透测试平台中的暴力破解模块来进行演示。
先使用任意账号密码尝试登录,并同时使用 firefox F12 进行抓包分析。
这一步的作用是,收集构造HTTP数据包所需要的参数,比如cookie、get/post、referer、提交得字段名等。
可以看到cookie里面除了 username 和 password 字段之外还有一个 token,这个通常是用来防止CSRF攻击的。
收集到以上信息之后,我们就可以构造用于攻击的数据包。
需要用到的参数收集完毕之后,接下来就需要使用到爆破软件,这里我们先讲一个专用与爆破的软件——Bruter,之后会再介绍一款综合的Web类安全软件 :
如下图所示,这款软件支持包括FTP、SSH在内的十多种不同应用场景的暴力破解。我们这里是Web登录的爆破,所以选择Web Form:
点击协议右侧的选项,将我们之前获得的信息输入进去。
其实我们也可以直接在网址一栏中输入我们要攻击的URL,点击载入,它会自动将构造攻击数据包所需要的信息识别出来并填好,如果我们发现有问题或者有遗漏,也可以手动修改。
有些朋友可能要说,既然可以自动获取相关参数,那为什么我们还要花时间精力去手动收集信息呢?其实之前的手动收集主要是帮助我们理解暴力破解的原理,正所谓知其然不够,还要知其所以然。并且软件自动获取的参数也可能会出错,我们可以再验证一次。
接下来设置用户名和密码。用户名可以使用字典,如果你知道用户名是什么,你也可以直接输入字符串,比如:admin。
密码则有多种选择,如果选择字典选项,则需要加载我们自己事先准备好的字典(比如自己收集的弱口令字典),右侧还可以设置大小写、字符长度等:
如果选择暴力破解选项,就是软件使用自动生成字符串进行攻击,我们可以自定义使用到的字符种类、长度等:
至于右侧的选项,大家可以根据自己的需要进行选择,设置完毕之后点击开始,就可以开始暴力破解:
![Uploading github.pages_3_brutard7_653421.png . . .]
接下来我们介绍另一款软件 WebCruiser Web Vulnerability Scanner ,这是一款相对综合的软件,包括常见的Sql注入、XSS检测等功能,其中的暴力破解模块也非常强大!
这款软件自带web界面,我们可以直接在url一栏中输入攻击网址,并做一次任意用户名密码的登录提交,之手点击Resend按钮,可以看到已经自动对之前操作进行抓包:
之后在点击右侧的Bruter按钮,会直接跳转到Bruter界面,同样需要的参数都已经自动填好,设置好字典就可以开始破解了:
暴力破解就暂时讲到这里,之后有时间会对这篇文章进行修改和优化,如果有什么问题欢迎留言!
如果你觉得我讲的不错的话,可以关注一下我的其他文章和课程,希望能真正的帮到你
共享登录密码暴力破解是什么意思
就是在不知道用户名和密码的情况下,通过工具软件利用字典文件对用户名和密码依次进行尝试。共享登录密码暴力破解意思就是在不知道用户名和密码的情况下,通过工具软件利用字典文件对用户名和密码依次进行尝试,从而最终将用户名或密码破解出来。
RSA加解密演算与暴力破解12位
大家都知道RSA是非对称加密,解密方生成公钥和密钥,公钥公开给加密方加密,密钥留给自己解密是不公开的。
1.随机选两个质数,我们用p、q来代替 (质数的数值越大位数就越多可靠性就越高)
假设我们取了47与59
p = 47
q = 59
2.计算这两个质数的乘积,用n代替
n = 47 x 59 = 2773
n的长度就是密钥长度。2773写成二进制是101011010101,一共有12位,所以这个密钥就是12位。实际应用中,RSA密钥一般是1024位,重要场合则为2048位。
3.计算n的欧拉函数φ(n)
欧拉函数公式:φ(n) = (p-1)(q-1)
代入:φ(2773) = (47 - 1) x (59 - 1) = 46 x 58 = 2668
4.随机选择一个整数e,条件是1 e φ(n),且e与φ(n) 互质
那么我们就在1到2668之间,随机选择了17
e = 17
5.计算e对于φ(n)的模反元素d
模反元素公式: ax ≡ 1 (mod b)
这是欧拉定理推导出来的,若a、b互质则a乘以一个整数除以b的余数是1。这个整数就是a与b的模反元素。
该公式可以写成:ax - b = 1 则 x = (1 + b) / a
代入: d = (1 + φ(n)) / e = (1 + 2668) / 17 = 157
是一个整数,但很多情况下结果不一定是整数,我们为了计算的方便,在公式里追加一个整数k: x = (1 + kb) / a,加上k来乘以b并不影响余数1的结果。
重新代入: d = (1 + kφ(n)) / e = (1 + k x 2668) / 23
即得到一个线性方程
求解的坐标点(k,d)有很多 (1,157)、(18,2825)、(35,5493) ....
我们随机出一个坐标点: (1,157)
即:d = 157
6.将n和e封装成公钥,n和d封装成私钥
即公开的公钥为:n = 2773,e = 17
保密的私钥为:n = 2773,d = 157
就是这样子12位RSA的公私钥生成好了!
假设我们加密一个字符"A"
再用数值表示,一般用Unicode或ASCII码表示
转ASCII码十进制为65,我们用m来代替明文,c来代替密文
m = 65
RSA加密公式:m e ≡ c (mod n)
RSA加密公式由欧拉函数公式与反模元素公式推导出来
代入:c = 65 17 % 2773 = 601
这样密文就出来了!
RSA解密公式:c d ≡ m (mod n)
RSA解密公式由欧拉函数公式与反模元素公式推导出来
代入:m = 601 157 % 2773 = 65
这样明文就出来了!
因为p、q、n、φ(n)、e、d这六个数字之中,公钥用到了两个(n和e),其余四个数字都是不公开的。其中最关键的是d,因为n和d组成了私钥,一旦d泄漏,就等于私钥泄漏
由此可见推导出d就必须因数分解出p和q
公钥里面有n = 2773
那么暴力破解的方法就是把2773因数分解出两个相乘的质数。
最简单的方法就是遍历穷举质数的乘积:
pre
var distNum = 2773;
var numList = [];
var p = 1;
var q = 1;
for(var i = 1; i 100; i++) {
var isGetResult = false; // 是否找到结果
var isUseful = true; // 是否质数
var isHave = false; // 是否在质数列表中存在
for(var j = 0; j numList.length; j++) {
if(numList[j] == i) {
isHave = true;
break;
}
}
for(var k = 2; k i; k++ ) {
if(i % k == 0) {
isUseful = false;
break;
}
}
if(!isHave isUseful) {
numList.push(i); // 加入质数列表
// 匹配乘积
for(var n = 0; n numList.length; n++) {
if(i != numList[n] i * numList[n] == distNum) {
p = i;
q = numList[n];
isGetResult = true;
break;
}
}
}
console.log(JSON.stringify(numList));
if(isGetResult) {
console.log('p = ' + p);
console.log('q = ' + q);
break;
}
}
/pre
运行结果:
RSA加密的可靠性是基于因数分解的计算难度,但随着量子计算、云计算的发达,现在用的1024位RSA甚至2048位RSA都面临着挑战,据说40个量子比特位相当于一台超级计算机。
您的意见是我改善的东西,欢迎评论提建议,如果对您有帮助,请点个赞,谢谢~~
菲麦前端专题,汇聚前端好文,邀您关注!
暴力破解与验证码安全
暴力破解 :暴力破解简单来说就是将密码进行逐个测试,直到找出正确的密码为止
? ? 暴力破解:是一攻击具手段,在web攻击中,一般会使用这种手段对应用系统的认证信息进行获取。 其过程就是使用大量的认证信息在认证接口进行尝试登录,直到得到正确的结果。为了提高效率,暴力破解一般会使用带有字典的工具来进行自动化操作
? ? 暴力破解漏洞:如果一个web应用系统没有采用或者采用了比较弱的认证安全策略,导致其被暴力破解的“可能性”变的比较高
暴力破解前准备 :
? ? 1.?web系统的认证安全策略:
? ??????是否要求用户设置复杂的密码;
????????是否每次认证都使用安全的验证码
????????是否对尝试登录的行为进行判断和限制(如:连续5次错误登录,进行账号锁定或IP地址锁定等)
????????是否采用了双因素认证
????????认证过程是否带有token信息
2.工具准备:准备合适的暴力破解工具以及一个有郊的字典
三个要点:
? ? ? ?1. 对目标网站进行注册,搞清楚帐号密码的一些限制,比如目标站点要求密码必须是8位以上,字母数字组合,则可以按照此优化字典,比如去掉不符合要求的密码
? ? ? ? 2. web管理面密码使用admin/administrator/root帐号的机率较高,可以使用这三个帐号+随便一个密码字典进行暴力破解
? ? ? ? 3.?破解过程中一定要注意观察提示,如有“用户名或密码错误”“密码错误”“用户名不存在”等相关提示,可进一步利用
暴力破解分类 :
? ? B/S模式:浏览器服务器模式的认证过程是http协议实现的,因此可以用burpsuite抓包工具来破解
? ? ????1. 不带验证码的认证的破解:可直接使用burpsuite加密码字典破解
? ? ????2. 带验证码的认证的破解:如果是前端验证可使用burpsuite抓包绕过验证码来暴力破解,如果是后端验证,可使用爆破工具(如pkav)外接验证码识别器来暴力破解。(如果后台验证过程中验证码没有立即销毁,此验证码可使用24分钟)
? ? ????3. 带token信息的认证的破解:(Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,客户端带上token代表具有执行某些操作的权利)token信息每次都不一样,需要burpsuite将服务器返回的token取出用于下一次请求。
? ? C/S模式:客户端服务器模式的认证过程有多种协议实现的,因此需要用专用的集成化破解工具来破解,例如 Hydra、Bruter、X-scan
? ? ? ? 工具:
????????????Bruter:密码暴力破解工具
? ??????????Hydra:hydra是著名黑客组织thc的一款开源的暴力密码破解工具,支持多种协议,可以在线破解多种应用密码。
暴力破解的防范 :增加web系统的认证安全策略
? ??要求用户设置复杂的密码
? ??每次认证都使用安全的验证码
? ??对尝试登录的行为进行判断和限制
? ??采用双因素认证
? ??认证过程带token信息
验证码安全 :
????????是一种区分用户是计算机还是人的全自动程序,可以防止:密码暴力破解、刷票、论坛灌水。可有效防护黑客对特定用户的密码暴力破解。
验证码分类 :
? ??Gif动画验证码
????手机短信验证码
????手机语音验证码
????视频验证码
验证码常见安全问题 :
????客户端问题
????服务端问题
????基于Token验证
????验证码太简单,容易被机器识别
????暴破验证码
验证码安全防护 :
? ??1) 强制要求输入验证码,否则,必须实施IP策略。 注意不要被X-Forwaded-For绕过了!
????2) 验证码只能用一次,用完立即过期!不能再次使用
????3) 验证码不要太弱。扭曲、变形、干扰线条、干扰背景色、变换字体等。
????4) 大网站最好统一安全验证码,各处使用同一个验证码接口
思路点:暴力破解和验证码安全破解时也可以熟悉认证业务过程,并试图在业务过程中寻找业务逻辑漏洞。
弱口令:属于暴力破解漏洞的一种,是web认证界面使用了常用的或者较简单的用户名密码,使暴力破解变得简单。