Web 访问靶机服务器场景,完成如下任务:a、进入"/"->"DisplayUploaded'sFileContent"页面,对该页面进行渗透测试,使页面 DisplayFileCtrl.php 回显 DCST 中的 WebServ2003服务器访问日志文件:AppServ/Apache24/logs/access.log 的内容;b、进入靶机服务器场景的 C:\AppServ\www 目录,找到 DisplayFileCtrl.php 程序,使用 EditPlus 工具分析并修改 PHP 源程序,使之可以抵御本小题以上渗透测试过程,填写 DisplayFileCtrl.php 程序当中空缺的 FLAG01 字符串,将该字符串通过 MD5 运算后返回的哈希值的十六进制结果作为 Flag 值提交(形式:flag{十六进制字符串});
访问日志文件
输入AppServ/Apache24/logs/access.log结果访问不到,想到有可能是它文件名前面加了个目录,
所以用../../../../../../../../AppServ/Apache24/logs/access.log访问,访问成功
修改 PHP 源程序
查看源码(靶机密码123456)
发现包含了一个文件DisplayfileCtrl.php,然后查看此文件
FLAG01替换成str_replace
FLAG02替换成..防止目录穿越漏洞
FLAG03检查$filename中是否有..
可以用strstr|strpos|substr_count替换,一个一个试发现用的是strstr
FLAG04是readfile
FLAG05是$content
FLAG06是$html,因为第一个文件中输出文件内容用的echo $html
答案
flag1
flag{6a18638d635a5d5d}
flag2
flag{65a77700ba66e9c6}
flag3
flag{a8a869319570237b}
flag4
flag{0abbed6d0bf2371e}
flag5
flag{21f709895ef54eba}
flag6
flag{64c88242d6e7c68f}