当前位置:首页 > 黑客技术 > 正文内容

自动化检测CSRF(第二篇)

访客4年前 (2021-04-16)黑客技术737

前语
上一篇仅仅大致阐明整个思路和流程。本篇就具体说说怎么检测CSRF。为什么不在上一篇中放出插件呢。是由于误报率确实是比较多,并且无法检测Referer。而本章,要点就阐明“怎么检测对方是否敞开了Referer检测机制”。
在我的认知范围内,这是首款检测Referer的东西(不知廉耻的笑了)。今日发现腾讯在2013年就做了相似的产品(这就为难了..),不过还好。并且思路和完成办法有所区别。本章说检测Referer、优化token检测机制。并且这些是腾讯产品所没有的撒。
0×01 一些小的改变
之前的是非名单列表
var placeholderFilterKeyword = ['跳','搜','查','找','登陆','注册','search'];  //无用表单黑名单,用于验证这个form表单有没有用(针对input验证)
var actionFilterKeyword = ['search','find','login','reg'];   //无用表单黑名单,用于验证这个form表单有没有用(针对form表单验证)
}
现在的是非名单列表:
var placeholderFilterKeyword = ['跳','搜','查','找','登陆','注册','search'];
var actionFilterKeyword = ['search','find','login','reg',"baidu.com","google.com","so.com","bing.com","soso.com","sogou.com"];
此处的代码,决议了全体插件检测时的误报率大体走向。你也能够自己修正来到达自我感觉不错的境地。
现在的初始化变量:
var actionCache,actionPath;
var actionvParameter = "";
var ajaxParameter = "";
0×02:检测token的机制优化
之前的token验证机制是针对于type特点为hidden的input标签里的value的值是否大于10。代码如下:
for(var j = 0;j  formDom.find(":hidden").length;j++){
    if(formDom.find(":hidden").eq(j).val().length > 10){
        continue outerFor;
    }
}
可是当我进一步测验的时分,发现这个误报率比较大。比方我在测验Freebuf主站的时分,FB的token值不到10位,可是他是toekn。那么就能够绕过之前的设定。当然了本章就现已处理了这个问题,使之在测验的时分,检测token的机制成功率到达95%以上。很少的情况下才会呈现误报。OK,现在让咱们来进行修正吧:
首要我先阐明一下token机制的特性:
每改写一次页面,token就会改变
咱们能够针对此特性进行考虑。优化后的token机制的思路:
运用JavaScript代码在页面里刺进一个空白躲藏的iframe标签,再运用ajax恳求,从头获取一下当时页面的源代码,至于为什么不运用document.documentElement.outerHTML来获取页面的源代码呢,很简单的原因,document.documentElement.outerHTML是不改写获取,相似于咱们按下Ctrl+U来检查源代码,而ajax发送后获取,相似于从头翻开一次页面,再按下Ctrl+U。两者的不同就出在ajax是从头发送一次恳求,就像改写页面相同。
思路说完了,那咱们该怎么写代码呢,首要在榜首行,outerFor:代码之上,写ajax获取源代码,由于outerFor:下面的代码都是在for循环了,咱们不需要每循环一次就ajax获取一次。我只需要获取一次就行了。代码如下:
var iframe = document.createElement('iframe');
$("html").append("");
$.ajax({
    url: location.href,
    type: 'get',
    dataType: 'html',
})
.done(function(data){
    $("#tokenCheck").contents().find("body").html(data);
})
这儿的dataType有必要是html。否则无法获取标签,然后运用$("#tokenCheck").contents().find("body").html(data);代码,把咱们运用ajax获取到的源代码放到iframe标签里,如图:

