注意:仅用于本人学习的笔记记录,禁止进行传播分享,一旦造成严重后果与本人无关!!!
后端校验的黑名单机制比较危险
1.大小写绕过
2.点空绕过
3.NTFS文件流绕过::$DATA
4.htaccess配置文件绕过
5.phphp绕过
6.别名绕过phtml、php4、php5
开发用白名单(jpg、png、jpeg)
文件上传 白名单、黑名单
判断:上传一个后缀出乎意料的名字 例如:x.adfefsxre能上传则是黑名单
1、%00截断【十六进制00】 GET传参
00在电报中代表着电文结束
php的某些版本里面也代表着结束
move_upload_file 从本地缓存temp目录移到upload目录下
文件上传 -> 缓存目录(不需要代码参与)-> 被移动重命名
00截断原理是,move_upload_file碰到%00就给当结束,将内容都移到了00截断前的位置中
版本影响:php 版本<5.3.4
2、00截断 POST传参
使用16进制修改,00截断和%00截断都是一样的,知识传参方式的不一样
URL编码原理:把字符变成16进制,然后加上%
=>核心是为了更好的传参
a.php?a=123#abcd -------锚点------> a.php?a=123%23abcd 怕出现混淆的事情
POST传参没有%00,所以我们需要想办法传入16进制的00
3、图片码 对图片进行检测,所以需要图片码绕过
图片+木马{粘到一起}
添加方法:直接复制代码放到末尾追加(容易翻车,图片不正常)
标准方法:copy 1.jpg/b + 1.txt 1.jpg /b二进制合成
有的检测,检测头和尾 可以 图+码+图
文件上传漏洞:能上传、能解析(解析漏洞)
图片码的方法可以藏文件,而且比NTFS文件流厉害的多
3、二次渲染
获得图片后,给你重新加载,然后重新保存
gif图片去破,二次渲染,只会渲染画面部分
前四行是gif运动的规律,第一行是gif的标识,将码插到二三四行中
4、条件竞争
过滤有两种:
1.先检测,直接不允许上传【没问题】
2.先上传,再去检测,删除【有问题】
上传 -> 检测 -> 删除
检测需要时间,如果你上传的够快,可以在删除之前访问到
马生马=> 访问一个木马,生成一个木马
检测的是上传的问题,但是如果你上传的文件,它写了一个木马,它是不会被检测的
file_put_contents(文件地址、文件内容)