当前位置:首页 > 黑客服务 > 正文内容

自动化检测CSRF(第一章)

访客4年前 (2021-04-16)黑客服务837

之前写过自动化检测XSS插件,今日来一发自动化检测CSRF的插件。CSRF有多种状况的呈现方法,而本章所说的内容没有办法做的那么全面,就比方JSON Hijacking(第二章或许第三章会写),本章咱们就说说form表单导致的CSRF缝隙。
检测form表单类型的CSRF缝隙和检测form表单类型的XSS缝隙最大的不同便是:XSS需求提交才干检测到,而CSRF只需求剖析form表单就行了。
前期的准备工作:
已然要写,那么咱们就需求demo来帮咱们模仿实在环境的下的状况,而0×00节就阐明晰,本章只针对于form表单,所以咱们的demo也便是林林总总的表单。如下图:

基本上来说网上常见的表单类别都包含了,当然假如你发现有些表单没有参加进去,请阐明一下,我将会鄙人一版中修正。
咱们先遍历整个网页上的form表单。代码如下:
outerFor:
for(var i = 0;i "form").length;i++){
    var formDom = $("form").eq(i); //formDom代表本次循环的form表单元素
    var imageFileSuffix = ['.jpg','.png','.jpge','.ico','.gif','.bmp']; //图片后缀白名单,用户验证图片是否为验证码
    var placeholderFilterKeyword = ['跳','搜','查','找','登陆','注册','search'];  //无用表单黑名单,用于验证这个form表单有没有用(针对input验证)
    var actionFilterKeyword = ['search','find','login','reg'];   //无用表单黑名单,用于验证这个form表单有没有用(针对form表单验证)
}
至于为什么要加上outerFor:,是由于这仅仅最外层的for循环,里边还有for循环,为了便利咱们在最里层的for循环里跳出最外层的本次循环。在最里层的for循环里我会运用continue outerFor;来跳出最外层for的本次循环。(假如没有看懂,请回来上一行从头看,这很重要)
去除相似搜索、页面跳转等无用的form表单:
首要咱们需求假象一下有没有特别的form表单,比方没有action特点,把恳求交给JavaScript来完结。而这种特别的form表单也很常见,所以这儿我就先运用if判别action是否存在:
if(formDom.attr("action") != undefined){
    //当action不为空的时分,进行下一步的操作
}
然后便是运用JavaScript的some函数来对action进行判别,当action里的值满足于咱们之前设置的黑名单里的字符串时,就直接pass,运用continue来跳出初始化表达式变量为i的本次循环。转化成代码便是下面这样:
if(formDom.attr("action") != undefined){
    var actionCheck = actionFilterKeyword.some(function(item,index){
        return (formDom.attr("action").toLowerCase().indexOf(item)  != "-1");
    })
    if(actionCheck){
        continue;
    }
}
假如对some函数不明白的,请移步:Some函数详解
而在JavaScript里是严厉区别大小写的,所以在上面的代码中我运用了toLowerCase()函数,来把action里的值悉数转化成小写,然后在其间搜索之前设置的action黑名单,看是否存在。而对比进程如下:
action的值–search(假如此次比对为true,则不会向下进行比对)
action的值–find
……
其回来的成果是布尔型。在《JavaScript高档程序设计》里是这样阐明some函数的: 对数组中的每一项运转给定函数,假如该函数对恣意一项回来true,则回来true。
这个时分咱们能够看到some前面有一个变量。由于some回来的是布尔型,那么actionCheck变量也是一个布尔型,假定当时这个form表单里的action的值为”/searchArticle.php”。那么就会匹配到黑名单里的search字符串,那么some就会中止向下循环,直接回来true。如下图:

然后运用if判别actionCheck变量。假如为true,那么就运用continue来跳出当时的循环,不向下运转,直接开端下一个循环。
OK,上面的现已完结对form的action特点过滤了,那么下面的将对input进过白名单过滤。
for(var x = 0;x ":text").length;x++){
    var inputTextCheck;
    var inputText =  formDom.find(":text").eq(x);
    if(inputText.attr("placeholder") == undefined){
        continue;
    }
    inputTextCheck = placeholderFilterKeyword.some(function(item,index){
        return (inputText.attr("placeholder").toLowerCase().indexOf(item)  != "-1");
    })
    if(inputTextCheck){
        continue outerFor;
    }
}
首要运用(“:text”)来遍历当时form表单下一切type为text的input标签。
inputTextCheck变量是为了寄存some函数的布尔成果。而inputText变量代表了当时的input标签。

