1.BUUCTF刷题-BUU LFI COURSE 1
看了答案,但是完全没懂,大概是因为没学过PHP吧。
题目:

看题目可以知道,破题思路是利用LFI(本地文件包含)漏洞。
页面内的几个函数或变量功含义:
highlight_file() :函数对文件进行 PHP 语法高亮显示。语法通过使用 HTML 标签进行高亮。也就是用亮眼的字体把文件输出。
__FILE__:代表文件的绝对路径。例如“D:\www\test.php”。
isset():bool函数,用于检测变量是否已设置并且非NULL。
$_GET:在 PHP 中,预定义的 $_GET 变量用于收集来自 method="get" 的表单中的值。
$str:一个字符串变量。
include:包含并运行指定文件。
这个php程序的大致意思就是:
首先,高亮输出当前文件。然后判断表单中"get"的值是否设置,若已设置且不为空,则将值赋给$str变量(这个变量有啥用我不清楚)。最后,将$_GET所代表的文件用include包含进php程序。
漏洞利用方法:

在url后添加 "?file=/flag" ,得到flag。

思考:
随便写入一个错误的路径,可以得到提示:

这时我们可以知道当前运行程序的路径为:../var/www/html/index.php。
那我应该怎么才能知道flag文件在那个目录下呢?
看了一篇csdn(https://blog.csdn.net/weixin_42751456/article/details/88735456),尝试了一下"?file=/etc/passwd"命令可以返回一些东西:

那么是不是可以返回一些linux系统里一定有的文件呢?在我的虚拟机里找到了"/etc/hosts"这个文件名一看就都有的文件,尝试一下:

果然。
现在我想知道,是否可以利用本地文件包含漏洞来获得主机的目录信息从而有选择地获得更多信息?有待后续学习。
2.密码学学习-论文《Differential and Linear Cryptanalysis Using Mixed-Integer Linear Programming*》
依然痛苦,不过有所好转。
今天彻底弄懂了活跃S盒的概念。
活跃S盒:
我们考虑AES算法,由于明文有16个字节,所以每一轮会通过16个S盒,现在有一明文对,这一明文对部分位置有差分部分位置没有,所以有差分的部分通过的S盒便是活跃S盒。

考虑10轮的AES-128密码,它的S盒数量是一定的,为160个。所谓活跃S盒的最小数目就是在差分分析中所有可能的明文对所导致的活跃S盒数目的最小值。这个最小值就是密码的安全下界。因为在差分分析中我们希望找到高概率的特征,而SPN模型里只有S盒可以改变差分,所以活跃S盒的数量越多,特征的分布就越趋近于随机,在抵抗差分分析时也就越安全。
明天争取多刷两道题,多看点论文。