最近在研究的《代码审计》,找了一些web漏洞来研究,今天来研究一下目录遍历漏洞。通过实际的操作,加深对这个漏洞成因的理解。
PHP文件包含漏洞的产生原因是在通过PHP的函数引入文件时,由于传入的文件名没有经过合理的校验,从而操作了预想之外的文件,就可能导外的文件泄露甚至恶意的代码注入。php的文件包含可以直接执行包含文件的代码,包含的文件格式是不受的,只要能正常执行即可。
这样的话就验证了,php可以文件后缀名而直接解析符合php语法规则的代码。实战时本地文件包含有多种利用方式,比如上传一个允许上传的文件格式的文件再包含来执行代码,包含PHP上传的临时文件,再请求url或者ua里面加入要执行的代码,WebServer记录到日志后在包含WebServer的日志,还有像li梦见小男孩拉屎nux下可以包含/proc/self/environ文件。
远程文件包含还有一种php输入输出流的利用方式,可以直接执行POST代码,只要执行POST请求,POST内容为php代码?php phpinfo();?就可以打印phpindo的信息。如图:
网友评论 ()条 查看