最近发现一个奇技淫巧
在一次写shell的时候一时手残,就找到一个我感觉有那么一点点用的东西。
就是这个分号引起了报错,让我们大致能猜到他的文件结构。
思考
开始我以为是php传入时分号的解析短句问题
但是这里是打了引号的,所以和php无关
然后想是不是插入数据库查询的时候出现了问题
会不会是分句执行什么的,但是,报错里面也有分号
说明这个分号是不影响sql语句执行的
实验1
最后我把目光转移到了这个报错上面,很明显这个报错信息很像是文件夹名的问题,那如果这样我们可以试试
/\:*?”<>
这些字符
斜杠测试成功,但是并不能爆出路径
分号反斜杠,这可以说把分号当成了文件名,果然成功爆出路径
单独插入分号当成一个文件名是可以的
当然?会让路由误会,所以也不能当文件名
看下这些实验,得出结论,是文件或文件夹名非法导致报错
实验2
果然这样会使文件名非法而报错(windows)
linux下可以接受这些字符
应用场景
如上,写shell的时候能反馈你信息且为windows的时候。