关于数学与网络安全

大概可以分为三个方面,第一个是培养思维方面。网上很多人都强调过报考计算机专业一定要数学好,不一定就是数学知识在计算机方面有具体的运用,而是数学好的人理科思维强,大多数时候有那个天赋

第二个是计算机关联数学知识,在密码学里比较多,比如rsa里的欧拉公式和费马定理,还有各种语言里的数组与变量,函数调用关系,到了挖0day的层次时才会体现得比较明显

第三个,论外级红队搞研究性项目时运用数学方法解决问题。学理科的大多听说过一句话,理工科的尽头都是数学。这句话就跟中二小学生说什么物理的尽头是神学,上帝不投骰子一样,说的人挺多实际上懂的人没几个。概括来说,一个学科只要具有严格的映射关系,可以量化,没有文科那种主观性,在允许误差范围内就能把他们实际问题数据建模,再用数学方法预测解得证明一些东西。比如中学物理,做题方法都是把题干物理量变成计算参数然后列方程来解,动能定理就是=(1/2)mV₁²-(1/2)mVo²=Ek₂-Ek₁,中间怎么动的,管你匀速匀变速变速直线曲线还是原地720度托马斯回旋螺旋升天,带数进去算初减末就行。而一般研究网络安全的方法好比盯着那个物体看,哦这会他加速了多少哦那会他又减速了多少最后靠看得出末速度。用数学方法很多时候不会搞清楚每一个具体的过程,但是就是能解决一些常人难以回答的问题

看到这里没看懂也没关系,再以麟子姐那篇论文,关于waf过滤字符那个事,顺便也回答一下今天群里群友的提问

为了方便理解,先不说什么什么专业知识。假如一个网站有四个空格可以填写数字,只要填入的四位数符合以3开头就能黑掉这个网站。黑客们每天就写一堆四位数出来,比如3111,3112发送到这个网站。这相当于sql注入或者xss里大家绞尽脑汁想payload(攻击载荷)的过程。网站的waf会过滤这些3开头的数字。大家不要被这个例子误导了,有人可能会说3111被过滤了就用什么3113,3456啊,网站指定规则把三开头的全过滤掉不就行了吗。我这是举例子,实战渗透里找一个payload要想很久的,你试了3111再想出一个3112的过程相当于什么双参数/宽字节/内联注释这样发现一个新的绕过方法了

数学方法是怎么降维打击的呢?千位是三定死,百位可以从0取到9,十位可以从0取到9,个位可以从0取到9,三个位置都有10个数字可以选,10*10*10=1000,把这一千个数字全部过滤掉,这个网站就已经不可能从这个层面去渗透掉了。并没有把这些存在的payload一个一个全部列出来,但我就是知道该怎么过滤。

现代一般网站waf的过滤字符数量是4200个,相当于在那1000个数字里,安服🐶已经想出了200个数字并过滤了,你想出的一个数字,比如随便说个什么3487,3975,可能就在他们想到的这两百个里,所以无法成功攻击网站。麟子姐的文章最后的结论是在她那个条件下当过滤字符达到三万左右就相当于把这1000个数全部过滤完了。雷池的过滤字符数是四万多,什么概念呢,好比人家除了3开头的之外连4开头的数字都给你干掉了,饱和式过滤。想要绕过雷池已经不是你技术好不好的问题了,可能这个payload根本就不存在

最后关于这篇论文本身,有群友对这个文章产生了质疑…我只能说我回答不了,这个不是你想的你去百度两个词的意思然后自己脑补一下就能懂的,这个结论是里面各种算算算整出来的,截了论文里的两张图感兴趣的可以看看,就是别去什么查重把人家名字查出来,敢这么搞表姐线下真实你😡

请登录后发表评论

    没有回复内容