缓冲区溢出攻击和实战war-ftp
前言
最近看到看雪学院有篇博客写的FUZZ测试和漏洞利用,里面有介绍war-ftp 1.65版本存在缓冲区漏洞,之前有做过war-ftp 1.65的缓冲区攻击,不过当时应付差事,匆忙一做,最近学了一段时间的逆向,现在重新做做,重新理解一下。(本来这篇博客快做好了,想着有些累就睡觉了,结果一觉醒来上传到搜狗图床的图没了,淦,结果又重做了一次截了图,思路都打断了,MD)
国密即国家密码局认定的国产密码算法。主要有SM1,SM2,SM3,SM4。
SM1 为对称加密。其加密强度与AES相当。该算法不公开,调用该算法时,需要通过加密芯片的接口进行调用。密钥长度和分组长度均为128位。
SM2为非对称加密,基于ECC。该算法已公开。由于该算法基于ECC,故其签名速度与秘钥生成速度都快于RSA。ECC 256位(SM2采用的就是ECC 256位的一种)安全强度比RSA 2048位高,但运算速度快于RSA。
SM3 消息摘要。可以用MD5作为对比理解。该算法已公开。校验结果为256位。
SM4 无线局域网标准的分组数据算法。对称加密,密钥长度和分组长度均为128位。
最近学到国密算法,记录一下SM3的原理(用了一下老师课件的图,主要公式太难敲了,文中仅有的几个公式是按照LaTeX格式写的,我不会用hexo生成LaTeX公式,按照格式凑合看吧)。
第289题 生命游戏
根据百度百科,生命游戏,简称为生命,是英国数学家约翰·何顿·康威(老爷子前段时间因为新冠肺炎去世,唉,缅怀)在 1970 年发明的细胞自动机。
给定一个包含 m × n 个格子的面板,每一个格子都可以看成是一个细胞。每个细胞都具有一个初始状态:1 即为活细胞(live),或 0 即为死细胞(dead)。每个细胞与其八个相邻位置(水平,垂直,对角线)的细胞都遵循以下四条生存定律:
- 如果活细胞周围八个位置的活细胞数少于两个,则该位置活细胞死亡;
- 如果活细胞周围八个位置有两个或三个活细胞,则该位置活细胞仍然存活;
- 如果活细胞周围八个位置有超过三个活细胞,则该位置活细胞死亡;
- 如果死细胞周围正好有三个活细胞,则该位置死细胞复活;
根据当前状态,写一个函数来计算面板上所有细胞的下一个(一次更新后的)状态。下一个状态是通过将上述规则同时应用于当前状态下的每个细胞所形成的,其中细胞的出生和死亡是同时发生的。
示例:
输入:
[
[0,1,0],
[0,0,1],
[1,1,1],
[0,0,0]
]
输出:
[
[0,0,0],
[1,0,1],
[0,1,1],
[0,1,0]
]
SQL注入漏洞是目前web安全中最为高危漏洞之一,在OWASP常年排名第一(截至2020.3.21),也是最为常见的漏洞之一,虽然随着开发人员安全意识的提高和开发工程的模板化,SQL注入不再像以前那么随处可见且没有任何防护,但是渗透技术也日趋复杂多样,而且提供web服务的企业太多了,并不是每一个企业的web服务都具有良好的安全防护措施,所以SQL注入目前还是渗透人员必须所具备的能力之一。
对大多数数据库而言,SQL注入的原理是类似的,因为每个SQL数据库都要一定的遵守SQL语法,但它们之间存在一些差异,本文章因为技术有限,使用市面上常用的SQL数据库——MySQL数据库进行举例说明,但疏通同归,攻击者对数据库的注入,其利用方式也是类似的:
在权限允许的情况下,通常数据库都支持以上三种操作,而且攻击者的最终目的也是以上三种,只不过不同数据库注入的SQL语句不一样而已。
通常的SQL注入可以使用工具,比如SQLmap,其内置了很多功能,全面而强大,但是还是要掌握一些手动注入的方式,才能真正了解SQL注入。