文件上传测试是白名单还是黑名单:x.adsfsfsffasd(瞎写后缀)能传的就是黑名单
文件上传过程:用户-服务器缓存目录(不需要代码参与)-移动到目标位置并重命名。
Pass11(00截断):
00在电报中代表结束,在PHP某些版本里也代表着结束。(十六进制的00)。(POST不能转换URL,GET可以)
本关先传到了缓存地址,然后再传到目标位置。
但是缓存目录会隔一定的时间删除。
后端通过move_uploaded_file函数转移并重命名到目标位置。
抓包该存储路径为../upload/333.php%00/8320220507204257.jpg,然后上传个1.txt就可了(内容是木马)。提权用333.php。
Pass13(图片马):
图片+木马。垃圾图片马就是把代码写在图片最后。(此招不好用)
标准方法:copy 1.jpg/b + 1.txt 444.jpg 将二者合在一起成为444.jpg
有的检测检测头和尾,所以用夹心(图+马+图),把刚才的444.jpg在加上1.jpg。
图片马可以藏文件,比上节课的文件流厉害。就直接把图片和压缩包copy在一起,用的话直接改成zip后缀解压。
Pass14:(本关是jpeg注意一下)
Pass16:二次渲染
就是获得后图片重新加载然后保存,高级功能可以裁剪。(二次渲染就是把非图片的代码删掉)
用gif图片绕过,二次渲染只渲染画面部分。动态图片头部4行不渲染。
把gif图片用十六进制编辑把第三行和第四行改成木马。(第一行第二行不能写)(最好从第三行空的地方开始写)
Pass17条件竞争:
过滤有两种:1、先检测,直接不允许上传(没问题)(缓存还是有,只不过移过去之后先检测)
2、先上传,再去检测,删除(有问题)
上传-检测-删除,检测需要时间,如果上传太快,在删除之前访问到就有效。
技术:马上马-访问一个木马生成一个木马。检测的是上传的问题,但是如果上传的文件生成马他不管。
file_put_contents(文件地址,文件内容)
如file_put_contents(‘nf.php’,’<?php eval($_REQUEST[8])?>’),被访问就会由这句话生成木马。
上传一个php带这句话的,然后抓包,用爆破随便框一个变量,payload type选null payloads。然后Generate写10000次。
不能延时,如果跑的够快会有,然后在跑的时候同时用上面的爆破法访问这个文件,就会生成马。(一遍爆破上传一遍爆破访问)
打赏我,让我更有动力~
© 2016 - 2024 掌控者 All Rights Reserved.