2024年云曦网络安全实验室2024春季学期开学考复现Writeup

2024年云曦网络安全实验室2024春季学期开学考复现Writeup_第1张图片

构造的payloa为http://172.16.17.201:50183/Gentle_sister.php/?my_parameter[]=1

可以直接访问也可以Hackbar工具传参。

通过使用my_parameter[]=1,相当于是告诉服务器,我们在传递的是一个包含1的数组而非数字或字符串,在这种情况下,$_GET[‘my_parameter’]得到的将是一个数组,而不是一个单一的值。原本脚本的设计是利用preg_match函数和正则表达式来检查my_parameter的值中是否包含数字,然而,当my_parameter是一个数组时,函数无法处理这样的输入,从而直接绕过检查。

脚本中的intval函数用于将my_parameter参数的值转换为整数,但这里参数的值是数组,因此函数无法工作。因为它期待的是可以转换为整数的数字或字符串。

因此,我们可以绕过两处检查,从而输出flag的内容。

总结一下:
这道题的考点是PHP特性。PHP是一种类型松散的语言,意味着它在处理不同类型的数据时可以非常灵活,PHP允许通过在参数名后面添加[]的方式来传递数组作为GET或POST请求的一部分,如果脚本没有正确地处理预期之外的数组输入,攻击者可能会利用这个特性来绕过安全检查。

对外部输入的有效验证是PHP应用安全的关键,在上述的情况中,未对my_parameter的类型进行检查就直接操作,展示了输入验证不充分的问题。

本题完。

4.一个朴实无华的页面

2024年云曦网络安全实验室2024春季学期开学考复现Writeup_第2张图片

这是一道文件包含的题目,刚开始我还以为是sql注入,考核的时候就一直卡着没有做出来。

2024年云曦网络安全实验室2024春季学期开学考复现Writeup_第3张图片

补充知识:

robots.txt 是一个存放在网站根目录下的文本文件,它向访问网站的搜索引擎爬虫指示了哪些页面可以抓取,哪些不可以。这个文件主要用于网站的搜索引擎优化(SEO),并不是PHP特有的概念,而是互联网上的标准协议,称为“爬虫排除标准”(Robots Exclusion Protocol)。

因此,这里我们直接访问http://172.16.17.201:50074/robots.txt

2024年云曦网络安全实验室2024春季学期开学考复现Writeup_第4张图片

这表示了该网站使用了robots.txt文件来告诉所有遵循“爬虫排除标准”的搜索引擎爬虫(User-agent: *表示这适用于所有爬虫),它们不应该尝试访问或索取网站路径下的/0e1G7.php页面。说简单点,就是这个指令实在请求所有的搜索引擎爬虫不要抓取0e1G7.php这个特定的文件。

补充一下:
这个文件和其中的指令对人类访问者没有任何的影响,如果页面没有访问控制的措施,任何人都可以访问0e1G7.php这个文件。

robots.txt文件是可以公开访问的,这意味着任何人都可以查看网站请求哪些部分不要被索引。这有时会泄露网站的一些信息。

那我们就看看这个0e1G7.php文件中有个啥:
2024年云曦网络安全实验室2024春季学期开学考复现Writeup_第5张图片

这是一个php脚本。从中我们可以知道flag在flag.php中,当然,直接访问flag.php肯定是不行的,不然也不会有这老些代码。

代码分析:
//flag in flag.php就是说flag在flag.php这个文件里面。

if(isset(KaTeX parse error: Expected '}', got 'EOF' at end of input: …T['G7'])){这句话检查_GET数组中是否存在G7键,$_GET 数组用于收集通过URL参数传递的数据,如果URL中有?G7=     ,那么这个条件为真

$file= _ G E T [ ′ G 7 ′ ] ; 将 \_GET['G7'];将 _GET[G7];_GET[‘G7’]的值赋给变量 f i l e ,这意味着 file,这意味着 file,这意味着_file变量的内容取决于URL参数G7的值。

$file = str_replace(“base”, “???”, f i l e ) ; 会在变量 file);会在变量

你可能感兴趣的:(程序员,web安全,android,安全)