网站内容保障( 绕过验证码验证office办公文档密码破解成功(图) )
优采云 发布时间: 2022-03-31 15:07网站内容保障(
绕过验证码验证office办公文档密码破解成功(图)
)
txtPhoneNum=&txtPhoneCode=0001 这是要发送的参数,填写Request Body,代表ajax中的数据部分,最后点击Execute按钮发送。
这样,只需要修改Request Body中的txtPhoneCode,就不用写9999 ajax那么麻烦了。
但是,有没有更简单的方法?
当然我们也可以自己写一个程序,填写参数规则,然后运行程序。程序自动为我发送http协议并自动为我更改参数。
网上已经有现成的工具了,不用自己写。
类似具有此类功能的软件,后面我会介绍几款专业的网页破解软件。
如上图所示,就是办公文档的密码破解。原理是一样的。先输入密码规则,然后软件会根据规则自动生成密码列表集合,如0001~9999,则生成列表集合。收录以上规则的所有密码,然后软件一一尝试密码,直到尝试正确密码,提示您破解成功。这种模式被称为:暴力破解
密码列表集还有一个专门的名词来描述它,叫做:密码字典
好了,以上就是破解方法,蛮力破解,那怎么保护呢?
以本文为例,加长短信验证码的长度,原来是4位,可以改成6位。限制IP,如果在规定时间内IP下错误超过3次,将被封锁24小时。手机号码有限制。如果第一次输入错误,登录延长10秒,第二次输入错误,延长登录1分钟,以此类推。
这样,可以很好地防止暴力破解。
绕过验证码进行无限制注册
接下来,我们来看看注册。
在注册页面填好账号密码后,就可以上传头像了。
在任何网站中,上传文件和验证码是破解的两个主要目标。通过上传文件的漏洞,我什至可以控制服务器。后面会讲破解上传文件的思路。再说说验证码。
如图,输入验证码即可成功注册账号。在后台,验证码大多是通过会话和服务器缓存保存的。默认配置会话依赖于IIS进程,容易丢失。我在这里使用 session 来保存验证码。
进入该页面时,调用了一个验证码生成方法:
也就是这个界面,它会在我的后台生成一个Session["ValidateCode"],当我点击注册的时候,我会验证这个Session["ValidateCode"]是否存在,如果存在就用浏览器传给我。验证码值是否相等,如果相等则进行下一个注册码逻辑。
我添加了验证码验证链接,可以防止有人恶意注册。如果没有,那么您可以通过以上方法在几分钟内注册十万。
什么是恶意注册?恶意注册有什么用?
我网站你无法体验恶意注册的好处,但我可以给你举个这样的例子。你现在看到的不是我的网站,而是新浪微博。你恶意注册100万个账号,然后这100万个账号同时关注一个账号,那么你就有100万个A粉的新浪微博账号,不管是直播粉还是直播粉,这玩意儿都值钱了的钱。你可以用你吹牛的权利卖掉它,而且肯定有成千上万的。
那么,我可以通过添加验证码来防止恶意注册吗?
当然不是,上面的验证码有两个漏洞。一是验证码图片太简单,软件可以识别图片破解,二是逻辑漏洞。
先说第一个:用软件识别,软件是怎么识别的?
就是通过一系列算法对图片进行分解,通过图片的背景颜色等,最终得到一个准确率较高的验证码。
比如遍历所有像素点,然后得到一个数组,对点和线进行算法分析,删除干扰点和线,删除不规则的数组项,然后对本地数据库中的过滤数据进行匹配,最后得到一个正确的验证码。本地数据库从哪里来?它是通过重复前面的步骤N次保留的数据。
市场上有很多这样的软件,算法越先进,软件越先进。如何防止这些软件破解验证码?也就是不走寻常路,放一些连人都不容易识别的验证码,或者猜个谜之类的……
好吧,我们来说第二个,逻辑漏洞。
合理地说,在我的代码中,浏览器点击了注册按钮。如果验证码错误,会再次调用接口刷新验证码。如果验证码正确,注册成功,会跳转到新的页面。
另一方面,服务器判断session不为空,防止对象不被引用到对象实例,判断是否与浏览器接收到的代码相等。如果不相等,则调用验证码刷新接口。然后还有什么?我没有考虑什么?
是的,当然有,就是当我输入验证码正确的时候,因为我没有在后台刷新会话,那么我可以通过抓包等形式无限次注册!
只有浏览器传递的参数等于我当前服务器的Session[“ValidateCode”],才能执行注册逻辑。但是什么决定了 Session[ "ValidateCode" ] 的值呢?它是Server/verification/ValidateCode.aspx的接口。只要不调用这个接口,我的Session["ValidateCode"]就永远不会改变,所以我只需要输入pair一次,就可以无限次抓包了。登记。
所以,代码应该变成这样:
只要验证码输入正确,就会立即调用刷新会话的接口。
什么是 XSS?通过留言簿了解 XSS
现在,成功注册账号后,您将进入当前账号的首页显示界面。
我们点击留言板,进入留言板页面。
然后,在消息框中输入一个脚本,看看它是否会执行。
结果,这个脚本根本不执行。
在这里,我为大家普及一下XSS注入攻击。
什么是XSS?
它指的是恶意攻击者往Web页面里插入恶意,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意攻击用户的特殊目的
就像我现在在留言板中插入这样一个段落,如果网站没有过滤这个段落,那么当你浏览这个留言板时,会执行这串脚本,并且会弹出一个窗口说small你真帅。也许您发现您可以键入不会对您构成安全威胁的脚本。然后我可以输入跳转网页之类的代码,或者document.cookie获取你的cookie等等,这样的威胁很大。
以cookies为例,为了保持稳定的登录状态,token token(即你的账号密码)一般保存在cookie中,并在浏览器中设置了过期时间进行保存,网站为验证你的登录状态,其实最终还是基于cookies。如果你的网站对ip没有限制(一般没有限制),我可以复制粘贴你的cookie发送到另一台电脑,然后设置cookie,和登录你的一样帐户和密码。
因此,如果网站中有消息或私信,或者发布文章的这些功能时,一定要过滤掉这些特殊字符。
和上一段一样,最后保存在我的数据库里的是<script>alert("小曾,你好帅")</script>
function (str, reg) {
return str ? str.replace(reg || /[&':'>',
"'":'''
}[a]
}
}) : '';
}
不过我目前的留言板是解析为json格式的,所以\符号需要转义,否则在回复框中输入\符号还是会报错。
以上是Xss,只要在入口处过滤字符串浏览器服务器,就可以有效防范。
这里插入一个例子,在 2011 年的 BlackHat DC 2011 黑客大会上,黑客 Ryan Barnett 给出了一个关于 XSS 的示例 javascript 代码:
($=[$=[]][(__=!$+$)[_=-~-~-~$]+({}+$)[_/_]+($$=($_=!''+$)[_/_]+$_[+$])])()[__[_/_]+__[_+~$]+$_[_]+$$](_/_)
这段代码巧妙地避开了一些过滤函数的检查,最后被浏览器解析为alert(1)
空数组是非空值,因此 ![] 的结果为 false(布尔值)。计算false+[]时,由于数组对象不能与其他值相加,所以在相加前会进行一次字符串转换。空数组的toString为"",表示false+[]的结果为"false",
在js中,~符号是按位取反运算符,~[]会被解析为-1,~[1]会变成-2以此类推,最后用这个巧妙的想法变成windows['alert( 1)']。
不过这其实和浏览器的解析有关,可以理解为漏洞。简而言之,当今的大多数浏览器都无法再实现此代码。
(!(~+[])+{})[--[~+"1"][+[]]*[~+[]] + ~~!+[]]+({}+[])[[~!+[]]*~+[]]
不过这段代码可以是最终输出的eb,可以试试把这个1删掉看看会输出什么
在我的网站上,可以发布文章,使用ueditor,发布文章可以自由更改文章的html,但是我在后台传正则表达式的脚本是过滤。如果你没有我给你的脚本权限,你所有的脚本代码都会被自动过滤掉。有兴趣的朋友可以想办法想办法,看看能不能找到可以找到xss的地方。可以加.net/web交流群166843154一起讨论讨论。
CSRF的原理,如何保护呢?
接下来我们在消息框中发送消息:
我们会发现,当点击【发布】按钮时,这个接口其实是以Post的形式调用的。
现在,我要销毁,我写一个页面,然后这个页面调用这个接口,只要打开我页面的人,如果他是1996v的登录状态网站,他就会留言,留言内容为:CSRF。
接下来,我们新建一个页面,这个页面会写一个ajax:
然后运行页面
发现发布成功,我们转回留言页,发现留言板上出现了同一行CSRF。
所以这里给你一个思路,浏览器上的一切,你的各种按钮,与服务器的交互,无非是一个http协议。说白了,就是一个接口。
你调用什么样的接口会发生。例如,我的 网站 现在有一个专注于功能的界面。这个界面就是*敏*感*词*,也就是说只要访问这个界面,当前的注册人就会关注一个叫*敏*感*词*的玩家,像我的新浪微博一样,什么都没发,而且莫名有几十个粉丝,像一些人,明明什么都没做,却突然发现不知道你什么时候发了这么多小广告。
例如上述方法属于CSRF(伪装的跨站攻击)
所以,不要随意点击链接。
当然,浏览器也针对这种情况对浏览器做了一个安全限制,称为:同源策略
<p>一般的意思是,只要遵守同源策略规则的浏览器,如果a网站要在这个浏览器上调用b网站的接口,如果b