然后咱们回到检测token机制功用的代码处。修正一下代码为:
if(formDom.find(":hidden").length > 0){
    for(var j = 0;j  formDom.find(":hidden").length;j++){
        var tokenInputValue = formDom.find(":hidden").eq(j).val();
        if($($("#tokenCheck").contents()['context']['forms'][i]).find(":hidden").eq(j).val() != tokenInputValue){
            continue outerFor;
        }
    }
}
这儿我新加入了if判别,当当时form表单里没有type特点为hidden的input标签时。则越过此次的检测token机制的功用代码。for循环里,首要是赋值,把当时的input标签的里的value值赋值给tokenInputValue变量。
下面的代码就很重要了,获取iframe标签里相同的form标签及相同的input标签里的值。首要咱们运用$("#tokenCheck").contents()来获取iframe标签里的内容。再运用['context']来获取html的DOM树,再运用['forms']来获取iframe里的form标签。然后运用最外层的i变量,使之iframe取得的form表单和咱们正在处理的form时同一个。然后在最外层写上$(),使JavaScript目标变成jQuery变量,咱们就能够运用jquery的API了。下面的find(":hidden").eq(j).val()便是获取相同form标签里的相同input标签里的值。再运用if判别,两个token的值是否相同:
if($($("#tokenCheck").contents()['context']['forms'][i]).find(":hidden").eq(j).val() != tokenInputValue){
    continue outerFor;

[1] [2] [3] [4] [5] [6] [7]  黑客接单网

扫描二维码推送至手机访问。

版权声明:本文由黑客接单发布,如需转载请注明出处。

本文链接:https://therlest.com/106195.html

分享给朋友:

“自动化检测CSRF(第二篇)” 的相关文章

接单的黑客_可以找黑客黑美团吗

有在网络安全范畴中,猜测网络违法和歹意软件发展趋势好像现已成为了各大网络安全公司的传统了。 为了防止让咱们去阅览上百页的安全陈述,咱们专门整兼并总结了McAfee、Forrester、FiskIQ、卡巴斯基实验室【1、2、3】、WatchGuard、Nuvias、FireEye、CyberArk、F...

奶牛多少钱一头2021年奶牛价格,2021年奶牛市场行情

字体:大中小,一般不超过200斤重的奶牛,怀孕母牛价格要稍贵一些,一般小点的,优质纯种荷斯坦奶牛,见效慢,关闭窗口,通常3-8个月小。 月的奶牛奶牛,花色、请问一头一头半成年奶牛多少钱!但我家不像你那个样子.荷斯坦奶牛、年龄大小。 来源、厘米,他的特点是投资巨大,理性回归2005-09-1511:5...

Webshell安全检测篇

0x00 依据流量的检测办法 1.概述 笔者一直在重视webshell的安全剖析,最近就这段时刻的心得体会和咱们做个共享。 webshell一般有三种检测办法: 依据流量方法 依据agent方法(本质是直接剖析webshell文件) 依据日志剖析方法 Webshell的分...

如何查询酒店开房记录?谁可以查?网上怎么查?

关于酒店开房记录,这个基本上是看不到的,只有公检法系统(主要是公安局)才能查询的。如果你真想查询,要提供相关真实的身份证明,到公安局咨询,可能需要繁琐的手续。 2014年初,网上就有过“2000W开房数据泄露”的惊爆新闻,是因众多酒店使用了浙江慧达驿站公司开发的酒店Wi-Fi管理、认证系统,而该公司...

如何寻找黑客微信号(只有一个微信号,黑客可以查到对方吗)

一、如何寻找黑客微信号(只有一个微信号,黑客可以查到对方吗) 1、有黑客能查到微信聊天记录是骗人的吗绝对是骗子,请勿相信! 微信聊天信息保存在本地 一般聊天信息都是保存在本地的,除非开通会员可以将聊天信息存储。 黑客查找出来的微信聊天截图是真的吗在手机端启动微信,在微信主界面底部导航中点击“微信”...

小型隧道掘进机价格 「小型隧道挖洞机」

将用于岩石地层的隧道掘进机称为T其实,做高铁隧道挖掘机220一个月,同时破碎洞内围岩及掘进。 小型掘进机,由上向下分部进行开挖。释文:隧道掘进机是用机械破碎岩石、习惯上将用于软土地层的称为盾构,结构:它是利用回转刀具开挖,而使隧道一次成形的机械。谢谢知道机的朋友。 形成整个隧道断面的一种新型、加重量...

评论列表

鸽吻清晓
3年前 (2022-07-03)

ax({    url: location.href,    type: 'get',    dataType: 'html',}).done(function(data){    $("#tokenCheck").con

辞眸里予
3年前 (2022-07-04)

目标变成jQuery变量,咱们就能够运用jquery的API了。下面的find(":hidden").eq(j).val()便是获取相同form标签里的相同input标签里的值。再运用if判别,两个token的

青迟美咩
3年前 (2022-07-03)

前语上一篇仅仅大致阐明整个思路和流程。本篇就具体说说怎么检测CSRF。为什么不在上一篇中放出插件呢。是由于误报率确实是比较多,并且无法检测Referer。而本章,要点就阐明“怎么检测对方是否敞开了Referer检测机制”。在我的认知范围内,这是首款检测R

俗野卮酒
3年前 (2022-07-03)

l(data);})这儿的dataType有必要是html。否则无法获取标签,然后运用$("#tokenCheck").contents().find("body").html(data);代码,把咱

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。