[1] [2] [3] [4]  黑客接单网

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

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

本文链接:http://therlest.com/106217.html

分享给朋友:

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

洗米华被抓(沙美华最近怎么了)

据中国电子商务研究中心2021年11月26日23:49:12的最新发布,微博网友@魔鬼管理学 爆料。 平安夜来临之际,事件,在网上炒得沸沸扬扬,引发全网热议! 据悉,洗米华被抓后来我换了俱乐部。。。 1.洗米华出什么事了...

吃鸡鸭的屁股会有病吗?我非常爱吃鸡鸭的屁股,但经常吃会有病吗?另

吃鸡鸭的屁股会有病吗?我非常爱吃鸡鸭的屁股,但经常吃会有病吗?另 鸡鸭的肛门附近组织,布满大大小小的腺体,各类秽物与毒素都在这些腺体囤积;鸡鸭的肛门也有非常高密度的大肠杆菌,所以鸡鸭的屁股不是少吃的问题,而是不能吃.吃得少可能没觉出怎样,多了问题就显出来了.而且鸡鸭屁股的大肠杆菌会随着蛋生出来的时...

身份证信息被黑客盗取(黑客能把手机内身份证信息盗取吗)

一、身份证信息被黑客盗取(黑客能把手机内身份证信息盗取吗)方法总结 1、黑客通过手身份姓名能否窃取别人银行卡里。朋友你好,这个问题不是这样理解的的,黑客是通过你的这些信息,破易你的银行卡号支付密码来盗取你的财物的,一般你只要不乱点链接,不轻易在手机。黑客控制了手机,窃取了身份证号码手机号姓名等所有...

古文化常识(中国古代文化常识大全)

1.中国古代文化常识 文学常识? 四本书:《论语》、《中庸》、《孟子大学》 五经:《诗经》《礼记》《周易》《春秋》 乐府双壁:木兰诗孔雀东南飞 三个字:警告世界,说真话,说真话,唤醒世界,说同样的话 第二枪:第一枪很厉害,第二枪也很厉害 三官:石渠官、潼关官、新安官 三次告别:新婚、老...

铁盖子可以放入高压锅蒸吗?装酱料的铁盖子,外面的涂层有些剥落,好

铁盖子可以放入高压锅蒸吗?装酱料的铁盖子,外面的涂层有些剥落,好 铁盖子可以放入高压锅蒸吗? 装酱料的铁盖子,外面的涂层有些剥落,好象也没锈,可以拿它盖严瓶子入高压锅蒸吗? 绝对不行!既危险又不卫生。盖住的瓶子在高压锅中加热,很容易形成压力差而爆炸;铁在高压锅中的水蒸汽作用下极易变成四氧化三...

西安电脑黑客接单_怎么能找入侵蚊香社的黑客

sudo apt install g++-4.4SplashData剖析的这500万被走漏的暗码主要是北美和西欧的用户,成人网站走漏的暗码不包含在剖析陈述中。 支撑(V4增强)所谓0day缝隙的在野运用,一般是进犯活动被捕获时,发现其运用了某些0day缝隙(进犯活动与进犯样本剖析自身也是0day缝隙...

评论列表

晴枙珞棠
3年前 (2022-05-30)

"action") != undefined){    //当action不为空的时分,进行下一步的操作}然后便是运用JavaScript的some函数来对action进行判别,当action里的值满足于咱们之

走野1
3年前 (2022-05-30)

化表达式变量为i的本次循环。转化成代码便是下面这样:if(formDom.attr("action") != undefined){    var actionCheck = actionFilterKeyword.some(function(item,index){        return

柔侣桃靥
3年前 (2022-05-30)

) == undefined){        continue;    }    inputTextCheck = placeholderFilterKeyword.some(

青迟未芩
3年前 (2022-05-30)

那么some就会中止向下循环,直接回来true。如下图:然后运用if判别actionCheck变量。假如为true,那么就运用continue来跳出当时的循环,不向下运转,直接开端下一个循环。OK,上面的现已完结对form的action特点过滤了,那么下面的将对i

发表评论

访客

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