源码分析
查看网页源码,与第五关源码比较,缺少去除字符串::$DATA代码,可以确定第九关绕过方法为::$DATA绕过 (详细思路见upload靶场第六七八关教程)
::$DATA知识点
在windows操作系统中,文件名后跟着::$DATA时,表示文件一个数据流。数据流是一种用于在文件内部存储额外数据的机制。
在普通情况下,我们使用的文件只有一个默认的数据流,可以通过文件名访问。但是,在windows NT文件系统(NTFS)支持在文件内部创建额外的数据流,以存储其他信息。这些额外的数据流可以通过在文件名后面添加::$DATA来访问。
例如,“1.txt”是一个文件,而”1.txt :: $DATA”是这个文件的个附加数据流。这样的数据流可
以用于存储文件的元数据、备份信息、标签等。
需要注意的是,大多数常规的文件操作工具不会意识到这些额外的数据流,而只会处理默认
的数据流。要访问或操作这些附加数据流,通常需要使用特定的命令行工具或编程接口。
(转载自B站up主天欣skyx)
实验过程
上传php文件,并用burp进行抓包
在burp中修改文件后缀为php::$DATA,forward上传文件
在新的标签页却显示这个了
这是因为::$DATA字符在windows系统不合法,文件名包含::$DATA字符时,系统会删除该字符。所以要获得正确的url地址,只要删除::$DATA字符即可。
可正常访问
最后使用蚁剑测试连接,可成功连接。添加数据,打开网站后门即可。