所看书籍《web安全攻防 渗透测试实战指南》
小白随便写写,欢迎大佬斧正。(鞠躬!)
① js验证绕过
前端对上传的文件进行后缀检测,
a 把检测机制——js验证删掉 b 修改后缀,通过前段js验证后再抓包修改后缀
应对:不能只依靠js验证,将其作为第一道关卡,减轻后续检测压力就行。
② 文件后缀绕过 (apache 版本漏洞)
apache 有些版本对于http的一个配置当中,内置的有 一些代码可以解析 php 和phtml
只要上传文件时,构造文件名如 xxx.php/phtml.xxxx 就可以绕过,apache的解析顺序是从右至坐的,xxxx,然后xxxx没能解析出来,就继续向左解析。
应对:使用白名单,充分了解apache版本功能。
③ 文件类型绕过
此类对于文件类型的判别来源于,content-type 而content-type处于客户端上,那么只要自由更改就可以轻绕过。
应对: 不用content-type,更换验证文件类型的方式
④ 文件截断绕过
magic_quotes_gpc函数在php中的作用是判断解析用户提示的数据,如包括有:post、get、cookie过来的数据增加转义字符“\”,以确保这些数据不会引起程序,特别是数据库语句因为特殊字符引起的污染而出现致命的错误
在php版本低于5.3.4是 magic_quotes_gpc处于off状态 可以成功截断。
构造 xxx.php%00.jpg jgp用来绕过检测,当文件传入服务器当中后,%00自动截断,就有了php。
应对:在php中 ,$FILES 获得文件名的时候,就已经截断了,所以可以由此规避。
⑤ 竞争条件攻击
一些个网站对于上传的文件没有要求,上传后才进行检测的。这时上传一个shell.php,令其功能是再写一个shell.php
利用检测完,跟删除的时间差可以产生一个shell.php,
应对: 放弃这种文件上传方式。